From 62d6e19ee92cd209143dd767ad2aba68754dc2d8 Mon Sep 17 00:00:00 2001 From: iopietro Date: Sun, 16 Sep 2018 17:22:39 +0200 Subject: [PATCH] The first release of the refactored version It's still a work in progress, there are a lot of things that will change in the final release --- .gitignore | 3 + AC_OETags.js | 141 - Admin/Templates/addABTroops.tpl | 4 +- Admin/Templates/msg.tpl | 2 +- Admin/Templates/report/0.tpl | 2 +- Admin/Templates/report/1.tpl | 2 +- Admin/Templates/report/2.tpl | 2 +- GameEngine/Account.php | 280 - GameEngine/Admin/database.php | 5 +- GameEngine/Admin/function.php | 4 +- GameEngine/Alliance.php | 622 -- GameEngine/Artifacts.php | 519 - GameEngine/Automation.php | 4649 --------- GameEngine/BBCode.php | 255 - GameEngine/Building.php | 845 -- GameEngine/Chat.php | 387 - GameEngine/Data/buidata.php | 55 - GameEngine/Data/cel.php | 49 - GameEngine/Data/cp.php | 267 - GameEngine/Data/hero_full.php | 181 - GameEngine/Data/resdata.php | 97 - GameEngine/Data/unitdata.php | 91 - GameEngine/Database.php | 8409 ---------------- GameEngine/Form.php | 75 - GameEngine/Game/WorldWonderName.php | 21 - GameEngine/Generator.php | 144 - GameEngine/Logging.php | 110 - GameEngine/Mailer.php | 95 - GameEngine/Market.php | 374 - GameEngine/Message.php | 686 -- GameEngine/Profile.php | 191 - GameEngine/Protection.php | 26 - GameEngine/Ranking.php | 592 -- GameEngine/Session.php | 381 - GameEngine/Technology.php | 729 -- GameEngine/Units.php | 818 -- GameEngine/Village.php | 321 - GameEngine/favicon.ico | Bin 1406 -> 0 bytes GameEngine/functions.php | 37 - README.md | 2 +- Security/Security.class.php | 264 - Security/index.php | 4 - Templates/Build/1.tpl | 53 - Templates/Build/10.tpl | 38 - Templates/Build/11.tpl | 39 - Templates/Build/14.tpl | 37 - Templates/Build/15.tpl | 41 - Templates/Build/15_1.tpl | 123 - Templates/Build/16.tpl | 315 - Templates/Build/16_99.tpl | 60 - Templates/Build/16_incomming.tpl | 328 - Templates/Build/16_menu.tpl | 8 - Templates/Build/16_troops.tpl | 34 - Templates/Build/16_walking.tpl | 168 - Templates/Build/17.tpl | 307 - Templates/Build/17_1.tpl | 146 - Templates/Build/17_2.tpl | 125 - Templates/Build/17_3.tpl | 271 - Templates/Build/17_4.tpl | 73 - Templates/Build/17_create.tpl | 78 - Templates/Build/17_edit.tpl | 40 - Templates/Build/17_menu.tpl | 17 - Templates/Build/19.tpl | 59 - Templates/Build/19_train.tpl | 50 - Templates/Build/2.tpl | 55 - Templates/Build/20.tpl | 72 - Templates/Build/20_train.tpl | 41 - Templates/Build/21.tpl | 114 - Templates/Build/22.tpl | 17 - Templates/Build/22_1.tpl | 154 - Templates/Build/22_2.tpl | 150 - Templates/Build/22_3.tpl | 153 - Templates/Build/22_4.tpl | 147 - Templates/Build/22_5.tpl | 143 - Templates/Build/23.tpl | 27 - Templates/Build/25.tpl | 26 - Templates/Build/25_2.tpl | 28 - Templates/Build/25_3.tpl | 13 - Templates/Build/25_4.tpl | 54 - Templates/Build/25_create.tpl | 68 - Templates/Build/25_menu.tpl | 7 - Templates/Build/25_progress.tpl | 34 - Templates/Build/25_train.tpl | 63 - Templates/Build/26.tpl | 89 - Templates/Build/26_2.tpl | 27 - Templates/Build/26_3.tpl | 13 - Templates/Build/26_4.tpl | 55 - Templates/Build/26_create.tpl | 68 - Templates/Build/26_menu.tpl | 7 - Templates/Build/26_progress.tpl | 34 - Templates/Build/26_train.tpl | 64 - Templates/Build/28.tpl | 37 - Templates/Build/29.tpl | 59 - Templates/Build/29_train.tpl | 27 - Templates/Build/3.tpl | 56 - Templates/Build/30.tpl | 59 - Templates/Build/30_train.tpl | 31 - Templates/Build/31.tpl | 35 - Templates/Build/32.tpl | 35 - Templates/Build/33.tpl | 35 - Templates/Build/34.tpl | 37 - Templates/Build/35.tpl | 37 - Templates/Build/36.tpl | 135 - Templates/Build/38.tpl | 38 - Templates/Build/39.tpl | 39 - Templates/Build/4.tpl | 56 - Templates/Build/41.tpl | 32 - Templates/Build/42.tpl | 59 - Templates/Build/42_train.tpl | 31 - Templates/Build/5.tpl | 37 - Templates/Build/6.tpl | 37 - Templates/Build/7.tpl | 37 - Templates/Build/8.tpl | 37 - Templates/Build/9.tpl | 37 - Templates/Build/next.tpl | 5 - Templates/Build/upgrade.tpl | 146 - Templates/Build/ww.tpl | 46 - Templates/Build/wwupgrade.tpl | 154 - Templates/Building.tpl | 56 - Templates/News/newsbox1.tpl | 64 - Templates/News/newsbox2.tpl | 29 - Templates/a2b/search.tpl | 58 - Templates/a2b/units_1.tpl | 104 - Templates/a2b/units_2.tpl | 104 - Templates/a2b/units_3.tpl | 104 - Templates/a2b/units_4.tpl | 104 - Templates/a2b/units_5.tpl | 99 - Templates/activate/activate.tpl | 208 - Templates/activate/activated.tpl | 7 - Templates/activate/cantfind.tpl | 4 - Templates/activate/delete.tpl | 34 - Templates/dorf2.tpl | 150 - Templates/dorf3/1.tpl | 57 - Templates/dorf3/2.tpl | 49 - Templates/dorf3/3.tpl | 132 - Templates/dorf3/4.tpl | 79 - Templates/dorf3/5.tpl | 72 - Templates/dorf3/menu.tpl | 7 - Templates/dorf3/noplus.tpl | 37 - Templates/field.tpl | 52 - Templates/footer.tpl | 31 - Templates/goldClub/.htaccess | 4 - Templates/goldClub/farmlist.tpl | 187 - Templates/goldClub/farmlist_add.tpl | 37 - Templates/goldClub/farmlist_addraid.tpl | 138 - Templates/goldClub/farmlist_editraid.tpl | 158 - Templates/goldClub/trooplist.tpl | 30 - Templates/header.tpl | 104 - Templates/indexnews.tpl | 20 - Templates/links.tpl | 39 - Templates/menu.tpl | 139 - Templates/movement.tpl | 178 - Templates/multivillage.tpl | 127 - Templates/natars.tpl | 17 - Templates/news.tpl | 22 - Templates/production.tpl | 44 - Templates/res.tpl | 70 - Templates/text.tpl | 26 - Templates/troops.tpl | 37 - Templates/version.tpl | 5 - a2b.php | 30 +- a2b2.php | 16 +- activate.php | 86 +- ajax.php | 8 +- allianz.php | 58 +- anleitung.php | 8 +- anmelden.php | 156 +- .../gpack}/download/travian_default.zip | Bin {GameEngine/Data => assets/gpack}/index.php | 0 .../travian/elements/country_sprite.gif | Bin {gpack => assets/gpack}/travian/flaggs.css | 0 .../travian/images/anleitung_background.gif | Bin .../travian/images/anleitung_footer.gif | Bin .../travian/images/anleitung_header.gif | Bin .../gpack}/travian/images/artwork-ltr.jpg | Bin .../gpack}/travian/images/artwork.jpg | Bin .../images/buttons_screenshots-left.gif | Bin .../images/buttons_screenshots-right.gif | Bin .../images/buttons_screenshots_next.gif | Bin .../images/buttons_screenshots_prev.gif | Bin .../travian/images/content_background.jpg | Bin .../travian/images/count_background-ltr.jpg | Bin .../travian/images/count_background.jpg | Bin .../travian/images/country_background.jpg | Bin .../travian/images/footer_background.jpg | Bin .../travian/images/gameworld_background.jpg | Bin .../travian/images/gameworld_footer.jpg | Bin .../travian/images/gameworld_header.jpg | Bin .../travian/images/info_background-ltr.jpg | Bin .../gpack}/travian/images/info_background.jpg | Bin .../travian/images/logo_background-ltr.jpg | Bin .../gpack}/travian/images/logo_background.jpg | Bin .../travian/images/logo_traviangames.jpg | Bin .../images/main_background_content.jpg | Bin .../travian/images/main_background_front.jpg | Bin .../gpack}/travian/images/nav_left.gif | Bin .../gpack}/travian/images/nav_right.gif | Bin .../gpack}/travian/images/news_background.jpg | Bin .../gpack}/travian/images/news_footer.jpg | Bin .../gpack}/travian/images/news_header.jpg | Bin .../gpack}/travian/images/news_spacer.jpg | Bin .../gpack}/travian/images/popup-left.gif | Bin .../gpack}/travian/images/popup-next.gif | Bin .../gpack}/travian/images/popup-prev.gif | Bin .../gpack}/travian/images/popup-right.gif | Bin .../gpack}/travian/images/popup_close.gif | Bin .../travian/images/screenshot_footer.gif | Bin .../travian/images/screenshot_header.jpg | Bin .../travian/images/screenshots_background.jpg | Bin .../gpack}/travian/images/social_abstand.jpg | Bin .../gpack}/travian/images/social_box1-ltr.jpg | Bin .../gpack}/travian/images/social_box2-ltr.jpg | Bin .../gpack}/travian/images/social_button1.gif | Bin .../gpack}/travian/images/social_button2.gif | Bin .../travian/images/social_landing_hg-ltr.jpg | Bin {gpack => assets/gpack}/travian/main.css | 0 {gpack => assets/gpack}/travian/main_en.css | 0 .../travian_default/images/artwork1-ltr.jpg | Bin .../travian_default/images/artwork2-ltr.jpg | Bin .../images/banner-zravianx.png | Bin .../images/footer_background.gif | Bin .../travian_default/images/footer_logo.gif | Bin .../travian_default/images/footer_logo.png | Bin .../travian_default/images/footer_logo.psd | Bin .../images/footer_logo_zravianx.gif | Bin .../images/header_background.jpg | Bin .../gpack/travian_default/images}/index.php | 0 .../gpack}/travian_default/images/m1-ltr.gif | Bin .../gpack}/travian_default/images/m2-ltr.gif | Bin .../gpack}/travian_default/images/m3-ltr.gif | Bin .../gpack}/travian_default/images/m4-ltr.gif | Bin .../travian_default/images/menu-bg-ltr.gif | Bin .../gpack}/travian_default/images/n1-ltr.gif | Bin .../gpack}/travian_default/images/n2-ltr.gif | Bin .../gpack}/travian_default/images/n3-ltr.gif | Bin .../gpack}/travian_default/images/n4-ltr.gif | Bin .../images/plus_active-ltr.gif | Bin .../gpack}/travian_default/images/plus_bg.gif | Bin .../images/plus_inactive-ltr.gif | Bin .../travian_default/images/plus_start-ltr.gif | Bin .../travian_default/images/shadow-a-ltr.png | Bin .../travian_default/images/shadow-b-ltr.png | Bin .../gpack}/travian_default/img/a/acc.gif | Bin .../gpack}/travian_default/img/a/adr.gif | Bin .../gpack}/travian_default/img/a/adr_rtl.gif | Bin .../gpack}/travian_default/img/a/anl.gif | Bin .../gpack}/travian_default/img/a/anl_rtl.gif | Bin .../gpack}/travian_default/img/a/att1.gif | Bin .../gpack}/travian_default/img/a/att2.gif | Bin .../gpack}/travian_default/img/a/att3.gif | Bin .../gpack}/travian_default/img/a/att_all.gif | Bin .../travian_default/img/a/attack_symbol.gif | Bin .../gpack}/travian_default/img/a/b6.gif | Bin .../gpack}/travian_default/img/a/bau.gif | Bin .../gpack}/travian_default/img/a/btm.gif | Bin .../travian_default/img/a/buildings.gif | Bin .../gpack}/travian_default/img/a/c2.gif | Bin .../gpack}/travian_default/img/a/c3.gif | Bin .../gpack}/travian_default/img/a/car.gif | Bin .../travian_default/img/a/clock-inactive.gif | Bin .../gpack}/travian_default/img/a/clock.gif | Bin .../gpack}/travian_default/img/a/close.gif | Bin .../gpack}/travian_default/img/a/closed.gif | Bin .../gpack}/travian_default/img/a/def1.gif | Bin .../gpack}/travian_default/img/a/def2.gif | Bin .../gpack}/travian_default/img/a/def3.gif | Bin .../gpack}/travian_default/img/a/def_all.gif | Bin .../gpack}/travian_default/img/a/def_c.gif | Bin .../gpack}/travian_default/img/a/def_i.gif | Bin .../gpack}/travian_default/img/a/del.gif | Bin .../gpack}/travian_default/img/a/del_g.gif | Bin .../gpack}/travian_default/img/a/external.gif | Bin .../gpack}/travian_default/img/a/f1 Kopie.jpg | Bin .../gpack}/travian_default/img/a/firefox.gif | Bin .../gpack}/travian_default/img/a/friends.gif | Bin .../gpack}/travian_default/img/a/gold.gif | Bin .../gpack}/travian_default/img/a/gold_g.gif | Bin .../gpack}/travian_default/img/a/gp.gif | Bin .../gpack}/travian_default/img/a/help.gif | Bin .../gpack}/travian_default/img/a/ie.gif | Bin .../gpack/travian_default/img/a}/index.php | 0 .../gpack}/travian_default/img/a/minus.gif | Bin .../gpack}/travian_default/img/a/n.gif | Bin .../gpack}/travian_default/img/a/n12.gif | Bin .../gpack}/travian_default/img/a/n_rtl.gif | Bin .../gpack}/travian_default/img/a/navi.gif | Bin .../gpack}/travian_default/img/a/npc.gif | Bin .../gpack}/travian_default/img/a/online.gif | Bin .../gpack}/travian_default/img/a/online1.gif | Bin .../gpack}/travian_default/img/a/online2.gif | Bin .../gpack}/travian_default/img/a/online3.gif | Bin .../gpack}/travian_default/img/a/online4.gif | Bin .../gpack}/travian_default/img/a/online5.gif | Bin .../gpack}/travian_default/img/a/online6.gif | Bin .../gpack}/travian_default/img/a/opened.gif | Bin .../gpack}/travian_default/img/a/opera.gif | Bin .../gpack}/travian_default/img/a/plus.gif | Bin .../gpack}/travian_default/img/a/rand.gif | Bin .../travian_default/img/a/report_icons.gif | Bin .../gpack}/travian_default/img/a/res2.gif | Bin .../gpack}/travian_default/img/a/resNew2.png | Bin .../gpack}/travian_default/img/a/s.gif | Bin .../gpack}/travian_default/img/a/troops.gif | Bin .../gpack}/travian_default/img/a/unknown.gif | Bin .../gpack}/travian_default/img/a/w.gif | Bin .../gpack}/travian_default/img/a/x.gif | Bin .../img/artefact/ArtifactsAnnouncement.gif | Bin .../img/artefact/WWVillagesAnnouncement.gif | Bin .../travian_default/img/artefact}/index.php | 0 .../travian_default/img/artefact/type-1.gif | Bin .../travian_default/img/artefact/type-10.gif | Bin .../travian_default/img/artefact/type-2.gif | Bin .../travian_default/img/artefact/type-4.gif | Bin .../travian_default/img/artefact/type-5.gif | Bin .../travian_default/img/artefact/type-6.gif | Bin .../travian_default/img/artefact/type-8.gif | Bin .../travian_default/img/artefact/type-9.gif | Bin .../img/artefact/type-fool.gif | Bin .../travian_default/img/artefact/type1.gif | Bin .../travian_default/img/artefact/type2.gif | Bin .../travian_default/img/artefact/type3.gif | Bin .../travian_default/img/artefact/type4.gif | Bin .../travian_default/img/artefact/type5.gif | Bin .../travian_default/img/artefact/type6.gif | Bin .../travian_default/img/artefact/type7.gif | Bin .../travian_default/img/artefact/type8.gif | Bin .../travian_default/img/artefact/typeww.gif | Bin .../gpack}/travian_default/img/f/c4.gif | Bin .../gpack}/travian_default/img/f/del.gif | Bin .../gpack}/travian_default/img/f/down_arr.gif | Bin .../gpack}/travian_default/img/f/edit.gif | Bin .../gpack}/travian_default/img/f/folder.gif | Bin .../travian_default/img/f/folder_lock.gif | Bin .../travian_default/img/f/folder_new.gif | Bin .../travian_default/img/f/folder_new_lock.gif | Bin .../img/f/folder_new_sticky.gif | Bin .../img/f/folder_new_sticky_lock.gif | Bin .../travian_default/img/f/folder_sticky.gif | Bin .../img/f/folder_sticky_lock.gif | Bin .../img/f/icon_latest_reply.gif | Bin .../gpack/travian_default/img/f}/index.php | 0 .../gpack}/travian_default/img/f/lock.gif | Bin .../gpack}/travian_default/img/f/mad.gif | Bin .../gpack}/travian_default/img/f/pin.gif | Bin .../gpack}/travian_default/img/f/plus.gif | Bin .../gpack}/travian_default/img/f/smileys.gif | Bin .../travian_default/img/f/stats_left.gif | Bin .../travian_default/img/f/stats_middle.gif | Bin .../travian_default/img/f/stats_right.gif | Bin .../travian_default/img/f/switch_admin.gif | Bin .../gpack}/travian_default/img/f/unlock.gif | Bin .../gpack}/travian_default/img/f/unpin.gif | Bin .../gpack}/travian_default/img/f/up_arr.gif | Bin .../gpack}/travian_default/img/f/v_folder.gif | Bin .../travian_default/img/f/v_folder_lock.gif | Bin .../travian_default/img/f/v_folder_new.gif | Bin .../img/f/v_folder_new_lock.gif | Bin .../img/f/v_folder_new_sticky.gif | Bin .../img/f/v_folder_new_sticky_lock.gif | Bin .../travian_default/img/f/v_folder_sticky.gif | Bin .../img/f/v_folder_sticky_lock.gif | Bin .../gpack}/travian_default/img/g/bg0.jpg | Bin .../gpack}/travian_default/img/g/bg1.jpg | Bin .../gpack}/travian_default/img/g/bg11.jpg | Bin .../gpack}/travian_default/img/g/bg12.jpg | Bin .../gpack}/travian_default/img/g/bg13.jpg | Bin .../gpack}/travian_default/img/g/f1.jpg | Bin .../gpack}/travian_default/img/g/f10.jpg | Bin .../gpack}/travian_default/img/g/f11.jpg | Bin .../gpack}/travian_default/img/g/f12.jpg | Bin .../gpack}/travian_default/img/g/f2.jpg | Bin .../gpack}/travian_default/img/g/f3.jpg | Bin .../gpack}/travian_default/img/g/f4.jpg | Bin .../gpack}/travian_default/img/g/f5.jpg | Bin .../gpack}/travian_default/img/g/f6.jpg | Bin .../gpack}/travian_default/img/g/f7.jpg | Bin .../gpack}/travian_default/img/g/f8.jpg | Bin .../gpack}/travian_default/img/g/f9.jpg | Bin .../gpack}/travian_default/img/g/f99.jpg | Bin .../gpack}/travian_default/img/g/g1.gif | Bin .../gpack}/travian_default/img/g/g10.gif | Bin .../gpack}/travian_default/img/g/g10b.gif | Bin .../gpack}/travian_default/img/g/g11.gif | Bin .../gpack}/travian_default/img/g/g11b.gif | Bin .../gpack}/travian_default/img/g/g12.gif | Bin .../gpack}/travian_default/img/g/g12b.gif | Bin .../gpack}/travian_default/img/g/g13.gif | Bin .../gpack}/travian_default/img/g/g13b.gif | Bin .../gpack}/travian_default/img/g/g14.gif | Bin .../gpack}/travian_default/img/g/g14b.gif | Bin .../gpack}/travian_default/img/g/g15.gif | Bin .../gpack}/travian_default/img/g/g15b.gif | Bin .../gpack}/travian_default/img/g/g16.gif | Bin .../gpack}/travian_default/img/g/g16b.gif | Bin .../gpack}/travian_default/img/g/g16e.gif | Bin .../gpack}/travian_default/img/g/g17.gif | Bin .../gpack}/travian_default/img/g/g17b.gif | Bin .../gpack}/travian_default/img/g/g18.gif | Bin .../gpack}/travian_default/img/g/g18b.gif | Bin .../gpack}/travian_default/img/g/g19.gif | Bin .../gpack}/travian_default/img/g/g19b.gif | Bin .../gpack}/travian_default/img/g/g2.gif | Bin .../gpack}/travian_default/img/g/g20.gif | Bin .../gpack}/travian_default/img/g/g20b.gif | Bin .../gpack}/travian_default/img/g/g21.gif | Bin .../gpack}/travian_default/img/g/g21b.gif | Bin .../gpack}/travian_default/img/g/g22.gif | Bin .../gpack}/travian_default/img/g/g22b.gif | Bin .../gpack}/travian_default/img/g/g23.gif | Bin .../gpack}/travian_default/img/g/g23b.gif | Bin .../gpack}/travian_default/img/g/g24.gif | Bin .../gpack}/travian_default/img/g/g24b.gif | Bin .../gpack}/travian_default/img/g/g25.gif | Bin .../gpack}/travian_default/img/g/g25b.gif | Bin .../gpack}/travian_default/img/g/g26.gif | Bin .../gpack}/travian_default/img/g/g26b.gif | Bin .../gpack}/travian_default/img/g/g27.gif | Bin .../gpack}/travian_default/img/g/g27b.gif | Bin .../gpack}/travian_default/img/g/g28.gif | Bin .../gpack}/travian_default/img/g/g28b.gif | Bin .../gpack}/travian_default/img/g/g29.gif | Bin .../gpack}/travian_default/img/g/g29b.gif | Bin .../gpack}/travian_default/img/g/g3.gif | Bin .../gpack}/travian_default/img/g/g30.gif | Bin .../gpack}/travian_default/img/g/g30b.gif | Bin .../gpack}/travian_default/img/g/g31Icon.gif | Bin .../gpack}/travian_default/img/g/g32Icon.gif | Bin .../gpack}/travian_default/img/g/g33Icon.gif | Bin .../gpack}/travian_default/img/g/g34.gif | Bin .../gpack}/travian_default/img/g/g34b.gif | Bin .../gpack}/travian_default/img/g/g35.gif | Bin .../gpack}/travian_default/img/g/g35_tea.gif | Bin .../gpack}/travian_default/img/g/g35b.gif | Bin .../gpack}/travian_default/img/g/g35b_tea.gif | Bin .../gpack}/travian_default/img/g/g36.gif | Bin .../gpack}/travian_default/img/g/g36b.gif | Bin .../gpack}/travian_default/img/g/g37.gif | Bin .../gpack}/travian_default/img/g/g37b.gif | Bin .../gpack}/travian_default/img/g/g38.gif | Bin .../gpack}/travian_default/img/g/g38b.gif | Bin .../gpack}/travian_default/img/g/g39.gif | Bin .../gpack}/travian_default/img/g/g39b.gif | Bin .../gpack}/travian_default/img/g/g4.gif | Bin .../gpack}/travian_default/img/g/g40.gif | Bin .../gpack}/travian_default/img/g/g40_1.gif | Bin .../gpack}/travian_default/img/g/g40_2.gif | Bin .../gpack}/travian_default/img/g/g40_3.gif | Bin .../gpack}/travian_default/img/g/g40_4.gif | Bin .../gpack}/travian_default/img/g/g40_5.gif | Bin .../gpack}/travian_default/img/g/g41.gif | Bin .../gpack}/travian_default/img/g/g41b.gif | Bin .../gpack}/travian_default/img/g/g42.gif | Bin .../gpack}/travian_default/img/g/g42b.gif | Bin .../gpack}/travian_default/img/g/g43.gif | Bin .../gpack}/travian_default/img/g/g43b.gif | Bin .../gpack}/travian_default/img/g/g44.gif | Bin .../gpack}/travian_default/img/g/g44b.gif | Bin .../gpack}/travian_default/img/g/g5.gif | Bin .../gpack}/travian_default/img/g/g5b.gif | Bin .../gpack}/travian_default/img/g/g6.gif | Bin .../gpack}/travian_default/img/g/g6b.gif | Bin .../gpack}/travian_default/img/g/g7.gif | Bin .../gpack}/travian_default/img/g/g7b.gif | Bin .../gpack}/travian_default/img/g/g8.gif | Bin .../gpack}/travian_default/img/g/g8b.gif | Bin .../gpack}/travian_default/img/g/g9.gif | Bin .../gpack}/travian_default/img/g/g9b.gif | Bin .../gpack/travian_default/img/g}/index.php | 0 .../gpack}/travian_default/img/g/iso.gif | Bin .../gpack}/travian_default/img/g/s/glvl.gif | Bin .../gpack}/travian_default/img/g/s/glvlm.gif | Bin .../gpack}/travian_default/img/g/s/glvlp.gif | Bin .../gpack/travian_default/img/g/s}/index.php | 0 .../travian_default/img/g/s/lvl11_20.gif | Bin .../img/g/s/lvl11_20_active.gif | Bin .../travian_default/img/g/s/lvl1_10.gif | Bin .../img/g/s/lvl1_10_active.gif | Bin .../travian_default/img/g/s/lvl21_30.gif | Bin .../img/g/s/lvl21_30_active.gif | Bin .../img/gloriamedals/Defensive_1.png | Bin .../img/gloriamedals/Defensive_10.png | Bin .../img/gloriamedals/Defensive_2.png | Bin .../img/gloriamedals/Defensive_3.png | Bin .../img/gloriamedals/Defensive_4.png | Bin .../img/gloriamedals/Defensive_5.png | Bin .../img/gloriamedals/Defensive_6.png | Bin .../img/gloriamedals/Defensive_7.png | Bin .../img/gloriamedals/Defensive_8.png | Bin .../img/gloriamedals/Defensive_9.png | Bin .../img/gloriamedals/Offensive_1.png | Bin .../img/gloriamedals/Offensive_10.png | Bin .../img/gloriamedals/Offensive_2.png | Bin .../img/gloriamedals/Offensive_3.png | Bin .../img/gloriamedals/Offensive_4.png | Bin .../img/gloriamedals/Offensive_5.png | Bin .../img/gloriamedals/Offensive_6.png | Bin .../img/gloriamedals/Offensive_7.png | Bin .../img/gloriamedals/Offensive_8.png | Bin .../img/gloriamedals/Offensive_9.png | Bin .../img/gloriamedals/Population_1.png | Bin .../img/gloriamedals/Population_10.png | Bin .../img/gloriamedals/Population_2.png | Bin .../img/gloriamedals/Population_3.png | Bin .../img/gloriamedals/Population_4.png | Bin .../img/gloriamedals/Population_5.png | Bin .../img/gloriamedals/Population_6.png | Bin .../img/gloriamedals/Population_7.png | Bin .../img/gloriamedals/Population_8.png | Bin .../img/gloriamedals/Population_9.png | Bin .../img/gloriamedals/Survivor_2.png | Bin .../img/gloriamedals/Wow_1.png | Bin .../img/gloriamedals/Wow_2.png | Bin .../travian_default/img/gloriamedals/def1.png | Bin .../travian_default/img/gloriamedals/def2.png | Bin .../travian_default/img/gloriamedals/def3.png | Bin .../travian_default/img/gloriamedals/def4.png | Bin .../travian_default/img/gloriamedals/off1.png | Bin .../travian_default/img/gloriamedals/off2.png | Bin .../travian_default/img/gloriamedals/off3.png | Bin .../travian_default/img/gloriamedals/off4.png | Bin .../travian_default/img/gloriamedals/pop1.png | Bin .../travian_default/img/gloriamedals/pop2.png | Bin .../travian_default/img/gloriamedals/pop3.png | Bin .../travian_default/img/gloriamedals/pop4.png | Bin .../img/gloriamedals/survivor.png | Bin .../img/gloriamedals/ww-silber.png | Bin .../gpack/travian_default/img}/index.php | 0 .../gpack}/travian_default/img/l/ad0.jpg | Bin .../gpack}/travian_default/img/l/ad1.jpg | Bin .../gpack}/travian_default/img/l/ad2.jpg | Bin .../travian_default/img/l/bigsize_bg.jpg | Bin .../img/l/bigsize_bg_interia.jpg | Bin .../gpack}/travian_default/img/l/day.gif | Bin .../gpack}/travian_default/img/l/dyn_bg1.jpg | Bin .../gpack/travian_default/img/l}/index.php | 0 .../gpack}/travian_default/img/l/m1.gif | Bin .../gpack}/travian_default/img/l/m1_30.gif | Bin .../gpack}/travian_default/img/l/m2.gif | Bin .../gpack}/travian_default/img/l/m2_30.gif | Bin .../gpack}/travian_default/img/l/m3.gif | Bin .../gpack}/travian_default/img/l/m3_30.gif | Bin .../gpack}/travian_default/img/l/m4.gif | Bin .../gpack}/travian_default/img/l/m4_30.gif | Bin .../gpack}/travian_default/img/l/mp.gif | Bin .../gpack}/travian_default/img/l/mw.gif | Bin .../gpack}/travian_default/img/l/n1.gif | Bin .../gpack}/travian_default/img/l/n1_30.gif | Bin .../gpack}/travian_default/img/l/n2.gif | Bin .../gpack}/travian_default/img/l/n2_30.gif | Bin .../gpack}/travian_default/img/l/n3.gif | Bin .../gpack}/travian_default/img/l/n3_30.gif | Bin .../gpack}/travian_default/img/l/n4.gif | Bin .../gpack}/travian_default/img/l/n4_30.gif | Bin .../gpack}/travian_default/img/l/navi.gif | Bin .../gpack}/travian_default/img/l/night.gif | Bin .../travian_default/img/l/skyscraper_bg.gif | Bin .../gpack}/travian_default/img/m/d00.gif | Bin .../gpack}/travian_default/img/m/d01.gif | Bin .../gpack}/travian_default/img/m/d02.gif | Bin .../gpack}/travian_default/img/m/d03.gif | Bin .../gpack}/travian_default/img/m/d04.gif | Bin .../gpack}/travian_default/img/m/d05.gif | Bin .../gpack}/travian_default/img/m/d10.gif | Bin .../gpack}/travian_default/img/m/d11.gif | Bin .../gpack}/travian_default/img/m/d12.gif | Bin .../gpack}/travian_default/img/m/d13.gif | Bin .../gpack}/travian_default/img/m/d14.gif | Bin .../gpack}/travian_default/img/m/d15.gif | Bin .../gpack}/travian_default/img/m/d20.gif | Bin .../gpack}/travian_default/img/m/d21.gif | Bin .../gpack}/travian_default/img/m/d22.gif | Bin .../gpack}/travian_default/img/m/d23.gif | Bin .../gpack}/travian_default/img/m/d24.gif | Bin .../gpack}/travian_default/img/m/d25.gif | Bin .../gpack}/travian_default/img/m/d30.gif | Bin .../gpack}/travian_default/img/m/d31.gif | Bin .../gpack}/travian_default/img/m/d32.gif | Bin .../gpack}/travian_default/img/m/d33.gif | Bin .../gpack}/travian_default/img/m/d34.gif | Bin .../gpack}/travian_default/img/m/d35.gif | Bin .../gpack}/travian_default/img/m/dir.gif | Bin .../gpack/travian_default/img/m}/index.php | 0 .../gpack}/travian_default/img/m/map.gif | Bin .../gpack}/travian_default/img/m/map.jpg | Bin .../gpack}/travian_default/img/m/mapl.gif | Bin .../gpack}/travian_default/img/m/matt.gif | Bin .../gpack}/travian_default/img/m/max.gif | Bin .../gpack}/travian_default/img/m/mret.gif | Bin .../gpack}/travian_default/img/m/mspy.gif | Bin .../gpack}/travian_default/img/m/msup.gif | Bin .../gpack}/travian_default/img/m/o1.gif | Bin .../gpack}/travian_default/img/m/o10.gif | Bin .../gpack}/travian_default/img/m/o11.gif | Bin .../gpack}/travian_default/img/m/o12.gif | Bin .../gpack}/travian_default/img/m/o2.gif | Bin .../gpack}/travian_default/img/m/o3.gif | Bin .../gpack}/travian_default/img/m/o4.gif | Bin .../gpack}/travian_default/img/m/o5.gif | Bin .../gpack}/travian_default/img/m/o6.gif | Bin .../gpack}/travian_default/img/m/o7.gif | Bin .../gpack}/travian_default/img/m/o8.gif | Bin .../gpack}/travian_default/img/m/o9.gif | Bin .../gpack}/travian_default/img/m/o99.gif | Bin .../gpack}/travian_default/img/m/t0.gif | Bin .../gpack}/travian_default/img/m/t1.gif | Bin .../gpack}/travian_default/img/m/t2.gif | Bin .../gpack}/travian_default/img/m/t3.gif | Bin .../gpack}/travian_default/img/m/t4.gif | Bin .../gpack}/travian_default/img/m/t5.gif | Bin .../gpack}/travian_default/img/m/t6.gif | Bin .../gpack}/travian_default/img/m/t7.gif | Bin .../gpack}/travian_default/img/m/t8.gif | Bin .../gpack}/travian_default/img/m/t9.gif | Bin .../gpack}/travian_default/img/m/w1.jpg | Bin .../gpack}/travian_default/img/m/w10.jpg | Bin .../gpack}/travian_default/img/m/w11.jpg | Bin .../gpack}/travian_default/img/m/w12.jpg | Bin .../gpack}/travian_default/img/m/w2.jpg | Bin .../gpack}/travian_default/img/m/w3.jpg | Bin .../gpack}/travian_default/img/m/w4.jpg | Bin .../gpack}/travian_default/img/m/w5.jpg | Bin .../gpack}/travian_default/img/m/w6.jpg | Bin .../gpack}/travian_default/img/m/w7.jpg | Bin .../gpack}/travian_default/img/m/w8.jpg | Bin .../gpack}/travian_default/img/m/w9.jpg | Bin .../gpack}/travian_default/img/misc/403.gif | Bin .../gpack}/travian_default/img/misc/404.gif | Bin .../gpack}/travian_default/img/misc/500.gif | Bin .../travian_default/img/misc/artefacts.gif | Bin .../travian_default/img/misc/cropfinder.gif | Bin .../gpack/travian_default/img/misc}/index.php | 0 .../gpack}/travian_default/img/misc/vip.gif | Bin .../gpack}/travian_default/img/misc/win.png | Bin .../gpack}/travian_default/img/misc/xlo.gif | Bin .../travian_default/img/msg/bb_buttons.png | Bin .../travian_default/img/msg/block_bg.gif | Bin .../travian_default/img/msg/block_bg2.gif | Bin .../travian_default/img/msg/block_bg21.gif | Bin .../travian_default/img/msg/block_bg22.gif | Bin .../travian_default/img/msg/block_bg23.gif | Bin .../travian_default/img/msg/block_bg25.gif | Bin .../gpack/travian_default/img/msg}/index.php | 0 .../gpack}/travian_default/img/msg/line.gif | Bin .../travian_default/img/msg/underline.gif | Bin .../gpack}/travian_default/img/new/adr.png | Bin .../gpack}/travian_default/img/new/anl.png | Bin .../travian_default/img/new/background.png | Bin .../img/new/background_a2b.png | Bin .../img/new/background_alliance_name.png | Bin .../img/new/background_map.png | Bin .../img/new/background_messages.png | Bin .../img/new/background_plus.png | Bin .../img/new/background_reports.png | Bin .../img/new/background_settings.png | Bin .../img/new/background_statistics.png | Bin .../img/new/background_village_name.png | Bin .../img/new/background_warsim.png | Bin .../travian_default/img/new/bb_buttons.png | Bin .../img/new/building_border.png | Bin .../gpack}/travian_default/img/new/c2.gif | Bin .../gpack}/travian_default/img/new/cancel.gif | Bin .../travian_default/img/new/clay_border.png | Bin .../gpack}/travian_default/img/new/clock.gif | Bin .../gpack}/travian_default/img/new/closed.png | Bin .../travian_default/img/new/crop_border.png | Bin .../gpack}/travian_default/img/new/def.png | Bin .../gpack}/travian_default/img/new/ff.png | Bin .../gpack}/travian_default/img/new/footer.png | Bin .../gpack}/travian_default/img/new/g22.gif | Bin .../img/new/gaulwall_border.png | Bin .../gpack}/travian_default/img/new/glvl.gif | Bin .../gpack}/travian_default/img/new/gold.gif | Bin .../gpack}/travian_default/img/new/gold_g.gif | Bin .../gpack}/travian_default/img/new/gp.png | Bin .../img/new/header-gold-grad.png | Bin .../travian_default/img/new/header-grad.gif | Bin .../travian_default/img/new/header-line.png | Bin .../gpack}/travian_default/img/new/header.png | Bin .../gpack}/travian_default/img/new/ie.png | Bin .../gpack/travian_default/img/new}/index.php | 0 .../travian_default/img/new/iron_border.png | Bin .../gpack}/travian_default/img/new/level.png | Bin .../gpack}/travian_default/img/new/menu.png | Bin .../gpack}/travian_default/img/new/minus.png | Bin .../gpack}/travian_default/img/new/navi1.png | Bin .../gpack}/travian_default/img/new/navi2.png | Bin .../gpack}/travian_default/img/new/navi3.png | Bin .../gpack}/travian_default/img/new/navi4.png | Bin .../gpack}/travian_default/img/new/navi5.png | Bin .../gpack}/travian_default/img/new/npc.png | Bin .../gpack}/travian_default/img/new/off.png | Bin .../gpack}/travian_default/img/new/opened.png | Bin .../gpack}/travian_default/img/new/opera.png | Bin .../gpack}/travian_default/img/new/plus.png | Bin .../img/new/rallypoint_border.png | Bin .../img/new/romanwall_border.png | Bin .../travian_default/img/new/switch_levels.png | Bin .../img/new/teutonwall_border.png | Bin .../travian_default/img/new/textmenu.gif | Bin .../gpack}/travian_default/img/new/tick.png | Bin .../gpack}/travian_default/img/new/top10.png | Bin .../gpack}/travian_default/img/new/white.gif | Bin .../travian_default/img/new/wood_border.png | Bin .../img/new/worldcup_background.png | Bin .../travian_default/img/p/attack_marker.gif | Bin .../gpack}/travian_default/img/p/bau0.jpg | Bin .../gpack}/travian_default/img/p/def10.jpg | Bin .../gpack/travian_default/img/p}/index.php | 0 .../gpack}/travian_default/img/p/no_ads.png | Bin .../gpack}/travian_default/img/p/npc.jpg | Bin .../gpack}/travian_default/img/p/off10.jpg | Bin .../gpack}/travian_default/img/p/p1_25.jpg | Bin .../gpack}/travian_default/img/p/p2_25.jpg | Bin .../gpack}/travian_default/img/p/p3_25.jpg | Bin .../gpack}/travian_default/img/p/p4_25.jpg | Bin .../gpack}/travian_default/img/q/alliance.jpg | Bin .../gpack}/travian_default/img/q/allres.jpg | Bin .../gpack}/travian_default/img/q/army.jpg | Bin .../gpack}/travian_default/img/q/barracks.jpg | Bin .../travian_default/img/q/clay_iron.jpg | Bin .../gpack}/travian_default/img/q/cost.jpg | Bin .../gpack}/travian_default/img/q/embassy.jpg | Bin .../gpack}/travian_default/img/q/farm.jpg | Bin .../gpack}/travian_default/img/q/gold.jpg | Bin .../gpack}/travian_default/img/q/granary.jpg | Bin .../travian_default/img/q/granary_rally.jpg | Bin .../gpack}/travian_default/img/q/hide.jpg | Bin .../gpack/travian_default/img/q}/index.php | 0 .../gpack}/travian_default/img/q/intro.jpg | Bin .../gpack}/travian_default/img/q/l0.jpg | Bin .../gpack}/travian_default/img/q/l0g.jpg | Bin .../gpack}/travian_default/img/q/l1.jpg | Bin .../gpack}/travian_default/img/q/l1g.jpg | Bin .../gpack}/travian_default/img/q/l2.jpg | Bin .../gpack}/travian_default/img/q/l2g.jpg | Bin .../gpack}/travian_default/img/q/l3.jpg | Bin .../gpack}/travian_default/img/q/l3g.jpg | Bin .../gpack}/travian_default/img/q/l4.jpg | Bin .../gpack}/travian_default/img/q/l4g.jpg | Bin .../gpack}/travian_default/img/q/l5.jpg | Bin .../gpack}/travian_default/img/q/l5g.jpg | Bin .../gpack}/travian_default/img/q/main.jpg | Bin .../gpack}/travian_default/img/q/market.jpg | Bin .../gpack}/travian_default/img/q/medal.jpg | Bin .../gpack}/travian_default/img/q/msg.jpg | Bin .../travian_default/img/q/neighbour.jpg | Bin .../travian_default/img/q/new_village.jpg | Bin .../gpack}/travian_default/img/q/rally.jpg | Bin .../gpack}/travian_default/img/q/rank.jpg | Bin .../gpack}/travian_default/img/q/report.jpg | Bin .../gpack}/travian_default/img/q/units.jpg | Bin .../travian_default/img/q/village_name.jpg | Bin .../travian_default/img/q/warehouse.jpg | Bin .../gpack}/travian_default/img/q/wood.jpg | Bin .../gpack}/travian_default/img/r/1.gif | Bin .../gpack}/travian_default/img/r/2.gif | Bin .../gpack}/travian_default/img/r/3.gif | Bin .../gpack}/travian_default/img/r/4.gif | Bin .../gpack}/travian_default/img/r/4b.gif | Bin .../gpack}/travian_default/img/r/5.gif | Bin .../gpack}/travian_default/img/r/5b.gif | Bin .../gpack}/travian_default/img/r/6.gif | Bin .../gpack}/travian_default/img/r/7.gif | Bin .../gpack}/travian_default/img/r/easter.gif | Bin .../gpack/travian_default/img/r}/index.php | 0 .../gpack}/travian_default/img/r/newy.gif | Bin .../gpack}/travian_default/img/r/peace.gif | Bin .../gpack}/travian_default/img/r/xmas.gif | Bin .../gpack}/travian_default/img/s/def.gif | Bin .../gpack/travian_default/img/s}/index.php | 0 .../gpack}/travian_default/img/s/off.gif | Bin .../gpack}/travian_default/img/s/top10.gif | Bin .../gpack}/travian_default/img/s/v1.gif | Bin .../gpack}/travian_default/img/s/v2.gif | Bin .../gpack}/travian_default/img/s/v3.gif | Bin .../gpack}/travian_default/img/scouts/18.gif | Bin .../gpack}/travian_default/img/scouts/19.gif | Bin .../gpack}/travian_default/img/scouts/20.gif | Bin .../gpack}/travian_default/img/scouts/21.gif | Bin .../gpack}/travian_default/img/scouts/22.gif | Bin .../travian_default/img/scouts}/index.php | 0 .../img/special/NewyearRocket_dark_1a.gif | Bin .../img/special/NewyearRocket_green_1a.gif | Bin .../img/special/NewyearRocket_orange_1a.gif | Bin .../img/special/NewyearRocket_purple_1a.gif | Bin .../img/special/NewyearRocket_red_1a.gif | Bin .../special/NewyearRocket_turquoise_1a.gif | Bin .../img/special/NewyearRocket_yellow_1a.gif | Bin .../travian_default/img/special}/index.php | 0 .../gpack}/travian_default/img/t/MH.png | Bin .../gpack}/travian_default/img/t/a1_1.jpg | Bin .../gpack}/travian_default/img/t/a1_10.jpg | Bin .../gpack}/travian_default/img/t/a1_2.jpg | Bin .../gpack}/travian_default/img/t/a1_3.jpg | Bin .../gpack}/travian_default/img/t/a1_4.jpg | Bin .../gpack}/travian_default/img/t/a1_5.jpg | Bin .../gpack}/travian_default/img/t/a1_6.jpg | Bin .../gpack}/travian_default/img/t/a1_7.jpg | Bin .../gpack}/travian_default/img/t/a1_8.jpg | Bin .../gpack}/travian_default/img/t/a1_9.jpg | Bin .../gpack}/travian_default/img/t/a2_1.jpg | Bin .../gpack}/travian_default/img/t/a2_10.jpg | Bin .../gpack}/travian_default/img/t/a2_2.jpg | Bin .../gpack}/travian_default/img/t/a2_3.jpg | Bin .../gpack}/travian_default/img/t/a2_4.jpg | Bin .../gpack}/travian_default/img/t/a2_5.jpg | Bin .../gpack}/travian_default/img/t/a2_6.jpg | Bin .../gpack}/travian_default/img/t/a2_7.jpg | Bin .../gpack}/travian_default/img/t/a2_8.jpg | Bin .../gpack}/travian_default/img/t/a2_9.jpg | Bin .../gpack}/travian_default/img/t/a3_1.jpg | Bin .../gpack}/travian_default/img/t/a3_10.jpg | Bin .../gpack}/travian_default/img/t/a3_2.jpg | Bin .../gpack}/travian_default/img/t/a3_3.jpg | Bin .../gpack}/travian_default/img/t/a3_4.jpg | Bin .../gpack}/travian_default/img/t/a3_5.jpg | Bin .../gpack}/travian_default/img/t/a3_6.jpg | Bin .../gpack}/travian_default/img/t/a3_7.jpg | Bin .../gpack}/travian_default/img/t/a3_8.jpg | Bin .../gpack}/travian_default/img/t/a3_9.jpg | Bin .../gpack}/travian_default/img/t/a4_1.jpg | Bin .../gpack}/travian_default/img/t/a4_10.jpg | Bin .../gpack}/travian_default/img/t/a4_2.jpg | Bin .../gpack}/travian_default/img/t/a4_3.jpg | Bin .../gpack}/travian_default/img/t/a4_4.jpg | Bin .../gpack}/travian_default/img/t/a4_5.jpg | Bin .../gpack}/travian_default/img/t/a4_6.jpg | Bin .../gpack}/travian_default/img/t/a4_7.jpg | Bin .../gpack}/travian_default/img/t/a4_8.jpg | Bin .../gpack}/travian_default/img/t/a4_9.jpg | Bin .../travian_default/img/t/builderWW.png | Bin .../travian_default/img/t/g40_11-ltr.png | Bin .../gpack}/travian_default/img/t/gauls.gif | Bin .../gpack/travian_default/img/t}/index.php | 0 .../gpack}/travian_default/img/t/nature.png | Bin .../gpack}/travian_default/img/t/roman.gif | Bin .../gpack}/travian_default/img/t/shadow.png | Bin .../gpack}/travian_default/img/t/t100_1.jpg | Bin .../gpack}/travian_default/img/t/t101_1.jpg | Bin .../gpack}/travian_default/img/t/t102_1.jpg | Bin .../gpack}/travian_default/img/t/t10_1.jpg | Bin .../gpack}/travian_default/img/t/t10_2.jpg | Bin .../gpack}/travian_default/img/t/t110_1.jpg | Bin .../gpack}/travian_default/img/t/t111_1.jpg | Bin .../gpack}/travian_default/img/t/t112_1.jpg | Bin .../gpack}/travian_default/img/t/t120_1.jpg | Bin .../gpack}/travian_default/img/t/t121_1.jpg | Bin .../gpack}/travian_default/img/t/t122_1.jpg | Bin .../gpack}/travian_default/img/t/t130_1.jpg | Bin .../gpack}/travian_default/img/t/t131_1.jpg | Bin .../gpack}/travian_default/img/t/t132_1.jpg | Bin .../gpack}/travian_default/img/t/t140_1.jpg | Bin .../gpack}/travian_default/img/t/t141_1.jpg | Bin .../gpack}/travian_default/img/t/t142_1.jpg | Bin .../gpack}/travian_default/img/t/t150_1.jpg | Bin .../gpack}/travian_default/img/t/t151_1.jpg | Bin .../gpack}/travian_default/img/t/t152_1.jpg | Bin .../gpack}/travian_default/img/t/t160_1.jpg | Bin .../gpack}/travian_default/img/t/t161_1.jpg | Bin .../gpack}/travian_default/img/t/t162_1.jpg | Bin .../gpack}/travian_default/img/t/t170_1.jpg | Bin .../gpack}/travian_default/img/t/t171_1.jpg | Bin .../gpack}/travian_default/img/t/t172_1.jpg | Bin .../gpack}/travian_default/img/t/t180_1.jpg | Bin .../gpack}/travian_default/img/t/t181_1.jpg | Bin .../gpack}/travian_default/img/t/t182_1.jpg | Bin .../gpack}/travian_default/img/t/t190_1.jpg | Bin .../gpack}/travian_default/img/t/t191_1.jpg | Bin .../gpack}/travian_default/img/t/t192_1.jpg | Bin .../gpack}/travian_default/img/t/t1_1.jpg | Bin .../gpack}/travian_default/img/t/t1_10.jpg | Bin .../gpack}/travian_default/img/t/t1_2.jpg | Bin .../gpack}/travian_default/img/t/t1_3.jpg | Bin .../gpack}/travian_default/img/t/t1_4.jpg | Bin .../gpack}/travian_default/img/t/t1_5.jpg | Bin .../gpack}/travian_default/img/t/t1_6.jpg | Bin .../gpack}/travian_default/img/t/t1_7.jpg | Bin .../gpack}/travian_default/img/t/t1_8.jpg | Bin .../gpack}/travian_default/img/t/t1_9.jpg | Bin .../gpack}/travian_default/img/t/t200_1.jpg | Bin .../gpack}/travian_default/img/t/t201_1.jpg | Bin .../gpack}/travian_default/img/t/t202_1.jpg | Bin .../gpack}/travian_default/img/t/t210_1.jpg | Bin .../gpack}/travian_default/img/t/t211_1.jpg | Bin .../gpack}/travian_default/img/t/t212_1.jpg | Bin .../gpack}/travian_default/img/t/t220_1.jpg | Bin .../gpack}/travian_default/img/t/t221_1.jpg | Bin .../gpack}/travian_default/img/t/t222_1.jpg | Bin .../gpack}/travian_default/img/t/t2_1.jpg | Bin .../gpack}/travian_default/img/t/t2_10.jpg | Bin .../gpack}/travian_default/img/t/t2_2.jpg | Bin .../gpack}/travian_default/img/t/t2_3.jpg | Bin .../gpack}/travian_default/img/t/t2_4.jpg | Bin .../gpack}/travian_default/img/t/t2_5.jpg | Bin .../gpack}/travian_default/img/t/t2_6.jpg | Bin .../gpack}/travian_default/img/t/t2_7.jpg | Bin .../gpack}/travian_default/img/t/t2_8.jpg | Bin .../gpack}/travian_default/img/t/t2_9.jpg | Bin .../gpack}/travian_default/img/t/t3_1.jpg | Bin .../gpack}/travian_default/img/t/t3_10.jpg | Bin .../gpack}/travian_default/img/t/t3_2.jpg | Bin .../gpack}/travian_default/img/t/t3_3.jpg | Bin .../gpack}/travian_default/img/t/t3_4.jpg | Bin .../gpack}/travian_default/img/t/t3_5.jpg | Bin .../gpack}/travian_default/img/t/t3_6.jpg | Bin .../gpack}/travian_default/img/t/t3_7.jpg | Bin .../gpack}/travian_default/img/t/t3_8.jpg | Bin .../gpack}/travian_default/img/t/t3_9.jpg | Bin .../gpack}/travian_default/img/t/t4_1.jpg | Bin .../gpack}/travian_default/img/t/t4_10.jpg | Bin .../gpack}/travian_default/img/t/t4_2.jpg | Bin .../gpack}/travian_default/img/t/t4_3.jpg | Bin .../gpack}/travian_default/img/t/t4_4.jpg | Bin .../gpack}/travian_default/img/t/t4_5.jpg | Bin .../gpack}/travian_default/img/t/t4_6.jpg | Bin .../gpack}/travian_default/img/t/t4_7.jpg | Bin .../gpack}/travian_default/img/t/t4_8.jpg | Bin .../gpack}/travian_default/img/t/t4_9.jpg | Bin .../gpack}/travian_default/img/t/t5_1.jpg | Bin .../gpack}/travian_default/img/t/t5_10.jpg | Bin .../gpack}/travian_default/img/t/t5_2.jpg | Bin .../gpack}/travian_default/img/t/t5_3.jpg | Bin .../gpack}/travian_default/img/t/t5_4.jpg | Bin .../gpack}/travian_default/img/t/t5_5.jpg | Bin .../gpack}/travian_default/img/t/t5_6.jpg | Bin .../gpack}/travian_default/img/t/t5_7.jpg | Bin .../gpack}/travian_default/img/t/t5_8.jpg | Bin .../gpack}/travian_default/img/t/t5_9.jpg | Bin .../gpack}/travian_default/img/t/t6_1.jpg | Bin .../gpack}/travian_default/img/t/t6_1.png | Bin .../gpack}/travian_default/img/t/t6_10.jpg | Bin .../gpack}/travian_default/img/t/t6_2.jpg | Bin .../gpack}/travian_default/img/t/t6_3.jpg | Bin .../gpack}/travian_default/img/t/t6_4.jpg | Bin .../gpack}/travian_default/img/t/t6_5.jpg | Bin .../gpack}/travian_default/img/t/t6_6.jpg | Bin .../gpack}/travian_default/img/t/t6_7.jpg | Bin .../gpack}/travian_default/img/t/t6_8.jpg | Bin .../gpack}/travian_default/img/t/t6_9.jpg | Bin .../travian_default/img/t/taskmaster.png | Bin .../gpack}/travian_default/img/t/team.png | Bin .../gpack}/travian_default/img/t/teutons.gif | Bin .../gpack}/travian_default/img/t/tn.gif | Bin .../gpack}/travian_default/img/t/tnd.gif | Bin .../gpack}/travian_default/img/t/winnerww.png | Bin .../gpack}/travian_default/img/u/1.gif | Bin .../gpack}/travian_default/img/u/10.gif | Bin .../gpack}/travian_default/img/u/11.gif | Bin .../gpack}/travian_default/img/u/12.gif | Bin .../gpack}/travian_default/img/u/13.gif | Bin .../gpack}/travian_default/img/u/14.gif | Bin .../gpack}/travian_default/img/u/15.gif | Bin .../gpack}/travian_default/img/u/16.gif | Bin .../gpack}/travian_default/img/u/17.gif | Bin .../gpack}/travian_default/img/u/18.gif | Bin .../gpack}/travian_default/img/u/19.gif | Bin .../gpack}/travian_default/img/u/2.gif | Bin .../gpack}/travian_default/img/u/20.gif | Bin .../gpack}/travian_default/img/u/21.gif | Bin .../gpack}/travian_default/img/u/22.gif | Bin .../gpack}/travian_default/img/u/23.gif | Bin .../gpack}/travian_default/img/u/24.gif | Bin .../gpack}/travian_default/img/u/25.gif | Bin .../gpack}/travian_default/img/u/26.gif | Bin .../gpack}/travian_default/img/u/27.gif | Bin .../gpack}/travian_default/img/u/28.gif | Bin .../gpack}/travian_default/img/u/29.gif | Bin .../gpack}/travian_default/img/u/3.gif | Bin .../gpack}/travian_default/img/u/30.gif | Bin .../gpack}/travian_default/img/u/31.gif | Bin .../gpack}/travian_default/img/u/32.gif | Bin .../gpack}/travian_default/img/u/33.gif | Bin .../gpack}/travian_default/img/u/34.gif | Bin .../gpack}/travian_default/img/u/35.gif | Bin .../gpack}/travian_default/img/u/36.gif | Bin .../gpack}/travian_default/img/u/37.gif | Bin .../gpack}/travian_default/img/u/38.gif | Bin .../gpack}/travian_default/img/u/39.gif | Bin .../gpack}/travian_default/img/u/4.gif | Bin .../gpack}/travian_default/img/u/40.gif | Bin .../gpack}/travian_default/img/u/41.gif | Bin .../gpack}/travian_default/img/u/42.gif | Bin .../gpack}/travian_default/img/u/43.gif | Bin .../gpack}/travian_default/img/u/44.gif | Bin .../gpack}/travian_default/img/u/45.gif | Bin .../gpack}/travian_default/img/u/46.gif | Bin .../gpack}/travian_default/img/u/47.gif | Bin .../gpack}/travian_default/img/u/48.gif | Bin .../gpack}/travian_default/img/u/49.gif | Bin .../gpack}/travian_default/img/u/5.gif | Bin .../gpack}/travian_default/img/u/50.gif | Bin .../gpack}/travian_default/img/u/51.gif | Bin .../gpack}/travian_default/img/u/52.gif | Bin .../gpack}/travian_default/img/u/53.gif | Bin .../gpack}/travian_default/img/u/54.gif | Bin .../gpack}/travian_default/img/u/55.gif | Bin .../gpack}/travian_default/img/u/56.gif | Bin .../gpack}/travian_default/img/u/57.gif | Bin .../gpack}/travian_default/img/u/58.gif | Bin .../gpack}/travian_default/img/u/59.gif | Bin .../gpack}/travian_default/img/u/6.gif | Bin .../gpack}/travian_default/img/u/60.gif | Bin .../gpack}/travian_default/img/u/7.gif | Bin .../gpack}/travian_default/img/u/8.gif | Bin .../gpack}/travian_default/img/u/9.gif | Bin .../gpack}/travian_default/img/u/98.gif | Bin .../gpack}/travian_default/img/u/99.gif | Bin .../gpack/travian_default/img/u}/index.php | 0 .../gpack}/travian_default/img/u/point.gif | Bin .../gpack}/travian_default/img/u/specials.gif | Bin .../travian_default/img/u/v1_romans2.gif | Bin .../travian_default/img/u/v2_teutons2.gif | Bin .../travian_default/img/u/v3_gauls2.gif | Bin .../travian_default/img/u/v4_nature2.gif | Bin .../travian_default/img/u/v5_natars2.gif | Bin .../travian_default/img/u/v6_monsters2.gif | Bin .../gpack/travian_default/img/u2}/index.php | 0 .../gpack}/travian_default/img/u2/u1.gif | Bin .../gpack}/travian_default/img/u2/u10.gif | Bin .../gpack}/travian_default/img/u2/u11.gif | Bin .../gpack}/travian_default/img/u2/u12.gif | Bin .../gpack}/travian_default/img/u2/u13.gif | Bin .../gpack}/travian_default/img/u2/u14.gif | Bin .../gpack}/travian_default/img/u2/u15.gif | Bin .../gpack}/travian_default/img/u2/u16.gif | Bin .../gpack}/travian_default/img/u2/u17.gif | Bin .../gpack}/travian_default/img/u2/u18.gif | Bin .../gpack}/travian_default/img/u2/u19.gif | Bin .../gpack}/travian_default/img/u2/u2.gif | Bin .../gpack}/travian_default/img/u2/u20.gif | Bin .../gpack}/travian_default/img/u2/u21.gif | Bin .../gpack}/travian_default/img/u2/u22.gif | Bin .../gpack}/travian_default/img/u2/u23.gif | Bin .../gpack}/travian_default/img/u2/u24.gif | Bin .../gpack}/travian_default/img/u2/u25.gif | Bin .../gpack}/travian_default/img/u2/u26.gif | Bin .../gpack}/travian_default/img/u2/u27.gif | Bin .../gpack}/travian_default/img/u2/u28.gif | Bin .../gpack}/travian_default/img/u2/u29.gif | Bin .../gpack}/travian_default/img/u2/u3.gif | Bin .../gpack}/travian_default/img/u2/u30.gif | Bin .../gpack}/travian_default/img/u2/u4.gif | Bin .../gpack}/travian_default/img/u2/u5.gif | Bin .../gpack}/travian_default/img/u2/u6.gif | Bin .../gpack}/travian_default/img/u2/u7.gif | Bin .../gpack}/travian_default/img/u2/u8.gif | Bin .../gpack}/travian_default/img/u2/u9.gif | Bin .../travian_default/img/u2rtl}/index.php | 0 .../gpack}/travian_default/img/u2rtl/u1.gif | Bin .../gpack}/travian_default/img/u2rtl/u10.gif | Bin .../gpack}/travian_default/img/u2rtl/u11.gif | Bin .../gpack}/travian_default/img/u2rtl/u12.gif | Bin .../gpack}/travian_default/img/u2rtl/u13.gif | Bin .../gpack}/travian_default/img/u2rtl/u14.gif | Bin .../gpack}/travian_default/img/u2rtl/u15.gif | Bin .../gpack}/travian_default/img/u2rtl/u16.gif | Bin .../gpack}/travian_default/img/u2rtl/u17.gif | Bin .../gpack}/travian_default/img/u2rtl/u18.gif | Bin .../gpack}/travian_default/img/u2rtl/u19.gif | Bin .../gpack}/travian_default/img/u2rtl/u2.gif | Bin .../gpack}/travian_default/img/u2rtl/u20.gif | Bin .../gpack}/travian_default/img/u2rtl/u21.gif | Bin .../gpack}/travian_default/img/u2rtl/u22.gif | Bin .../gpack}/travian_default/img/u2rtl/u23.gif | Bin .../gpack}/travian_default/img/u2rtl/u24.gif | Bin .../gpack}/travian_default/img/u2rtl/u25.gif | Bin .../gpack}/travian_default/img/u2rtl/u26.gif | Bin .../gpack}/travian_default/img/u2rtl/u27.gif | Bin .../gpack}/travian_default/img/u2rtl/u28.gif | Bin .../gpack}/travian_default/img/u2rtl/u29.gif | Bin .../gpack}/travian_default/img/u2rtl/u3.gif | Bin .../gpack}/travian_default/img/u2rtl/u30.gif | Bin .../gpack}/travian_default/img/u2rtl/u4.gif | Bin .../gpack}/travian_default/img/u2rtl/u5.gif | Bin .../gpack}/travian_default/img/u2rtl/u6.gif | Bin .../gpack}/travian_default/img/u2rtl/u7.gif | Bin .../gpack}/travian_default/img/u2rtl/u8.gif | Bin .../gpack}/travian_default/img/u2rtl/u9.gif | Bin .../gpack/travian_default/img/wm}/index.php | 0 .../gpack}/travian_default/img/wm/wm99.gif | Bin .../gpack/travian_default}/index.php | 0 .../travian_default/lang/en/a}/index.php | 0 .../gpack}/travian_default/lang/en/a/plus.gif | Bin .../travian_default/lang/en/a/travian0.gif | Bin .../travian_default/lang/en/a/travian1.gif | Bin .../travian_default/lang/en/b/archiv.gif | Bin .../gpack}/travian_default/lang/en/b/back.gif | Bin .../travian_default/lang/en/b/delete.gif | Bin .../travian_default/lang/en/b/demolish.gif | Bin .../travian_default/lang/en/b/forward.gif | Bin .../travian_default/lang/en/b}/index.php | 0 .../travian_default/lang/en/b/login.gif | Bin .../gpack}/travian_default/lang/en/b/ok.gif | Bin .../travian_default/lang/en/b/reply.gif | Bin .../gpack}/travian_default/lang/en/b/save.gif | Bin .../travian_default/lang/en/b/search.gif | Bin .../gpack}/travian_default/lang/en/b/send.gif | Bin .../travian_default/lang/en/b/signup.gif | Bin .../travian_default/lang/en/b/train.gif | Bin .../travian_default/lang/en/b/zurueck.html | 0 .../travian_default/lang/en/compact.css | 76 +- .../travian_default/lang/en/f}/index.php | 0 .../travian_default/lang/en/f/newforum.gif | Bin .../gpack}/travian_default/lang/en/f/post.gif | Bin .../travian_default/lang/en/f/reply.gif | Bin .../travian_default/lang/en/f/result.gif | Bin .../gpack}/travian_default/lang/en/f/vote.gif | Bin .../travian_default/lang/en/f/voting.gif | Bin .../travian_default/lang/en/gp_check.css | 0 .../gpack/travian_default/lang/en}/index.php | 0 .../gpack}/travian_default/lang/en/lang.css | 0 .../lang/en/msg/block_bg24a.gif | Bin .../lang/en/msg/block_bg24b.gif | Bin .../travian_default/lang/en/msg}/index.php | 0 .../lang/en/new/gp_preview.png | Bin .../travian_default/lang/en/new}/index.php | 0 .../travian_default/lang/en/p/autovv.gif | Bin .../travian_default/lang/en/p/bfilter.gif | Bin .../travian_default/lang/en/p/dorf3.jpg | Bin .../travian_default/lang/en/p}/index.php | 0 .../gpack}/travian_default/lang/en/p/p1.gif | Bin .../gpack}/travian_default/lang/en/p/p3.gif | Bin .../gpack}/travian_default/lang/en/p/p4.gif | Bin .../gpack}/travian_default/lang/en/p/p5.gif | Bin .../gpack}/travian_default/lang/en/p/p6.gif | Bin .../gpack}/travian_default/lang/en/p/p7.gif | Bin .../gpack}/travian_default/lang/en/p/p8.gif | Bin .../gpack}/travian_default/lang/en/p/sort.jpg | Bin .../gpack}/travian_default/lang/en/p/st1.gif | Bin .../travian_default/lang/en/p/xxl_map.gif | Bin .../travian_default/lang/en/t1/anmelden.gif | Bin .../travian_default/lang/en/t1}/index.php | 0 .../travian_default/lang/en/t1/login.gif | Bin .../travian_default/lang/en/t1/passwort.gif | Bin .../travian_default/lang/en/t2}/index.php | 0 .../gpack}/travian_default/lang/en/t2/u04.gif | Bin .../gpack}/travian_default/lang/en/t2/u05.gif | Bin .../gpack}/travian_default/lang/en/t2/u06.gif | Bin .../gpack}/travian_default/lang/en/t2/u07.gif | Bin .../gpack}/travian_default/lang/en/t2/u22.gif | Bin .../gpack/travian_default/lang}/index.php | 0 .../gpack/travian_default/modules}/index.php | 0 .../travian_default/modules/new_colors.css | 0 .../travian_default/modules/new_images.css | 0 .../modules/new_layout_ltr.css | 0 .../gpack}/travian_default/travian.css | 0 .../gpack}/travian_t4/bodybg_fix.jpg | Bin .../gpack}/travian_t4/images/artwork1-ltr.jpg | Bin .../gpack}/travian_t4/images/artwork2-ltr.jpg | Bin .../travian_t4/images/banner-zravianx.png | Bin .../travian_t4/images/footer_background.gif | Bin .../gpack}/travian_t4/images/footer_logo.gif | Bin .../gpack}/travian_t4/images/footer_logo.png | Bin .../gpack}/travian_t4/images/footer_logo.psd | Bin .../travian_t4/images/footer_logo_old.gif | Bin .../images/footer_logo_zravianx.gif | Bin .../travian_t4/images/header_background.jpg | Bin .../gpack/travian_t4/images}/index.php | 0 .../gpack}/travian_t4/images/m1-ltr.gif | Bin .../gpack}/travian_t4/images/m2-ltr.gif | Bin .../gpack}/travian_t4/images/m3-ltr.gif | Bin .../gpack}/travian_t4/images/m4-ltr.gif | Bin .../gpack}/travian_t4/images/menu-bg-ltr.gif | Bin .../gpack}/travian_t4/images/n1-ltr.gif | Bin .../gpack}/travian_t4/images/n2-ltr.gif | Bin .../gpack}/travian_t4/images/n3-ltr.gif | Bin .../gpack}/travian_t4/images/n4-ltr.gif | Bin .../travian_t4/images/plus_active-ltr.gif | Bin .../gpack}/travian_t4/images/plus_bg.gif | Bin .../travian_t4/images/plus_inactive-ltr.gif | Bin .../travian_t4/images/plus_start-ltr.gif | Bin .../gpack}/travian_t4/images/shadow-a-ltr.png | Bin .../gpack}/travian_t4/images/shadow-b-ltr.png | Bin .../gpack}/travian_t4/img/a/acc.gif | Bin .../gpack}/travian_t4/img/a/adr.gif | Bin .../gpack}/travian_t4/img/a/adr_rtl.gif | Bin .../gpack}/travian_t4/img/a/anl.gif | Bin .../gpack}/travian_t4/img/a/anl_rtl.gif | Bin .../gpack}/travian_t4/img/a/att1.gif | Bin .../gpack}/travian_t4/img/a/att2.gif | Bin .../gpack}/travian_t4/img/a/att3.gif | Bin .../gpack}/travian_t4/img/a/att_all.gif | Bin .../gpack}/travian_t4/img/a/attack_symbol.gif | Bin .../gpack}/travian_t4/img/a/b6.gif | Bin .../gpack}/travian_t4/img/a/bau.gif | Bin .../gpack}/travian_t4/img/a/btm.gif | Bin .../gpack}/travian_t4/img/a/buildings.gif | Bin .../gpack}/travian_t4/img/a/c2.gif | Bin .../gpack}/travian_t4/img/a/c3.gif | Bin .../gpack}/travian_t4/img/a/car.gif | Bin .../travian_t4/img/a/clock-inactive.gif | Bin .../gpack}/travian_t4/img/a/clock.gif | Bin .../gpack}/travian_t4/img/a/close.gif | Bin .../gpack}/travian_t4/img/a/closed.gif | Bin .../gpack}/travian_t4/img/a/def1.gif | Bin .../gpack}/travian_t4/img/a/def2.gif | Bin .../gpack}/travian_t4/img/a/def3.gif | Bin .../gpack}/travian_t4/img/a/def_all.gif | Bin .../gpack}/travian_t4/img/a/def_c.gif | Bin .../gpack}/travian_t4/img/a/def_i.gif | Bin .../gpack}/travian_t4/img/a/del.gif | Bin .../gpack}/travian_t4/img/a/del_g.gif | Bin .../gpack}/travian_t4/img/a/external.gif | Bin .../gpack}/travian_t4/img/a/f1 Kopie.jpg | Bin .../gpack}/travian_t4/img/a/firefox.gif | Bin .../gpack}/travian_t4/img/a/friends.gif | Bin .../gpack}/travian_t4/img/a/gold.gif | Bin .../gpack}/travian_t4/img/a/gold_g.gif | Bin .../gpack}/travian_t4/img/a/gp.gif | Bin .../gpack}/travian_t4/img/a/help.gif | Bin .../gpack}/travian_t4/img/a/ie.gif | Bin .../gpack/travian_t4/img/a}/index.php | 0 .../gpack}/travian_t4/img/a/minus.gif | Bin .../gpack}/travian_t4/img/a/n.gif | Bin .../gpack}/travian_t4/img/a/n12.gif | Bin .../gpack}/travian_t4/img/a/n_rtl.gif | Bin .../gpack}/travian_t4/img/a/navi.gif | Bin .../gpack}/travian_t4/img/a/npc.gif | Bin .../gpack}/travian_t4/img/a/online.gif | Bin .../gpack}/travian_t4/img/a/online1.gif | Bin .../gpack}/travian_t4/img/a/online2.gif | Bin .../gpack}/travian_t4/img/a/online3.gif | Bin .../gpack}/travian_t4/img/a/online4.gif | Bin .../gpack}/travian_t4/img/a/online5.gif | Bin .../gpack}/travian_t4/img/a/online6.gif | Bin .../gpack}/travian_t4/img/a/opened.gif | Bin .../gpack}/travian_t4/img/a/opera.gif | Bin .../gpack}/travian_t4/img/a/plus.gif | Bin .../gpack}/travian_t4/img/a/rand.gif | Bin .../gpack}/travian_t4/img/a/refresh.png | Bin .../gpack}/travian_t4/img/a/report_icons.gif | Bin .../gpack}/travian_t4/img/a/res2.gif | Bin .../gpack}/travian_t4/img/a/s.gif | Bin .../gpack}/travian_t4/img/a/troops.gif | Bin .../gpack}/travian_t4/img/a/unknown.gif | Bin .../gpack}/travian_t4/img/a/w.gif | Bin .../gpack}/travian_t4/img/a/x.gif | Bin .../gpack/travian_t4/img/artefact}/index.php | 0 .../gpack}/travian_t4/img/artefact/type-1.gif | Bin .../travian_t4/img/artefact/type-10.gif | Bin .../gpack}/travian_t4/img/artefact/type-2.gif | Bin .../gpack}/travian_t4/img/artefact/type-4.gif | Bin .../gpack}/travian_t4/img/artefact/type-5.gif | Bin .../gpack}/travian_t4/img/artefact/type-6.gif | Bin .../gpack}/travian_t4/img/artefact/type-8.gif | Bin .../gpack}/travian_t4/img/artefact/type-9.gif | Bin .../travian_t4/img/artefact/type-fool.gif | Bin .../gpack}/travian_t4/img/artefact/type1.gif | Bin .../gpack}/travian_t4/img/artefact/type2.gif | Bin .../gpack}/travian_t4/img/artefact/type3.gif | Bin .../gpack}/travian_t4/img/artefact/type4.gif | Bin .../gpack}/travian_t4/img/artefact/type5.gif | Bin .../gpack}/travian_t4/img/artefact/type6.gif | Bin .../gpack}/travian_t4/img/artefact/type7.gif | Bin .../gpack}/travian_t4/img/artefact/type8.gif | Bin .../gpack}/travian_t4/img/artefact/typeww.gif | Bin .../gpack}/travian_t4/img/f/c4.gif | Bin .../gpack}/travian_t4/img/f/del.gif | Bin .../gpack}/travian_t4/img/f/down_arr.gif | Bin .../gpack}/travian_t4/img/f/edit.gif | Bin .../gpack}/travian_t4/img/f/folder.gif | Bin .../gpack}/travian_t4/img/f/folder_lock.gif | Bin .../gpack}/travian_t4/img/f/folder_new.gif | Bin .../travian_t4/img/f/folder_new_lock.gif | Bin .../travian_t4/img/f/folder_new_sticky.gif | Bin .../img/f/folder_new_sticky_lock.gif | Bin .../gpack}/travian_t4/img/f/folder_sticky.gif | Bin .../travian_t4/img/f/folder_sticky_lock.gif | Bin .../travian_t4/img/f/icon_latest_reply.gif | Bin .../gpack/travian_t4/img/f}/index.php | 0 .../gpack}/travian_t4/img/f/lock.gif | Bin .../gpack}/travian_t4/img/f/mad.gif | Bin .../gpack}/travian_t4/img/f/pin.gif | Bin .../gpack}/travian_t4/img/f/plus.gif | Bin .../gpack}/travian_t4/img/f/smileys.gif | Bin .../gpack}/travian_t4/img/f/stats_left.gif | Bin .../gpack}/travian_t4/img/f/stats_middle.gif | Bin .../gpack}/travian_t4/img/f/stats_right.gif | Bin .../gpack}/travian_t4/img/f/switch_admin.gif | Bin .../gpack}/travian_t4/img/f/unlock.gif | Bin .../gpack}/travian_t4/img/f/unpin.gif | Bin .../gpack}/travian_t4/img/f/up_arr.gif | Bin .../gpack}/travian_t4/img/f/v_folder.gif | Bin .../gpack}/travian_t4/img/f/v_folder_lock.gif | Bin .../gpack}/travian_t4/img/f/v_folder_new.gif | Bin .../travian_t4/img/f/v_folder_new_lock.gif | Bin .../travian_t4/img/f/v_folder_new_sticky.gif | Bin .../img/f/v_folder_new_sticky_lock.gif | Bin .../travian_t4/img/f/v_folder_sticky.gif | Bin .../travian_t4/img/f/v_folder_sticky_lock.gif | Bin .../gpack}/travian_t4/img/g/bg0.jpg | Bin .../gpack}/travian_t4/img/g/bg1.jpg | Bin .../gpack}/travian_t4/img/g/bg11.jpg | Bin .../gpack}/travian_t4/img/g/bg12.jpg | Bin .../gpack}/travian_t4/img/g/bg13.jpg | Bin .../gpack}/travian_t4/img/g/f1.jpg | Bin .../gpack}/travian_t4/img/g/f10.jpg | Bin .../gpack}/travian_t4/img/g/f11.jpg | Bin .../gpack}/travian_t4/img/g/f12.jpg | Bin .../gpack}/travian_t4/img/g/f2.jpg | Bin .../gpack}/travian_t4/img/g/f3.jpg | Bin .../gpack}/travian_t4/img/g/f4.jpg | Bin .../gpack}/travian_t4/img/g/f5.jpg | Bin .../gpack}/travian_t4/img/g/f6.jpg | Bin .../gpack}/travian_t4/img/g/f7.jpg | Bin .../gpack}/travian_t4/img/g/f8.jpg | Bin .../gpack}/travian_t4/img/g/f9.jpg | Bin .../gpack}/travian_t4/img/g/f99.jpg | Bin .../gpack}/travian_t4/img/g/g1.gif | Bin .../gpack}/travian_t4/img/g/g10.gif | Bin .../gpack}/travian_t4/img/g/g10b.gif | Bin .../gpack}/travian_t4/img/g/g11.gif | Bin .../gpack}/travian_t4/img/g/g11b.gif | Bin .../gpack}/travian_t4/img/g/g12.gif | Bin .../gpack}/travian_t4/img/g/g12b.gif | Bin .../gpack}/travian_t4/img/g/g13.gif | Bin .../gpack}/travian_t4/img/g/g13b.gif | Bin .../gpack}/travian_t4/img/g/g14.gif | Bin .../gpack}/travian_t4/img/g/g14b.gif | Bin .../gpack}/travian_t4/img/g/g15.gif | Bin .../gpack}/travian_t4/img/g/g15b.gif | Bin .../gpack}/travian_t4/img/g/g16.gif | Bin .../gpack}/travian_t4/img/g/g16b.gif | Bin .../gpack}/travian_t4/img/g/g16e.gif | Bin .../gpack}/travian_t4/img/g/g16e.png | Bin .../gpack}/travian_t4/img/g/g17.gif | Bin .../gpack}/travian_t4/img/g/g17b.gif | Bin .../gpack}/travian_t4/img/g/g18.gif | Bin .../gpack}/travian_t4/img/g/g18b.gif | Bin .../gpack}/travian_t4/img/g/g19.gif | Bin .../gpack}/travian_t4/img/g/g19b.gif | Bin .../gpack}/travian_t4/img/g/g2.gif | Bin .../gpack}/travian_t4/img/g/g20.gif | Bin .../gpack}/travian_t4/img/g/g20b.gif | Bin .../gpack}/travian_t4/img/g/g21.gif | Bin .../gpack}/travian_t4/img/g/g21b.gif | Bin .../gpack}/travian_t4/img/g/g22.gif | Bin .../gpack}/travian_t4/img/g/g22b.gif | Bin .../gpack}/travian_t4/img/g/g23.gif | Bin .../gpack}/travian_t4/img/g/g23b.gif | Bin .../gpack}/travian_t4/img/g/g24.gif | Bin .../gpack}/travian_t4/img/g/g24b.gif | Bin .../gpack}/travian_t4/img/g/g25.gif | Bin .../gpack}/travian_t4/img/g/g25b.gif | Bin .../gpack}/travian_t4/img/g/g26.gif | Bin .../gpack}/travian_t4/img/g/g26b.gif | Bin .../gpack}/travian_t4/img/g/g27.gif | Bin .../gpack}/travian_t4/img/g/g27b.gif | Bin .../gpack}/travian_t4/img/g/g28.gif | Bin .../gpack}/travian_t4/img/g/g28b.gif | Bin .../gpack}/travian_t4/img/g/g29.gif | Bin .../gpack}/travian_t4/img/g/g29b.gif | Bin .../gpack}/travian_t4/img/g/g3.gif | Bin .../gpack}/travian_t4/img/g/g30.gif | Bin .../gpack}/travian_t4/img/g/g30b.gif | Bin .../gpack}/travian_t4/img/g/g34.gif | Bin .../gpack}/travian_t4/img/g/g34b.gif | Bin .../gpack}/travian_t4/img/g/g35.gif | Bin .../gpack}/travian_t4/img/g/g35_tea.gif | Bin .../gpack}/travian_t4/img/g/g35b.gif | Bin .../gpack}/travian_t4/img/g/g35b_tea.gif | Bin .../gpack}/travian_t4/img/g/g36.gif | Bin .../gpack}/travian_t4/img/g/g36b.gif | Bin .../gpack}/travian_t4/img/g/g37.gif | Bin .../gpack}/travian_t4/img/g/g37b.gif | Bin .../gpack}/travian_t4/img/g/g38.gif | Bin .../gpack}/travian_t4/img/g/g38b.gif | Bin .../gpack}/travian_t4/img/g/g39.gif | Bin .../gpack}/travian_t4/img/g/g39b.gif | Bin .../gpack}/travian_t4/img/g/g4.gif | Bin .../gpack}/travian_t4/img/g/g40.gif | Bin .../gpack}/travian_t4/img/g/g40_1.gif | Bin .../gpack}/travian_t4/img/g/g40_2.gif | Bin .../gpack}/travian_t4/img/g/g40_3.gif | Bin .../gpack}/travian_t4/img/g/g40_4.gif | Bin .../gpack}/travian_t4/img/g/g40_5.gif | Bin .../gpack}/travian_t4/img/g/g41.gif | Bin .../gpack}/travian_t4/img/g/g41b.gif | Bin .../gpack}/travian_t4/img/g/g42.gif | Bin .../gpack}/travian_t4/img/g/g42b.gif | Bin .../gpack}/travian_t4/img/g/g43.gif | Bin .../gpack}/travian_t4/img/g/g43b.gif | Bin .../gpack}/travian_t4/img/g/g44.gif | Bin .../gpack}/travian_t4/img/g/g44b.gif | Bin .../gpack}/travian_t4/img/g/g5.gif | Bin .../gpack}/travian_t4/img/g/g5b.gif | Bin .../gpack}/travian_t4/img/g/g6.gif | Bin .../gpack}/travian_t4/img/g/g6b.gif | Bin .../gpack}/travian_t4/img/g/g7.gif | Bin .../gpack}/travian_t4/img/g/g7b.gif | Bin .../gpack}/travian_t4/img/g/g8.gif | Bin .../gpack}/travian_t4/img/g/g8b.gif | Bin .../gpack}/travian_t4/img/g/g9.gif | Bin .../gpack}/travian_t4/img/g/g9b.gif | Bin .../gpack/travian_t4/img/g}/index.php | 0 .../gpack}/travian_t4/img/g/iso.gif | Bin .../gpack}/travian_t4/img/g/s/glvl.gif | Bin .../gpack}/travian_t4/img/g/s/glvlm.gif | Bin .../gpack}/travian_t4/img/g/s/glvlp.gif | Bin .../gpack}/travian_t4/img/g/s/lvl11_20.gif | Bin .../gpack}/travian_t4/img/g/s/lvl1_10.gif | Bin .../gpack}/travian_t4/img/g/s/lvl21_30.gif | Bin .../gpack/travian_t4/img}/index.php | 0 .../gpack}/travian_t4/img/l/ad0.jpg | Bin .../gpack}/travian_t4/img/l/ad1.jpg | Bin .../gpack}/travian_t4/img/l/ad2.jpg | Bin .../gpack}/travian_t4/img/l/bigsize_bg.jpg | Bin .../travian_t4/img/l/bigsize_bg_interia.jpg | Bin .../gpack}/travian_t4/img/l/day.gif | Bin .../gpack}/travian_t4/img/l/dyn_bg1.jpg | Bin .../gpack/travian_t4/img/l}/index.php | 0 .../gpack}/travian_t4/img/l/m1.gif | Bin .../gpack}/travian_t4/img/l/m1_30.gif | Bin .../gpack}/travian_t4/img/l/m2.gif | Bin .../gpack}/travian_t4/img/l/m2_30.gif | Bin .../gpack}/travian_t4/img/l/m3.gif | Bin .../gpack}/travian_t4/img/l/m3_30.gif | Bin .../gpack}/travian_t4/img/l/m4.gif | Bin .../gpack}/travian_t4/img/l/m4_30.gif | Bin .../gpack}/travian_t4/img/l/mp.gif | Bin .../gpack}/travian_t4/img/l/mw.gif | Bin .../gpack}/travian_t4/img/l/n1.gif | Bin .../gpack}/travian_t4/img/l/n1_30.gif | Bin .../gpack}/travian_t4/img/l/n2.gif | Bin .../gpack}/travian_t4/img/l/n2_30.gif | Bin .../gpack}/travian_t4/img/l/n3.gif | Bin .../gpack}/travian_t4/img/l/n3_30.gif | Bin .../gpack}/travian_t4/img/l/n4.gif | Bin .../gpack}/travian_t4/img/l/n4_30.gif | Bin .../gpack}/travian_t4/img/l/navi.gif | Bin .../gpack}/travian_t4/img/l/night.gif | Bin .../gpack}/travian_t4/img/l/skyscraper_bg.gif | Bin .../gpack}/travian_t4/img/m/d00.gif | Bin .../gpack}/travian_t4/img/m/d01.gif | Bin .../gpack}/travian_t4/img/m/d02.gif | Bin .../gpack}/travian_t4/img/m/d03.gif | Bin .../gpack}/travian_t4/img/m/d04.gif | Bin .../gpack}/travian_t4/img/m/d05.gif | Bin .../gpack}/travian_t4/img/m/d10.gif | Bin .../gpack}/travian_t4/img/m/d11.gif | Bin .../gpack}/travian_t4/img/m/d12.gif | Bin .../gpack}/travian_t4/img/m/d13.gif | Bin .../gpack}/travian_t4/img/m/d14.gif | Bin .../gpack}/travian_t4/img/m/d15.gif | Bin .../gpack}/travian_t4/img/m/d20.gif | Bin .../gpack}/travian_t4/img/m/d21.gif | Bin .../gpack}/travian_t4/img/m/d22.gif | Bin .../gpack}/travian_t4/img/m/d23.gif | Bin .../gpack}/travian_t4/img/m/d24.gif | Bin .../gpack}/travian_t4/img/m/d25.gif | Bin .../gpack}/travian_t4/img/m/d30.gif | Bin .../gpack}/travian_t4/img/m/d31.gif | Bin .../gpack}/travian_t4/img/m/d32.gif | Bin .../gpack}/travian_t4/img/m/d33.gif | Bin .../gpack}/travian_t4/img/m/d34.gif | Bin .../gpack}/travian_t4/img/m/d35.gif | Bin .../gpack}/travian_t4/img/m/dir.gif | Bin .../gpack/travian_t4/img/m}/index.php | 0 .../gpack}/travian_t4/img/m/map.gif | Bin .../gpack}/travian_t4/img/m/map.jpg | Bin .../gpack}/travian_t4/img/m/mapl.gif | Bin .../gpack}/travian_t4/img/m/matt.gif | Bin .../gpack}/travian_t4/img/m/max.gif | Bin .../gpack}/travian_t4/img/m/mret.gif | Bin .../gpack}/travian_t4/img/m/mspy.gif | Bin .../gpack}/travian_t4/img/m/msup.gif | Bin .../gpack}/travian_t4/img/m/o1.gif | Bin .../gpack}/travian_t4/img/m/o10.gif | Bin .../gpack}/travian_t4/img/m/o11.gif | Bin .../gpack}/travian_t4/img/m/o12.gif | Bin .../gpack}/travian_t4/img/m/o2.gif | Bin .../gpack}/travian_t4/img/m/o3.gif | Bin .../gpack}/travian_t4/img/m/o4.gif | Bin .../gpack}/travian_t4/img/m/o5.gif | Bin .../gpack}/travian_t4/img/m/o6.gif | Bin .../gpack}/travian_t4/img/m/o7.gif | Bin .../gpack}/travian_t4/img/m/o8.gif | Bin .../gpack}/travian_t4/img/m/o9.gif | Bin .../gpack}/travian_t4/img/m/o99.gif | Bin .../gpack}/travian_t4/img/m/t0.gif | Bin .../gpack}/travian_t4/img/m/t1.gif | Bin .../gpack}/travian_t4/img/m/t2.gif | Bin .../gpack}/travian_t4/img/m/t3.gif | Bin .../gpack}/travian_t4/img/m/t4.gif | Bin .../gpack}/travian_t4/img/m/t5.gif | Bin .../gpack}/travian_t4/img/m/t6.gif | Bin .../gpack}/travian_t4/img/m/t7.gif | Bin .../gpack}/travian_t4/img/m/t8.gif | Bin .../gpack}/travian_t4/img/m/t9.gif | Bin .../gpack}/travian_t4/img/m/w1.jpg | Bin .../gpack}/travian_t4/img/m/w10.jpg | Bin .../gpack}/travian_t4/img/m/w11.jpg | Bin .../gpack}/travian_t4/img/m/w12.jpg | Bin .../gpack}/travian_t4/img/m/w2.jpg | Bin .../gpack}/travian_t4/img/m/w3.jpg | Bin .../gpack}/travian_t4/img/m/w4.jpg | Bin .../gpack}/travian_t4/img/m/w5.jpg | Bin .../gpack}/travian_t4/img/m/w6.jpg | Bin .../gpack}/travian_t4/img/m/w7.jpg | Bin .../gpack}/travian_t4/img/m/w8.jpg | Bin .../gpack}/travian_t4/img/m/w9.jpg | Bin .../gpack}/travian_t4/img/misc/403.gif | Bin .../gpack}/travian_t4/img/misc/404.gif | Bin .../gpack}/travian_t4/img/misc/500.gif | Bin .../gpack}/travian_t4/img/misc/artefacts.gif | Bin .../gpack}/travian_t4/img/misc/cropfinder.gif | Bin .../gpack/travian_t4/img/misc}/index.php | 0 .../gpack}/travian_t4/img/misc/vip.gif | Bin .../gpack}/travian_t4/img/misc/win.png | Bin .../gpack}/travian_t4/img/misc/xlo.gif | Bin .../gpack}/travian_t4/img/msg/bb_buttons.png | Bin .../gpack}/travian_t4/img/msg/block_bg.gif | Bin .../gpack}/travian_t4/img/msg/block_bg2.gif | Bin .../gpack}/travian_t4/img/msg/block_bg21.gif | Bin .../gpack}/travian_t4/img/msg/block_bg22.gif | Bin .../gpack}/travian_t4/img/msg/block_bg23.gif | Bin .../gpack}/travian_t4/img/msg/block_bg25.gif | Bin .../gpack/travian_t4/img/msg}/index.php | 0 .../gpack}/travian_t4/img/msg/line.gif | Bin .../gpack}/travian_t4/img/msg/underline.gif | Bin .../gpack}/travian_t4/img/new/adr.png | Bin .../gpack}/travian_t4/img/new/anl.png | Bin .../gpack}/travian_t4/img/new/background.png | Bin .../travian_t4/img/new/background_a2b.png | Bin .../img/new/background_alliance_name.png | Bin .../travian_t4/img/new/background_map.png | Bin .../img/new/background_messages.png | Bin .../travian_t4/img/new/background_plus.png | Bin .../travian_t4/img/new/background_reports.png | Bin .../img/new/background_settings.png | Bin .../img/new/background_statistics.png | Bin .../img/new/background_village_name.png | Bin .../travian_t4/img/new/background_warsim.png | Bin .../gpack}/travian_t4/img/new/bb_buttons.png | Bin .../travian_t4/img/new/building_border.png | Bin .../gpack}/travian_t4/img/new/c2.gif | Bin .../gpack}/travian_t4/img/new/cancel.gif | Bin .../gpack}/travian_t4/img/new/clay_border.png | Bin .../gpack}/travian_t4/img/new/clock.gif | Bin .../gpack}/travian_t4/img/new/closed.png | Bin .../gpack}/travian_t4/img/new/crop_border.png | Bin .../gpack}/travian_t4/img/new/def.png | Bin .../gpack}/travian_t4/img/new/ff.png | Bin .../gpack}/travian_t4/img/new/footer.png | Bin .../gpack}/travian_t4/img/new/g22.gif | Bin .../travian_t4/img/new/gaulwall_border.png | Bin .../gpack}/travian_t4/img/new/glvl.gif | Bin .../gpack}/travian_t4/img/new/gold.gif | Bin .../gpack}/travian_t4/img/new/gold_g.gif | Bin .../gpack}/travian_t4/img/new/gp.png | Bin .../travian_t4/img/new/header-gold-grad.png | Bin .../gpack}/travian_t4/img/new/header-grad.gif | Bin .../gpack}/travian_t4/img/new/header-line.png | Bin .../gpack}/travian_t4/img/new/header.png | Bin .../gpack}/travian_t4/img/new/ie.png | Bin .../gpack/travian_t4/img/new}/index.php | 0 .../gpack}/travian_t4/img/new/iron_border.png | Bin .../gpack}/travian_t4/img/new/level.png | Bin .../gpack}/travian_t4/img/new/menu.png | Bin .../gpack}/travian_t4/img/new/minus.png | Bin .../gpack}/travian_t4/img/new/navi1.png | Bin .../gpack}/travian_t4/img/new/navi2.png | Bin .../gpack}/travian_t4/img/new/navi3.png | Bin .../gpack}/travian_t4/img/new/navi4.png | Bin .../gpack}/travian_t4/img/new/navi5.png | Bin .../gpack}/travian_t4/img/new/npc.png | Bin .../gpack}/travian_t4/img/new/off.png | Bin .../gpack}/travian_t4/img/new/opened.png | Bin .../gpack}/travian_t4/img/new/opera.png | Bin .../gpack}/travian_t4/img/new/plus.png | Bin .../travian_t4/img/new/rallypoint_border.png | Bin .../travian_t4/img/new/romanwall_border.png | Bin .../travian_t4/img/new/switch_levels.png | Bin .../travian_t4/img/new/teutonwall_border.png | Bin .../gpack}/travian_t4/img/new/textmenu.gif | Bin .../gpack}/travian_t4/img/new/tick.png | Bin .../gpack}/travian_t4/img/new/top10.png | Bin .../gpack}/travian_t4/img/new/white.gif | Bin .../gpack}/travian_t4/img/new/wood_border.png | Bin .../img/new/worldcup_background.png | Bin .../gpack}/travian_t4/img/p/attack_marker.gif | Bin .../gpack}/travian_t4/img/p/bau0.jpg | Bin .../gpack}/travian_t4/img/p/def10.jpg | Bin .../gpack/travian_t4/img/p}/index.php | 0 .../gpack}/travian_t4/img/p/no_ads.png | Bin .../gpack}/travian_t4/img/p/npc.jpg | Bin .../gpack}/travian_t4/img/p/off10.jpg | Bin .../gpack}/travian_t4/img/p/p1_25.jpg | Bin .../gpack}/travian_t4/img/p/p2_25.jpg | Bin .../gpack}/travian_t4/img/p/p3_25.jpg | Bin .../gpack}/travian_t4/img/p/p4_25.jpg | Bin .../gpack}/travian_t4/img/q/alliance.jpg | Bin .../gpack}/travian_t4/img/q/allres.jpg | Bin .../gpack}/travian_t4/img/q/army.jpg | Bin .../gpack}/travian_t4/img/q/barracks.jpg | Bin .../gpack}/travian_t4/img/q/clay_iron.jpg | Bin .../gpack}/travian_t4/img/q/cost.jpg | Bin .../gpack}/travian_t4/img/q/embassy.jpg | Bin .../gpack}/travian_t4/img/q/farm.jpg | Bin .../gpack}/travian_t4/img/q/gold.jpg | Bin .../gpack}/travian_t4/img/q/granary.jpg | Bin .../gpack}/travian_t4/img/q/granary_rally.jpg | Bin .../gpack}/travian_t4/img/q/hide.jpg | Bin .../gpack/travian_t4/img/q}/index.php | 0 .../gpack}/travian_t4/img/q/intro.jpg | Bin .../gpack}/travian_t4/img/q/l0.jpg | Bin .../gpack}/travian_t4/img/q/l0g.jpg | Bin .../gpack}/travian_t4/img/q/l1.jpg | Bin .../gpack}/travian_t4/img/q/l1g.jpg | Bin .../gpack}/travian_t4/img/q/l2.jpg | Bin .../gpack}/travian_t4/img/q/l2g.jpg | Bin .../gpack}/travian_t4/img/q/l3.jpg | Bin .../gpack}/travian_t4/img/q/l3g.jpg | Bin .../gpack}/travian_t4/img/q/l4.jpg | Bin .../gpack}/travian_t4/img/q/l4g.jpg | Bin .../gpack}/travian_t4/img/q/l5.jpg | Bin .../gpack}/travian_t4/img/q/l5g.jpg | Bin .../gpack}/travian_t4/img/q/main.jpg | Bin .../gpack}/travian_t4/img/q/market.jpg | Bin .../gpack}/travian_t4/img/q/medal.jpg | Bin .../gpack}/travian_t4/img/q/msg.jpg | Bin .../gpack}/travian_t4/img/q/neighbour.jpg | Bin .../gpack}/travian_t4/img/q/new_village.jpg | Bin .../gpack}/travian_t4/img/q/rally.jpg | Bin .../gpack}/travian_t4/img/q/rank.jpg | Bin .../gpack}/travian_t4/img/q/report.jpg | Bin .../gpack}/travian_t4/img/q/units.jpg | Bin .../gpack}/travian_t4/img/q/village_name.jpg | Bin .../gpack}/travian_t4/img/q/warehouse.jpg | Bin .../gpack}/travian_t4/img/q/wood.jpg | Bin .../gpack}/travian_t4/img/r/1.gif | Bin .../gpack}/travian_t4/img/r/2.gif | Bin .../gpack}/travian_t4/img/r/3.gif | Bin .../gpack}/travian_t4/img/r/4.gif | Bin .../gpack}/travian_t4/img/r/4b.gif | Bin .../gpack}/travian_t4/img/r/5.gif | Bin .../gpack}/travian_t4/img/r/5b.gif | Bin .../gpack}/travian_t4/img/r/6.gif | Bin .../gpack}/travian_t4/img/r/7.gif | Bin .../gpack}/travian_t4/img/r/easter.gif | Bin .../gpack/travian_t4/img/r}/index.php | 0 .../gpack}/travian_t4/img/r/newy.gif | Bin .../gpack}/travian_t4/img/r/peace.gif | Bin .../gpack}/travian_t4/img/r/xmas.gif | Bin .../img/report/adventure_report.jpg | Bin .../gpack}/travian_t4/img/report/attack.jpg | Bin .../gpack/travian_t4/img/report}/index.php | 0 .../travian_t4/img/report/reinforcement.jpg | Bin .../travian_t4/img/report/resourcetrade.jpg | Bin .../gpack}/travian_t4/img/report/spy.jpg | Bin .../gpack}/travian_t4/img/report/units.jpg | Bin .../gpack}/travian_t4/img/s/def.gif | Bin .../gpack/travian_t4/img/s}/index.php | 0 .../gpack}/travian_t4/img/s/off.gif | Bin .../gpack}/travian_t4/img/s/top10.gif | Bin .../gpack}/travian_t4/img/s/v1.gif | Bin .../gpack}/travian_t4/img/s/v2.gif | Bin .../gpack}/travian_t4/img/s/v3.gif | Bin .../gpack}/travian_t4/img/scouts/18.gif | Bin .../gpack}/travian_t4/img/scouts/19.gif | Bin .../gpack}/travian_t4/img/scouts/20.gif | Bin .../gpack}/travian_t4/img/scouts/21.gif | Bin .../gpack}/travian_t4/img/scouts/22.gif | Bin .../gpack/travian_t4/img/scouts}/index.php | 0 .../img/special/NewyearRocket_dark_1a.gif | Bin .../img/special/NewyearRocket_green_1a.gif | Bin .../img/special/NewyearRocket_orange_1a.gif | Bin .../img/special/NewyearRocket_purple_1a.gif | Bin .../img/special/NewyearRocket_red_1a.gif | Bin .../special/NewyearRocket_turquoise_1a.gif | Bin .../img/special/NewyearRocket_yellow_1a.gif | Bin .../gpack/travian_t4/img/special}/index.php | 0 .../gpack}/travian_t4/img/t/MH.png | Bin .../gpack}/travian_t4/img/t/a1_1.jpg | Bin .../gpack}/travian_t4/img/t/a1_10.jpg | Bin .../gpack}/travian_t4/img/t/a1_2.jpg | Bin .../gpack}/travian_t4/img/t/a1_3.jpg | Bin .../gpack}/travian_t4/img/t/a1_4.jpg | Bin .../gpack}/travian_t4/img/t/a1_5.jpg | Bin .../gpack}/travian_t4/img/t/a1_6.jpg | Bin .../gpack}/travian_t4/img/t/a1_7.jpg | Bin .../gpack}/travian_t4/img/t/a1_8.jpg | Bin .../gpack}/travian_t4/img/t/a1_9.jpg | Bin .../gpack}/travian_t4/img/t/a2_1.jpg | Bin .../gpack}/travian_t4/img/t/a2_10.jpg | Bin .../gpack}/travian_t4/img/t/a2_2.jpg | Bin .../gpack}/travian_t4/img/t/a2_3.jpg | Bin .../gpack}/travian_t4/img/t/a2_4.jpg | Bin .../gpack}/travian_t4/img/t/a2_5.jpg | Bin .../gpack}/travian_t4/img/t/a2_6.jpg | Bin .../gpack}/travian_t4/img/t/a2_7.jpg | Bin .../gpack}/travian_t4/img/t/a2_8.jpg | Bin .../gpack}/travian_t4/img/t/a2_9.jpg | Bin .../gpack}/travian_t4/img/t/a3_1.jpg | Bin .../gpack}/travian_t4/img/t/a3_10.jpg | Bin .../gpack}/travian_t4/img/t/a3_2.jpg | Bin .../gpack}/travian_t4/img/t/a3_3.jpg | Bin .../gpack}/travian_t4/img/t/a3_4.jpg | Bin .../gpack}/travian_t4/img/t/a3_5.jpg | Bin .../gpack}/travian_t4/img/t/a3_6.jpg | Bin .../gpack}/travian_t4/img/t/a3_7.jpg | Bin .../gpack}/travian_t4/img/t/a3_8.jpg | Bin .../gpack}/travian_t4/img/t/a3_9.jpg | Bin .../gpack}/travian_t4/img/t/a4_1.jpg | Bin .../gpack}/travian_t4/img/t/a4_10.jpg | Bin .../gpack}/travian_t4/img/t/a4_2.jpg | Bin .../gpack}/travian_t4/img/t/a4_3.jpg | Bin .../gpack}/travian_t4/img/t/a4_4.jpg | Bin .../gpack}/travian_t4/img/t/a4_5.jpg | Bin .../gpack}/travian_t4/img/t/a4_6.jpg | Bin .../gpack}/travian_t4/img/t/a4_7.jpg | Bin .../gpack}/travian_t4/img/t/a4_8.jpg | Bin .../gpack}/travian_t4/img/t/a4_9.jpg | Bin .../gpack}/travian_t4/img/t/g40_11-ltr.png | Bin .../gpack}/travian_t4/img/t/gauls.gif | Bin .../gpack/travian_t4/img/t}/index.php | 0 .../gpack}/travian_t4/img/t/nature.png | Bin .../gpack}/travian_t4/img/t/roman.gif | Bin .../gpack}/travian_t4/img/t/shadow.png | Bin .../gpack}/travian_t4/img/t/t100_1.jpg | Bin .../gpack}/travian_t4/img/t/t101_1.jpg | Bin .../gpack}/travian_t4/img/t/t102_1.jpg | Bin .../gpack}/travian_t4/img/t/t10_1.jpg | Bin .../gpack}/travian_t4/img/t/t10_2.jpg | Bin .../gpack}/travian_t4/img/t/t110_1.jpg | Bin .../gpack}/travian_t4/img/t/t111_1.jpg | Bin .../gpack}/travian_t4/img/t/t112_1.jpg | Bin .../gpack}/travian_t4/img/t/t120_1.jpg | Bin .../gpack}/travian_t4/img/t/t121_1.jpg | Bin .../gpack}/travian_t4/img/t/t122_1.jpg | Bin .../gpack}/travian_t4/img/t/t130_1.jpg | Bin .../gpack}/travian_t4/img/t/t131_1.jpg | Bin .../gpack}/travian_t4/img/t/t132_1.jpg | Bin .../gpack}/travian_t4/img/t/t140_1.jpg | Bin .../gpack}/travian_t4/img/t/t141_1.jpg | Bin .../gpack}/travian_t4/img/t/t142_1.jpg | Bin .../gpack}/travian_t4/img/t/t150_1.jpg | Bin .../gpack}/travian_t4/img/t/t151_1.jpg | Bin .../gpack}/travian_t4/img/t/t152_1.jpg | Bin .../gpack}/travian_t4/img/t/t160_1.jpg | Bin .../gpack}/travian_t4/img/t/t161_1.jpg | Bin .../gpack}/travian_t4/img/t/t162_1.jpg | Bin .../gpack}/travian_t4/img/t/t170_1.jpg | Bin .../gpack}/travian_t4/img/t/t171_1.jpg | Bin .../gpack}/travian_t4/img/t/t172_1.jpg | Bin .../gpack}/travian_t4/img/t/t180_1.jpg | Bin .../gpack}/travian_t4/img/t/t181_1.jpg | Bin .../gpack}/travian_t4/img/t/t182_1.jpg | Bin .../gpack}/travian_t4/img/t/t190_1.jpg | Bin .../gpack}/travian_t4/img/t/t191_1.jpg | Bin .../gpack}/travian_t4/img/t/t192_1.jpg | Bin .../gpack}/travian_t4/img/t/t1_1.jpg | Bin .../gpack}/travian_t4/img/t/t1_10.jpg | Bin .../gpack}/travian_t4/img/t/t1_2.jpg | Bin .../gpack}/travian_t4/img/t/t1_3.jpg | Bin .../gpack}/travian_t4/img/t/t1_4.jpg | Bin .../gpack}/travian_t4/img/t/t1_5.jpg | Bin .../gpack}/travian_t4/img/t/t1_6.jpg | Bin .../gpack}/travian_t4/img/t/t1_7.jpg | Bin .../gpack}/travian_t4/img/t/t1_8.jpg | Bin .../gpack}/travian_t4/img/t/t1_9.jpg | Bin .../gpack}/travian_t4/img/t/t200_1.jpg | Bin .../gpack}/travian_t4/img/t/t201_1.jpg | Bin .../gpack}/travian_t4/img/t/t202_1.jpg | Bin .../gpack}/travian_t4/img/t/t210_1.jpg | Bin .../gpack}/travian_t4/img/t/t211_1.jpg | Bin .../gpack}/travian_t4/img/t/t212_1.jpg | Bin .../gpack}/travian_t4/img/t/t220_1.jpg | Bin .../gpack}/travian_t4/img/t/t221_1.jpg | Bin .../gpack}/travian_t4/img/t/t222_1.jpg | Bin .../gpack}/travian_t4/img/t/t2_1.jpg | Bin .../gpack}/travian_t4/img/t/t2_10.jpg | Bin .../gpack}/travian_t4/img/t/t2_2.jpg | Bin .../gpack}/travian_t4/img/t/t2_3.jpg | Bin .../gpack}/travian_t4/img/t/t2_4.jpg | Bin .../gpack}/travian_t4/img/t/t2_5.jpg | Bin .../gpack}/travian_t4/img/t/t2_6.jpg | Bin .../gpack}/travian_t4/img/t/t2_7.jpg | Bin .../gpack}/travian_t4/img/t/t2_8.jpg | Bin .../gpack}/travian_t4/img/t/t2_9.jpg | Bin .../gpack}/travian_t4/img/t/t3_1.jpg | Bin .../gpack}/travian_t4/img/t/t3_10.jpg | Bin .../gpack}/travian_t4/img/t/t3_2.jpg | Bin .../gpack}/travian_t4/img/t/t3_3.jpg | Bin .../gpack}/travian_t4/img/t/t3_4.jpg | Bin .../gpack}/travian_t4/img/t/t3_5.jpg | Bin .../gpack}/travian_t4/img/t/t3_6.jpg | Bin .../gpack}/travian_t4/img/t/t3_7.jpg | Bin .../gpack}/travian_t4/img/t/t3_8.jpg | Bin .../gpack}/travian_t4/img/t/t3_9.jpg | Bin .../gpack}/travian_t4/img/t/t4_1.jpg | Bin .../gpack}/travian_t4/img/t/t4_10.jpg | Bin .../gpack}/travian_t4/img/t/t4_2.jpg | Bin .../gpack}/travian_t4/img/t/t4_3.jpg | Bin .../gpack}/travian_t4/img/t/t4_4.jpg | Bin .../gpack}/travian_t4/img/t/t4_5.jpg | Bin .../gpack}/travian_t4/img/t/t4_6.jpg | Bin .../gpack}/travian_t4/img/t/t4_7.jpg | Bin .../gpack}/travian_t4/img/t/t4_8.jpg | Bin .../gpack}/travian_t4/img/t/t4_9.jpg | Bin .../gpack}/travian_t4/img/t/t5_1.jpg | Bin .../gpack}/travian_t4/img/t/t5_10.jpg | Bin .../gpack}/travian_t4/img/t/t5_2.jpg | Bin .../gpack}/travian_t4/img/t/t5_3.jpg | Bin .../gpack}/travian_t4/img/t/t5_4.jpg | Bin .../gpack}/travian_t4/img/t/t5_5.jpg | Bin .../gpack}/travian_t4/img/t/t5_6.jpg | Bin .../gpack}/travian_t4/img/t/t5_7.jpg | Bin .../gpack}/travian_t4/img/t/t5_8.jpg | Bin .../gpack}/travian_t4/img/t/t5_9.jpg | Bin .../gpack}/travian_t4/img/t/t6_1.jpg | Bin .../gpack}/travian_t4/img/t/t6_1.png | Bin .../gpack}/travian_t4/img/t/t6_10.jpg | Bin .../gpack}/travian_t4/img/t/t6_2.jpg | Bin .../gpack}/travian_t4/img/t/t6_3.jpg | Bin .../gpack}/travian_t4/img/t/t6_4.jpg | Bin .../gpack}/travian_t4/img/t/t6_5.jpg | Bin .../gpack}/travian_t4/img/t/t6_6.jpg | Bin .../gpack}/travian_t4/img/t/t6_7.jpg | Bin .../gpack}/travian_t4/img/t/t6_8.jpg | Bin .../gpack}/travian_t4/img/t/t6_9.jpg | Bin .../gpack}/travian_t4/img/t/taskmaster.png | Bin .../gpack}/travian_t4/img/t/team.png | Bin .../gpack}/travian_t4/img/t/teutons.gif | Bin .../gpack}/travian_t4/img/t/tn.gif | Bin .../gpack}/travian_t4/img/t/tnd.gif | Bin .../gpack}/travian_t4/img/u/1.gif | Bin .../gpack}/travian_t4/img/u/10.gif | Bin .../gpack}/travian_t4/img/u/11.gif | Bin .../gpack}/travian_t4/img/u/12.gif | Bin .../gpack}/travian_t4/img/u/13.gif | Bin .../gpack}/travian_t4/img/u/14.gif | Bin .../gpack}/travian_t4/img/u/15.gif | Bin .../gpack}/travian_t4/img/u/16.gif | Bin .../gpack}/travian_t4/img/u/17.gif | Bin .../gpack}/travian_t4/img/u/18.gif | Bin .../gpack}/travian_t4/img/u/19.gif | Bin .../gpack}/travian_t4/img/u/2.gif | Bin .../gpack}/travian_t4/img/u/20.gif | Bin .../gpack}/travian_t4/img/u/21.gif | Bin .../gpack}/travian_t4/img/u/22.gif | Bin .../gpack}/travian_t4/img/u/23.gif | Bin .../gpack}/travian_t4/img/u/24.gif | Bin .../gpack}/travian_t4/img/u/25.gif | Bin .../gpack}/travian_t4/img/u/26.gif | Bin .../gpack}/travian_t4/img/u/27.gif | Bin .../gpack}/travian_t4/img/u/28.gif | Bin .../gpack}/travian_t4/img/u/29.gif | Bin .../gpack}/travian_t4/img/u/3.gif | Bin .../gpack}/travian_t4/img/u/30.gif | Bin .../gpack}/travian_t4/img/u/31.gif | Bin .../gpack}/travian_t4/img/u/32.gif | Bin .../gpack}/travian_t4/img/u/33.gif | Bin .../gpack}/travian_t4/img/u/34.gif | Bin .../gpack}/travian_t4/img/u/35.gif | Bin .../gpack}/travian_t4/img/u/36.gif | Bin .../gpack}/travian_t4/img/u/37.gif | Bin .../gpack}/travian_t4/img/u/38.gif | Bin .../gpack}/travian_t4/img/u/39.gif | Bin .../gpack}/travian_t4/img/u/4.gif | Bin .../gpack}/travian_t4/img/u/40.gif | Bin .../gpack}/travian_t4/img/u/41.gif | Bin .../gpack}/travian_t4/img/u/42.gif | Bin .../gpack}/travian_t4/img/u/43.gif | Bin .../gpack}/travian_t4/img/u/44.gif | Bin .../gpack}/travian_t4/img/u/45.gif | Bin .../gpack}/travian_t4/img/u/46.gif | Bin .../gpack}/travian_t4/img/u/47.gif | Bin .../gpack}/travian_t4/img/u/48.gif | Bin .../gpack}/travian_t4/img/u/49.gif | Bin .../gpack}/travian_t4/img/u/5.gif | Bin .../gpack}/travian_t4/img/u/50.gif | Bin .../gpack}/travian_t4/img/u/51.gif | Bin .../gpack}/travian_t4/img/u/52.gif | Bin .../gpack}/travian_t4/img/u/53.gif | Bin .../gpack}/travian_t4/img/u/54.gif | Bin .../gpack}/travian_t4/img/u/55.gif | Bin .../gpack}/travian_t4/img/u/56.gif | Bin .../gpack}/travian_t4/img/u/57.gif | Bin .../gpack}/travian_t4/img/u/58.gif | Bin .../gpack}/travian_t4/img/u/59.gif | Bin .../gpack}/travian_t4/img/u/6.gif | Bin .../gpack}/travian_t4/img/u/60.gif | Bin .../gpack}/travian_t4/img/u/7.gif | Bin .../gpack}/travian_t4/img/u/8.gif | Bin .../gpack}/travian_t4/img/u/9.gif | Bin .../gpack}/travian_t4/img/u/98.gif | Bin .../gpack}/travian_t4/img/u/99.gif | Bin .../gpack/travian_t4/img/u}/index.php | 0 .../gpack}/travian_t4/img/u/point.gif | Bin .../gpack}/travian_t4/img/u/specials.gif | Bin .../gpack}/travian_t4/img/u/v1_romans2.gif | Bin .../gpack}/travian_t4/img/u/v2_teutons2.gif | Bin .../gpack}/travian_t4/img/u/v3_gauls2.gif | Bin .../gpack}/travian_t4/img/u/v4_nature2.gif | Bin .../gpack}/travian_t4/img/u/v5_natars2.gif | Bin .../gpack}/travian_t4/img/u/v6_monsters2.gif | Bin .../gpack/travian_t4/img/u2}/index.php | 0 .../gpack}/travian_t4/img/u2/u1.gif | Bin .../gpack}/travian_t4/img/u2/u10.gif | Bin .../gpack}/travian_t4/img/u2/u11.gif | Bin .../gpack}/travian_t4/img/u2/u12.gif | Bin .../gpack}/travian_t4/img/u2/u13.gif | Bin .../gpack}/travian_t4/img/u2/u14.gif | Bin .../gpack}/travian_t4/img/u2/u15.gif | Bin .../gpack}/travian_t4/img/u2/u16.gif | Bin .../gpack}/travian_t4/img/u2/u17.gif | Bin .../gpack}/travian_t4/img/u2/u18.gif | Bin .../gpack}/travian_t4/img/u2/u19.gif | Bin .../gpack}/travian_t4/img/u2/u2.gif | Bin .../gpack}/travian_t4/img/u2/u20.gif | Bin .../gpack}/travian_t4/img/u2/u21.gif | Bin .../gpack}/travian_t4/img/u2/u22.gif | Bin .../gpack}/travian_t4/img/u2/u23.gif | Bin .../gpack}/travian_t4/img/u2/u24.gif | Bin .../gpack}/travian_t4/img/u2/u25.gif | Bin .../gpack}/travian_t4/img/u2/u26.gif | Bin .../gpack}/travian_t4/img/u2/u27.gif | Bin .../gpack}/travian_t4/img/u2/u28.gif | Bin .../gpack}/travian_t4/img/u2/u29.gif | Bin .../gpack}/travian_t4/img/u2/u3.gif | Bin .../gpack}/travian_t4/img/u2/u30.gif | Bin .../gpack}/travian_t4/img/u2/u4.gif | Bin .../gpack}/travian_t4/img/u2/u5.gif | Bin .../gpack}/travian_t4/img/u2/u6.gif | Bin .../gpack}/travian_t4/img/u2/u7.gif | Bin .../gpack}/travian_t4/img/u2/u8.gif | Bin .../gpack}/travian_t4/img/u2/u9.gif | Bin .../gpack/travian_t4/img/u2rtl}/index.php | 0 .../gpack}/travian_t4/img/u2rtl/u1.gif | Bin .../gpack}/travian_t4/img/u2rtl/u10.gif | Bin .../gpack}/travian_t4/img/u2rtl/u11.gif | Bin .../gpack}/travian_t4/img/u2rtl/u12.gif | Bin .../gpack}/travian_t4/img/u2rtl/u13.gif | Bin .../gpack}/travian_t4/img/u2rtl/u14.gif | Bin .../gpack}/travian_t4/img/u2rtl/u15.gif | Bin .../gpack}/travian_t4/img/u2rtl/u16.gif | Bin .../gpack}/travian_t4/img/u2rtl/u17.gif | Bin .../gpack}/travian_t4/img/u2rtl/u18.gif | Bin .../gpack}/travian_t4/img/u2rtl/u19.gif | Bin .../gpack}/travian_t4/img/u2rtl/u2.gif | Bin .../gpack}/travian_t4/img/u2rtl/u20.gif | Bin .../gpack}/travian_t4/img/u2rtl/u21.gif | Bin .../gpack}/travian_t4/img/u2rtl/u22.gif | Bin .../gpack}/travian_t4/img/u2rtl/u23.gif | Bin .../gpack}/travian_t4/img/u2rtl/u24.gif | Bin .../gpack}/travian_t4/img/u2rtl/u25.gif | Bin .../gpack}/travian_t4/img/u2rtl/u26.gif | Bin .../gpack}/travian_t4/img/u2rtl/u27.gif | Bin .../gpack}/travian_t4/img/u2rtl/u28.gif | Bin .../gpack}/travian_t4/img/u2rtl/u29.gif | Bin .../gpack}/travian_t4/img/u2rtl/u3.gif | Bin .../gpack}/travian_t4/img/u2rtl/u30.gif | Bin .../gpack}/travian_t4/img/u2rtl/u4.gif | Bin .../gpack}/travian_t4/img/u2rtl/u5.gif | Bin .../gpack}/travian_t4/img/u2rtl/u6.gif | Bin .../gpack}/travian_t4/img/u2rtl/u7.gif | Bin .../gpack}/travian_t4/img/u2rtl/u8.gif | Bin .../gpack}/travian_t4/img/u2rtl/u9.gif | Bin .../gpack/travian_t4/img/wm}/index.php | 0 .../gpack}/travian_t4/img/wm/wm99.gif | Bin .../t1 => assets/gpack/travian_t4}/index.php | 0 .../gpack/travian_t4/lang/en/a}/index.php | 0 .../gpack}/travian_t4/lang/en/a/plus.gif | Bin .../gpack}/travian_t4/lang/en/a/travian0.gif | Bin .../gpack}/travian_t4/lang/en/a/travian1.gif | Bin .../gpack}/travian_t4/lang/en/b/archiv.gif | Bin .../gpack}/travian_t4/lang/en/b/back.gif | Bin .../gpack}/travian_t4/lang/en/b/delete.gif | Bin .../gpack}/travian_t4/lang/en/b/demolish.gif | Bin .../gpack}/travian_t4/lang/en/b/forward.gif | Bin .../gpack/travian_t4/lang/en/b}/index.php | 0 .../gpack}/travian_t4/lang/en/b/login.gif | Bin .../gpack}/travian_t4/lang/en/b/ok.gif | Bin .../gpack}/travian_t4/lang/en/b/reply.gif | Bin .../gpack}/travian_t4/lang/en/b/save.gif | Bin .../gpack}/travian_t4/lang/en/b/search.gif | Bin .../gpack}/travian_t4/lang/en/b/send.gif | Bin .../gpack}/travian_t4/lang/en/b/signup.gif | Bin .../gpack}/travian_t4/lang/en/b/train.gif | Bin .../gpack}/travian_t4/lang/en/b/zurueck.html | 0 .../gpack}/travian_t4/lang/en/compact.css | 0 .../gpack/travian_t4/lang/en/f}/index.php | 0 .../gpack}/travian_t4/lang/en/f/newforum.gif | Bin .../gpack}/travian_t4/lang/en/f/post.gif | Bin .../gpack}/travian_t4/lang/en/f/reply.gif | Bin .../gpack}/travian_t4/lang/en/f/result.gif | Bin .../gpack}/travian_t4/lang/en/f/vote.gif | Bin .../gpack}/travian_t4/lang/en/f/voting.gif | Bin .../gpack}/travian_t4/lang/en/gp_check.css | 0 .../gpack/travian_t4/lang/en}/index.php | 0 .../gpack}/travian_t4/lang/en/lang.css | 0 .../travian_t4/lang/en/msg/block_bg24a.gif | Bin .../travian_t4/lang/en/msg/block_bg24b.gif | Bin .../gpack/travian_t4/lang/en/msg}/index.php | 0 .../travian_t4/lang/en/new/gp_preview.png | Bin .../gpack/travian_t4/lang/en/new}/index.php | 0 .../gpack}/travian_t4/lang/en/p/autovv.gif | Bin .../gpack}/travian_t4/lang/en/p/bfilter.gif | Bin .../gpack}/travian_t4/lang/en/p/dorf3.jpg | Bin .../gpack/travian_t4/lang/en/p}/index.php | 0 .../gpack}/travian_t4/lang/en/p/p1.gif | Bin .../gpack}/travian_t4/lang/en/p/p3.gif | Bin .../gpack}/travian_t4/lang/en/p/p4.gif | Bin .../gpack}/travian_t4/lang/en/p/p5.gif | Bin .../gpack}/travian_t4/lang/en/p/p6.gif | Bin .../gpack}/travian_t4/lang/en/p/p7.gif | Bin .../gpack}/travian_t4/lang/en/p/p8.gif | Bin .../gpack}/travian_t4/lang/en/p/sort.jpg | Bin .../gpack}/travian_t4/lang/en/p/st1.gif | Bin .../gpack}/travian_t4/lang/en/p/xxl_map.gif | Bin .../gpack}/travian_t4/lang/en/t1/anmelden.gif | Bin .../gpack/travian_t4/lang/en/t1}/index.php | 0 .../gpack}/travian_t4/lang/en/t1/login.gif | Bin .../gpack}/travian_t4/lang/en/t1/passwort.gif | Bin .../gpack/travian_t4/lang/en/t2}/index.php | 0 .../gpack}/travian_t4/lang/en/t2/u04.gif | Bin .../gpack}/travian_t4/lang/en/t2/u05.gif | Bin .../gpack}/travian_t4/lang/en/t2/u06.gif | Bin .../gpack}/travian_t4/lang/en/t2/u07.gif | Bin .../gpack}/travian_t4/lang/en/t2/u22.gif | Bin .../gpack/travian_t4/lang}/index.php | 0 .../gpack/travian_t4/modules}/index.php | 0 .../gpack}/travian_t4/modules/new_colors.css | 0 .../gpack}/travian_t4/modules/new_images.css | 0 .../travian_t4/modules/new_layout_ltr.css | 0 .../gpack}/travian_t4/naviSmall.png | Bin .../gpack}/travian_t4/travian.css | 0 {img => assets/img}/admin/acc.gif | Bin {img => assets/img}/admin/acp.css | 0 {img => assets/img}/admin/admin.css | 0 {img => assets/img}/admin/admin.gif | Bin {img => assets/img}/admin/b/archiv.gif | Bin {img => assets/img}/admin/b/back.gif | Bin {img => assets/img}/admin/b/delete.gif | Bin {img => assets/img}/admin/b/demolish.gif | Bin {img => assets/img}/admin/b/forward.gif | Bin .../img/misc => assets/img/admin/b}/index.php | 0 {img => assets/img}/admin/b/l1.gif | Bin {img => assets/img}/admin/b/l2.gif | Bin {img => assets/img}/admin/b/login.gif | Bin {img => assets/img}/admin/b/ok.gif | Bin {img => assets/img}/admin/b/ok1.gif | Bin {img => assets/img}/admin/b/ok2.gif | Bin {img => assets/img}/admin/b/reply.gif | Bin {img => assets/img}/admin/b/save.gif | Bin {img => assets/img}/admin/b/search.gif | Bin {img => assets/img}/admin/b/send.gif | Bin {img => assets/img}/admin/b/signup.gif | Bin {img => assets/img}/admin/b/train.gif | Bin {img => assets/img}/admin/b/update.png | Bin {img => assets/img}/admin/b/zurueck.html | 0 {img => assets/img}/admin/c4.gif | Bin {img => assets/img}/admin/del.gif | Bin {img => assets/img}/admin/del_g.gif | Bin {img => assets/img}/admin/edit.gif | Bin {img => assets/img}/admin/gold.gif | Bin {img => assets/img}/admin/gold_g.gif | Bin .../msg => assets/img/admin/icon}/index.php | 0 .../img}/admin/icon/nav_arrow_gray.gif | Bin .../img/new => assets/img/admin}/index.php | 0 {img => assets/img}/admin/logo.jpg | Bin {img => assets/img}/admin/map.css | 0 {img => assets/img}/admin/map_0.gif | Bin {img => assets/img}/admin/map_1.gif | Bin {img => assets/img}/admin/map_11.gif | Bin {img => assets/img}/admin/map_12.gif | Bin {img => assets/img}/admin/map_13.gif | Bin {img => assets/img}/admin/map_2.gif | Bin {img => assets/img}/admin/map_3.gif | Bin {img => assets/img}/admin/map_4.gif | Bin {img => assets/img}/admin/map_5.gif | Bin {img => assets/img}/admin/map_piece.jpg | Bin {img => assets/img}/admin/r/1.gif | Bin {img => assets/img}/admin/r/2.gif | Bin {img => assets/img}/admin/r/3.gif | Bin {img => assets/img}/admin/r/4.gif | Bin {img => assets/img}/admin/r/4b.gif | Bin {img => assets/img}/admin/r/5.gif | Bin {img => assets/img}/admin/r/5b.gif | Bin {img => assets/img}/admin/r/6.gif | Bin {img => assets/img}/admin/r/7.gif | Bin {img => assets/img}/admin/r/easter.gif | Bin .../img/p => assets/img/admin/r}/index.php | 0 {img => assets/img}/admin/r/newy.gif | Bin {img => assets/img}/admin/r/xmas.gif | Bin {img => assets/img}/admin/refresh.png | Bin {img => assets/img}/admin/senator_roemer.png | Bin {img => assets/img}/admin/x.gif | Bin {img => assets/img}/admin/x1 - copia.gif | Bin {img => assets/img}/admin/x1.gif | Bin {img => assets/img}/admin/x2 - copia.gif | Bin {img => assets/img}/admin/x2.gif | Bin {img => assets/img}/admin/x3 - copia.gif | Bin {img => assets/img}/admin/x3.gif | Bin {img => assets/img}/admin/x4 - copia.gif | Bin {img => assets/img}/admin/x4.gif | Bin {img => assets/img}/admin/x5 - copia.gif | Bin {img => assets/img}/admin/x5.gif | Bin {img => assets/img}/bezahlung/.htaccess | 0 .../img}/bezahlung/Travian_paket_a.jpg | Bin .../img}/bezahlung/Travian_paket_b.jpg | Bin .../img}/bezahlung/Travian_paket_c.jpg | Bin .../img}/bezahlung/Travian_paket_d.jpg | Bin .../img}/bezahlung/Travian_paket_e.jpg | Bin .../img}/bezahlung/Travian_verdienen.jpg | Bin {img => assets/img}/bezahlung/call2pay.png | Bin {img => assets/img}/bezahlung/call2pay1.png | Bin {img => assets/img}/bezahlung/ebank2pay.png | Bin {img => assets/img}/bezahlung/ebank2pay2.png | Bin {img => assets/img}/bezahlung/handy2pay.png | Bin {img => assets/img}/bezahlung/handy2pay2.png | Bin .../img/q => assets/img/bezahlung}/index.php | 0 {img => assets/img}/bezahlung/paypal.jpg | Bin {img => assets/img}/bezahlung/paypal1.gif | Bin {img => assets/img}/bezahlung/skrill.png | Bin {img => assets/img}/bezahlung/skrill1.jpg | Bin .../img/r => assets/img/en/a}/index.php | 0 {img => assets/img}/en/a/travian0.gif | Bin .../img/report => assets/img/en}/index.php | 0 .../img => assets/img/en}/s/index.php | 0 {img => assets/img}/en/s/s1.png | Bin {img => assets/img}/en/s/s2.png | Bin {img => assets/img}/en/s/s3.png | Bin {img => assets/img}/en/s/s4.png | Bin {img => assets/img}/en/s/s5.png | Bin {img => assets/img}/en/s/s7.png | Bin {img => assets/img}/en/s/s8.png | Bin .../img/scouts => assets/img/en/t2}/index.php | 0 {img => assets/img}/en/t2/newsbox1.gif | Bin {img => assets/img}/en/t2/newsbox2.gif | Bin {img => assets/img}/en/t2/newsbox3.gif | Bin {img => assets/img}/en/tut/dorf_gross.jpg | Bin {img => assets/img}/en/tut/dorf_klein.jpg | Bin {img => assets/img}/en/tut/dorfzentrum1.gif | Bin {img => assets/img}/en/tut/dorfzentrum2.gif | Bin .../special => assets/img/en/tut}/index.php | 0 {img => assets/img}/en/tut/karte.jpg | Bin {img => assets/img}/en/tut/navi.jpg | Bin {img => assets/img}/en/tut/rohstofffeld.gif | Bin {img => assets/img}/en/tut/rohstofffeld2.gif | Bin {img => assets/img}/en/welten/en10_big.jpg | Bin {img => assets/img}/en/welten/en10_big_g.jpg | Bin {img => assets/img}/en/welten/en11_big.jpg | Bin {img => assets/img}/en/welten/en11_big_g.jpg | Bin {img => assets/img}/en/welten/en12_big.jpg | Bin {img => assets/img}/en/welten/en12_big_g.jpg | Bin {img => assets/img}/en/welten/en13_big.jpg | Bin {img => assets/img}/en/welten/en13_big_g.jpg | Bin {img => assets/img}/en/welten/en14_big.jpg | Bin {img => assets/img}/en/welten/en14_big_g.jpg | Bin {img => assets/img}/en/welten/en15_big.jpg | Bin {img => assets/img}/en/welten/en15_big_g.jpg | Bin {img => assets/img}/en/welten/en1_big.jpg | Bin {img => assets/img}/en/welten/en1_big_g.jpg | Bin {img => assets/img}/en/welten/en2_big.jpg | Bin {img => assets/img}/en/welten/en2_big_g.jpg | Bin {img => assets/img}/en/welten/en3_big.jpg | Bin {img => assets/img}/en/welten/en3_big_g.jpg | Bin {img => assets/img}/en/welten/en4_big.jpg | Bin {img => assets/img}/en/welten/en4_big_g.jpg | Bin {img => assets/img}/en/welten/en5_big.jpg | Bin {img => assets/img}/en/welten/en5_big_g.jpg | Bin {img => assets/img}/en/welten/en6_big.jpg | Bin {img => assets/img}/en/welten/en6_big_g.jpg | Bin {img => assets/img}/en/welten/en7_big.jpg | Bin {img => assets/img}/en/welten/en7_big_g.jpg | Bin {img => assets/img}/en/welten/en8_big.jpg | Bin {img => assets/img}/en/welten/en8_big_g.jpg | Bin {img => assets/img}/en/welten/en9_big.jpg | Bin {img => assets/img}/en/welten/en9_big_g.jpg | Bin {img => assets/img}/en/welten/enx_big.jpg | Bin {img => assets/img}/en/welten/enx_big_g.jpg | Bin .../img/t => assets/img/en/welten}/index.php | 0 {img => assets/img}/img.css | 0 .../travian_t4/img/u => assets/img}/index.php | 0 {img => assets/img}/lol.PNG | Bin {img => assets/img}/portal_ltr.css | 0 {img => assets/img}/rpage/.htaccess | 0 {img => assets/img}/rpage/Gaul.jpg | Bin {img => assets/img}/rpage/Gaul1.jpg | Bin {img => assets/img}/rpage/Natars.jpg | Bin {img => assets/img}/rpage/Nature.jpg | Bin {img => assets/img}/rpage/Roman.jpg | Bin {img => assets/img}/rpage/Roman1.jpg | Bin {img => assets/img}/rpage/Teuton.jpg | Bin {img => assets/img}/rpage/Teuton1.jpg | Bin {img => assets/img}/rpage/spc.jpg | Bin {img => assets/img}/rpage/travian_logo.png | Bin .../img}/t4n/Teaser_Prelandingpage_EN.png | Bin .../img/u2 => assets/img/t4n}/index.php | 0 {img => assets/img}/travian_basics.css | 0 .../img}/tutorial/elements/country_sprite.gif | Bin .../img/tutorial/elements}/index.php | 0 {img => assets/img}/tutorial/flaggs.css | 0 .../img}/tutorial/images/artwork.jpg | Bin .../img}/tutorial/images/artwork1-ltr.jpg | Bin .../images/buttons_screenshots_next.gif | Bin .../images/buttons_screenshots_prev.gif | Bin .../tutorial/images/content_background.jpg | Bin .../img}/tutorial/images/count_background.jpg | Bin .../tutorial/images/country_background.jpg | Bin .../tutorial/images/footer_background.jpg | Bin .../img/tutorial/images}/index.php | 0 .../img}/tutorial/images/info_background.jpg | Bin .../img}/tutorial/images/logo_background.jpg | Bin .../images/main_background_content.jpg | Bin .../tutorial/images/main_background_front.jpg | Bin .../img}/tutorial/images/nav_left.gif | Bin .../img}/tutorial/images/nav_right.gif | Bin .../img}/tutorial/images/news_background.jpg | Bin .../img}/tutorial/images/news_footer.jpg | Bin .../img}/tutorial/images/news_header.jpg | Bin .../img}/tutorial/images/news_spacer.jpg | Bin .../images/screenshots_background.jpg | Bin .../img/tutorial}/index.php | 0 {img => assets/img}/tutorial/main.css | 0 {img => assets/img}/un/a/98.gif | Bin {img => assets/img}/un/a/99.gif | Bin {img => assets/img}/un/a/anl.gif | Bin {img => assets/img}/un/a/btm.gif | Bin {img => assets/img}/un/a/c2.gif | Bin {img => assets/img}/un/a/car.gif | Bin .../lang/en => assets/img/un}/a/index.php | 0 {img => assets/img}/un/a/n12.gif | Bin {img => assets/img}/un/a/online.gif | Bin {img => assets/img}/un/a/rand.gif | Bin {img => assets/img}/un/a/res2.gif | Bin {img => assets/img}/un/a/specials.gif | Bin {img => assets/img}/un/a/v1_romans2.gif | Bin {img => assets/img}/un/a/v2_teutons2.gif | Bin {img => assets/img}/un/a/v3_gauls2.gif | Bin {img => assets/img}/un/a/v4_nature2.gif | Bin {img => assets/img}/un/a/v5_natars2.gif | Bin {img => assets/img}/un/a/v6_monsters2.gif | Bin {img => assets/img}/un/g/bg0.jpg | Bin {img => assets/img}/un/g/bg1.jpg | Bin {img => assets/img}/un/g/bg11.jpg | Bin {img => assets/img}/un/g/bg12.jpg | Bin {img => assets/img}/un/g/f1.jpg | Bin {img => assets/img}/un/g/f10.jpg | Bin {img => assets/img}/un/g/f2.jpg | Bin {img => assets/img}/un/g/f3.jpg | Bin {img => assets/img}/un/g/f4.jpg | Bin {img => assets/img}/un/g/f5.jpg | Bin {img => assets/img}/un/g/f6.jpg | Bin {img => assets/img}/un/g/f7.jpg | Bin {img => assets/img}/un/g/f8.jpg | Bin {img => assets/img}/un/g/f9.jpg | Bin .../lang/en/b => assets/img/un/g}/index.php | 0 {img => assets/img}/un/h/att_all.gif | Bin {img => assets/img}/un/h/clock.gif | Bin {img => assets/img}/un/h/def_c.gif | Bin {img => assets/img}/un/h/def_i.gif | Bin {img => assets/img}/un/h/faq_botschaft.jpg | Bin {img => assets/img}/un/h/faq_vp.jpg | Bin {img => assets/img}/un/h/gallier.jpg | Bin {img => assets/img}/un/h/germane.jpg | Bin {img => assets/img}/un/h/gid10.gif | Bin {img => assets/img}/un/h/gid11.gif | Bin {img => assets/img}/un/h/gid12.gif | Bin {img => assets/img}/un/h/gid13.gif | Bin {img => assets/img}/un/h/gid14.gif | Bin {img => assets/img}/un/h/gid15.gif | Bin {img => assets/img}/un/h/gid16.gif | Bin {img => assets/img}/un/h/gid17.gif | Bin {img => assets/img}/un/h/gid18.gif | Bin {img => assets/img}/un/h/gid19.gif | Bin {img => assets/img}/un/h/gid20.gif | Bin {img => assets/img}/un/h/gid21.gif | Bin {img => assets/img}/un/h/gid22.gif | Bin {img => assets/img}/un/h/gid23.gif | Bin {img => assets/img}/un/h/gid25.gif | Bin {img => assets/img}/un/h/gid26.gif | Bin {img => assets/img}/un/h/gid28.gif | Bin .../lang/en/f => assets/img/un/h}/index.php | 0 {img => assets/img}/un/h/roemer.jpg | Bin .../lang/en => assets/img/un}/index.php | 0 .../lang/en/msg => assets/img/un/l}/index.php | 0 {img => assets/img}/un/l/mp.gif | Bin {img => assets/img}/un/l/mw.gif | Bin {img => assets/img}/un/l/n1.gif | Bin {img => assets/img}/un/l/n2.gif | Bin {img => assets/img}/un/l/n3.gif | Bin {img => assets/img}/un/l/n4.gif | Bin {img => assets/img}/un/res/1.gif | Bin {img => assets/img}/un/res/2.gif | Bin {img => assets/img}/un/res/3.gif | Bin {img => assets/img}/un/res/4.gif | Bin {img => assets/img}/un/res/5.gif | Bin .../en/new => assets/img/un/res}/index.php | 0 .../lang/en/p => assets/img/un/s}/index.php | 0 {img => assets/img}/un/s/s1s.jpg | Bin {img => assets/img}/un/s/s2s.jpg | Bin {img => assets/img}/un/s/s3s.jpg | Bin {img => assets/img}/un/s/s4s.jpg | Bin {img => assets/img}/un/s/s5s.jpg | Bin {img => assets/img}/un/s/s7s.jpg | Bin {img => assets/img}/un/s/s8s.jpg | Bin {img => assets/img}/un/u/1.gif | Bin {img => assets/img}/un/u/10.gif | Bin {img => assets/img}/un/u/11.gif | Bin {img => assets/img}/un/u/12.gif | Bin {img => assets/img}/un/u/13.gif | Bin {img => assets/img}/un/u/14.gif | Bin {img => assets/img}/un/u/15.gif | Bin {img => assets/img}/un/u/16.gif | Bin {img => assets/img}/un/u/17.gif | Bin {img => assets/img}/un/u/18.gif | Bin {img => assets/img}/un/u/19.gif | Bin {img => assets/img}/un/u/2.gif | Bin {img => assets/img}/un/u/20.gif | Bin {img => assets/img}/un/u/21.gif | Bin {img => assets/img}/un/u/22.gif | Bin {img => assets/img}/un/u/23.gif | Bin {img => assets/img}/un/u/24.gif | Bin {img => assets/img}/un/u/25.gif | Bin {img => assets/img}/un/u/26.gif | Bin {img => assets/img}/un/u/27.gif | Bin {img => assets/img}/un/u/28.gif | Bin {img => assets/img}/un/u/29.gif | Bin {img => assets/img}/un/u/3.gif | Bin {img => assets/img}/un/u/30.gif | Bin {img => assets/img}/un/u/31.gif | Bin {img => assets/img}/un/u/32.gif | Bin {img => assets/img}/un/u/33.gif | Bin {img => assets/img}/un/u/34.gif | Bin {img => assets/img}/un/u/35.gif | Bin {img => assets/img}/un/u/36.gif | Bin {img => assets/img}/un/u/37.gif | Bin {img => assets/img}/un/u/38.gif | Bin {img => assets/img}/un/u/39.gif | Bin {img => assets/img}/un/u/4.gif | Bin {img => assets/img}/un/u/40.gif | Bin {img => assets/img}/un/u/41.gif | Bin {img => assets/img}/un/u/42.gif | Bin {img => assets/img}/un/u/43.gif | Bin {img => assets/img}/un/u/44.gif | Bin {img => assets/img}/un/u/45.gif | Bin {img => assets/img}/un/u/46.gif | Bin {img => assets/img}/un/u/47.gif | Bin {img => assets/img}/un/u/48.gif | Bin {img => assets/img}/un/u/49.gif | Bin {img => assets/img}/un/u/5.gif | Bin {img => assets/img}/un/u/50.gif | Bin {img => assets/img}/un/u/51.gif | Bin {img => assets/img}/un/u/52.gif | Bin {img => assets/img}/un/u/53.gif | Bin {img => assets/img}/un/u/54.gif | Bin {img => assets/img}/un/u/55.gif | Bin {img => assets/img}/un/u/56.gif | Bin {img => assets/img}/un/u/57.gif | Bin {img => assets/img}/un/u/58.gif | Bin {img => assets/img}/un/u/59.gif | Bin {img => assets/img}/un/u/6.gif | Bin {img => assets/img}/un/u/60.gif | Bin {img => assets/img}/un/u/7.gif | Bin {img => assets/img}/un/u/8.gif | Bin {img => assets/img}/un/u/9.gif | Bin {img => assets/img}/un/u/98.gif | Bin {img => assets/img}/un/u/99.gif | Bin .../lang/en/t1 => assets/img/un/u}/index.php | 0 {img => assets/img}/un/u/point.gif | Bin {img => assets/img}/un/u/specials.gif | Bin {img => assets/img}/un/u/v1_romans2.gif | Bin {img => assets/img}/un/u/v2_teutons2.gif | Bin {img => assets/img}/un/u/v3_gauls2.gif | Bin {img => assets/img}/un/u/v4_nature2.gif | Bin {img => assets/img}/un/u/v5_natars2.gif | Bin {img => assets/img}/un/u/v6_monsters2.gif | Bin {img => assets/img}/un/x.gif | Bin {img => assets/img}/x.gif | Bin mt-core.js => assets/js/mt-core.js | 0 mt-full.js => assets/js/mt-full.js | 0 mt-more.js => assets/js/mt-more.js | 0 new.js => assets/js/new.js | 0 new2.js => assets/js/new2.js | 0 uncrypt.js => assets/js/uncrypt.js | 0 assets/js/unx.js | 1755 ++++ autoloader.php | 23 - banned.php | 14 +- berichte.php | 16 +- build.php | 352 +- composer.json | 10 + composer.lock | 71 + config/config.php | 365 + crop_finder.php | 14 +- dorf1.php | 118 +- dorf2.php | 106 +- dorf3.php | 125 +- img/admin/index.php | 19 - img/admin/r/index.php | 19 - img/bezahlung/index.php | 19 - img/en/a/index.php | 19 - img/en/index.php | 19 - img/en/s/index.php | 19 - img/en/t2/index.php | 19 - img/en/tut/index.php | 19 - img/en/welten/index.php | 19 - img/index.php | 19 - img/t4n/index.php | 19 - img/tutorial/elements/index.php | 19 - img/tutorial/images/index.php | 19 - img/tutorial/index.php | 19 - img/un/a/index.php | 19 - img/un/g/index.php | 19 - img/un/h/index.php | 19 - img/un/index.php | 19 - img/un/l/index.php | 19 - img/un/res/index.php | 19 - img/un/s/index.php | 19 - img/un/u/index.php | 19 - index.php | 307 +- install/index.php | 2 +- karte.php | 18 +- karte2.php | 2 +- login.php | 243 +- logout.php | 96 +- maintenance.php | 14 +- manual.php | 8 +- massmessage.php | 6 +- nachrichten.php | 32 +- notification/crypt.js | 141 - notification/favicon.ico | Bin 894 -> 0 bytes notification/gpack/index.php | 19 - .../notification_v1_zzjhons/img/index.php | 19 - .../img/layout/background-landing-ltr.jpg | Bin 194181 -> 0 bytes .../img/layout/background-ltr.jpg | Bin 185057 -> 0 bytes .../img/layout/backgroundLeft-ltr.jpg | Bin 1371 -> 0 bytes .../img/layout/index.php | 19 - .../img/layout/logoMed.gif | Bin 6170 -> 0 bytes .../img/layout/logoMed.png | Bin 18017 -> 0 bytes .../img/layout/t4Text.gif | Bin 2229 -> 0 bytes .../img/layout/t4Text.png | Bin 14245 -> 0 bytes .../img/play_now-ltr.gif | Bin 2811 -> 0 bytes .../img/play_now-ltr.png | Bin 1757 -> 0 bytes .../img/play_now_r.gif | Bin 274 -> 0 bytes .../img/play_now_r.png | Bin 180 -> 0 bytes .../img/round/bg/bc.png | Bin 80 -> 0 bytes .../img/round/bg/bl.png | Bin 130 -> 0 bytes .../img/round/bg/br.png | Bin 136 -> 0 bytes .../img/round/bg/index.php | 19 - .../img/round/bg/mc.png | Bin 70 -> 0 bytes .../img/round/bg/ml.png | Bin 76 -> 0 bytes .../img/round/bg/mr.png | Bin 79 -> 0 bytes .../img/round/bg/tc.png | Bin 75 -> 0 bytes .../img/round/bg/tl.png | Bin 130 -> 0 bytes .../img/round/bg/tr.png | Bin 137 -> 0 bytes .../img/round/boxes/boxGrey-Sprite.gif | Bin 1183 -> 0 bytes .../img/round/boxes/boxGrey-Sprite.png | Bin 2931 -> 0 bytes .../img/round/boxes/gray/index.php | 19 - .../img/round/boxes/gray/sprite.png | Bin 184 -> 0 bytes .../img/round/boxes/green/index.php | 19 - .../img/round/boxes/green/sprite.png | Bin 261 -> 0 bytes .../img/round/boxes/index.php | 19 - .../img/round/boxes/lightGreen/index.php | 19 - .../img/round/boxes/lightGreen/sprite.png | Bin 252 -> 0 bytes .../img/round/boxes/mc.html | 7 - .../img/round/boxes/orange/index.php | 19 - .../img/round/boxes/orange/sprite.png | Bin 250 -> 0 bytes .../img/round/boxes/red/index.php | 19 - .../img/round/boxes/red/sprite.png | Bin 299 -> 0 bytes .../img/round/boxes/sprite.png | Bin 732 -> 0 bytes .../img/round/button/buttonFT-Sprite.gif | Bin 1834 -> 0 bytes .../img/round/button/buttonFT-Sprite.png | Bin 2361 -> 0 bytes .../img/round/button/buttonFilter-ltr.png | Bin 131 -> 0 bytes .../round/button/buttonSOrange-Sprite-ltr.gif | Bin 2280 -> 0 bytes .../round/button/buttonSOrange-Sprite-ltr.png | Bin 3720 -> 0 bytes .../img/round/button/buttonSmall-ltr.png | Bin 901 -> 0 bytes .../img/round/button/disabled/bc.png | Bin 92 -> 0 bytes .../img/round/button/disabled/bl.png | Bin 225 -> 0 bytes .../img/round/button/disabled/br.png | Bin 221 -> 0 bytes .../img/round/button/disabled/mc.png | Bin 80 -> 0 bytes .../img/round/button/disabled/ml.png | Bin 117 -> 0 bytes .../img/round/button/disabled/mr.png | Bin 113 -> 0 bytes .../img/round/button/disabled/tc.png | Bin 93 -> 0 bytes .../img/round/button/disabled/tl.png | Bin 227 -> 0 bytes .../img/round/button/disabled/tr.png | Bin 240 -> 0 bytes .../img/round/button/gray-small/bc-hover.png | Bin 71 -> 0 bytes .../img/round/button/gray-small/bc.png | Bin 71 -> 0 bytes .../img/round/button/gray-small/bl-hover.png | Bin 84 -> 0 bytes .../img/round/button/gray-small/bl.png | Bin 84 -> 0 bytes .../img/round/button/gray-small/br-hover.png | Bin 85 -> 0 bytes .../img/round/button/gray-small/br.png | Bin 85 -> 0 bytes .../img/round/button/gray-small/mc-hover.png | Bin 73 -> 0 bytes .../img/round/button/gray-small/mc.png | Bin 73 -> 0 bytes .../img/round/button/gray-small/ml-hover.png | Bin 95 -> 0 bytes .../img/round/button/gray-small/ml.png | Bin 95 -> 0 bytes .../img/round/button/gray-small/mr-hover.png | Bin 94 -> 0 bytes .../img/round/button/gray-small/mr.png | Bin 94 -> 0 bytes .../img/round/button/gray-small/tc-hover.png | Bin 74 -> 0 bytes .../img/round/button/gray-small/tc.png | Bin 74 -> 0 bytes .../img/round/button/gray-small/tl-hover.png | Bin 83 -> 0 bytes .../img/round/button/gray-small/tl.png | Bin 83 -> 0 bytes .../img/round/button/gray-small/tr-hover.png | Bin 83 -> 0 bytes .../img/round/button/gray-small/tr.png | Bin 83 -> 0 bytes .../img/round/button/gray/bc-hover.png | Bin 74 -> 0 bytes .../img/round/button/gray/bc.png | Bin 71 -> 0 bytes .../img/round/button/gray/bl-hover.png | Bin 98 -> 0 bytes .../img/round/button/gray/bl.png | Bin 86 -> 0 bytes .../img/round/button/gray/br-hover.png | Bin 99 -> 0 bytes .../img/round/button/gray/br.png | Bin 86 -> 0 bytes .../img/round/button/gray/mc-hover.png | Bin 82 -> 0 bytes .../img/round/button/gray/mc.png | Bin 81 -> 0 bytes .../img/round/button/gray/ml-hover.png | Bin 74 -> 0 bytes .../img/round/button/gray/ml.png | Bin 107 -> 0 bytes .../img/round/button/gray/mr-hover.png | Bin 73 -> 0 bytes .../img/round/button/gray/mr.png | Bin 105 -> 0 bytes .../img/round/button/gray/tc-hover.png | Bin 76 -> 0 bytes .../img/round/button/gray/tc.png | Bin 71 -> 0 bytes .../img/round/button/gray/tl-hover.png | Bin 102 -> 0 bytes .../img/round/button/gray/tl.png | Bin 86 -> 0 bytes .../img/round/button/gray/tr-hover.png | Bin 101 -> 0 bytes .../img/round/button/gray/tr.png | Bin 87 -> 0 bytes .../img/round/button/green-small/bc-hover.png | Bin 94 -> 0 bytes .../img/round/button/green-small/bc.png | Bin 94 -> 0 bytes .../img/round/button/green-small/bl-hover.png | Bin 140 -> 0 bytes .../img/round/button/green-small/bl.png | Bin 140 -> 0 bytes .../img/round/button/green-small/br-hover.png | Bin 139 -> 0 bytes .../img/round/button/green-small/br.png | Bin 139 -> 0 bytes .../img/round/button/green-small/mc-hover.png | Bin 109 -> 0 bytes .../img/round/button/green-small/mc.png | Bin 109 -> 0 bytes .../img/round/button/green-small/ml-hover.png | Bin 177 -> 0 bytes .../img/round/button/green-small/ml.png | Bin 177 -> 0 bytes .../img/round/button/green-small/mr-hover.png | Bin 189 -> 0 bytes .../img/round/button/green-small/mr.png | Bin 189 -> 0 bytes .../img/round/button/green-small/tc-hover.png | Bin 94 -> 0 bytes .../img/round/button/green-small/tc.png | Bin 94 -> 0 bytes .../img/round/button/green-small/tl-hover.png | Bin 140 -> 0 bytes .../img/round/button/green-small/tl.png | Bin 140 -> 0 bytes .../img/round/button/green-small/tr-hover.png | Bin 140 -> 0 bytes .../img/round/button/green-small/tr.png | Bin 140 -> 0 bytes .../img/round/button/green/mc-hover.png | Bin 80 -> 0 bytes .../img/round/button/green/mc.png | Bin 92 -> 0 bytes .../img/round/button/green/sprite-hover.png | Bin 902 -> 0 bytes .../img/round/button/green/sprite.png | Bin 1132 -> 0 bytes .../img/round/button/index.php | 19 - .../img/round/button/letterSprite-ltr.gif | Bin 1286 -> 0 bytes .../img/round/button/letterSprite-ltr.png | Bin 1888 -> 0 bytes .../img/round/button/orange/sprite-hover.png | Bin 4199 -> 0 bytes .../img/round/button/orange/sprite.png | Bin 5455 -> 0 bytes .../img/round/dialog/bc.png | Bin 73 -> 0 bytes .../img/round/dialog/bl.png | Bin 89 -> 0 bytes .../img/round/dialog/br.png | Bin 93 -> 0 bytes .../img/round/dialog/index.php | 19 - .../img/round/dialog/mc.png | Bin 71 -> 0 bytes .../img/round/dialog/ml.png | Bin 71 -> 0 bytes .../img/round/dialog/mr.png | Bin 71 -> 0 bytes .../img/round/dialog/tc.png | Bin 73 -> 0 bytes .../img/round/dialog/tl.png | Bin 85 -> 0 bytes .../img/round/dialog/tr.png | Bin 87 -> 0 bytes .../img/round/index.php | 19 - .../img/round/tips/bc.png | Bin 73 -> 0 bytes .../img/round/tips/bl.png | Bin 89 -> 0 bytes .../img/round/tips/br.png | Bin 93 -> 0 bytes .../img/round/tips/index.php | 19 - .../img/round/tips/mc.png | Bin 71 -> 0 bytes .../img/round/tips/ml.png | Bin 71 -> 0 bytes .../img/round/tips/mr.png | Bin 71 -> 0 bytes .../img/round/tips/tc.png | Bin 73 -> 0 bytes .../img/round/tips/tl.png | Bin 85 -> 0 bytes .../img/round/tips/tr.png | Bin 87 -> 0 bytes .../img/screens/featureHeroHead.jpg | Bin 11516 -> 0 bytes .../img/screens/featureLookHead.jpg | Bin 19564 -> 0 bytes .../img/screens/featureMapHead.jpg | Bin 12204 -> 0 bytes .../img/screens/featureNatarsHead.jpg | Bin 15148 -> 0 bytes .../img/screens/featurePlayersHead.jpg | Bin 9693 -> 0 bytes .../img/screens/index.php | 19 - .../gpack/notification_v1_zzjhons/index.php | 19 - .../lang/en/b/index.php | 19 - .../notification_v1_zzjhons/lang/en/b/ok.gif | Bin 1260 -> 0 bytes .../lang/en/compact.css | 292 - .../lang/en/f/index.php | 19 - .../lang/en/f/newforum.gif | Bin 2516 -> 0 bytes .../lang/en/f/post.gif | Bin 2649 -> 0 bytes .../lang/en/f/reply.gif | Bin 2770 -> 0 bytes .../lang/en/f/result.gif | Bin 1671 -> 0 bytes .../lang/en/f/vote.gif | Bin 1545 -> 0 bytes .../lang/en/f/voting.gif | Bin 1472 -> 0 bytes .../notification_v1_zzjhons/lang/en/index.php | 19 - .../notification_v1_zzjhons/lang/en/lang.css | 129 - .../lang/en/p/autovv.gif | Bin 2770 -> 0 bytes .../lang/en/p/bfilter.gif | Bin 2927 -> 0 bytes .../lang/en/p/dorf3.jpg | Bin 27134 -> 0 bytes .../lang/en/p/index.php | 19 - .../notification_v1_zzjhons/lang/en/p/p1.gif | Bin 2948 -> 0 bytes .../notification_v1_zzjhons/lang/en/p/p3.gif | Bin 8519 -> 0 bytes .../notification_v1_zzjhons/lang/en/p/p4.gif | Bin 2915 -> 0 bytes .../notification_v1_zzjhons/lang/en/p/p5.gif | Bin 3967 -> 0 bytes .../notification_v1_zzjhons/lang/en/p/p6.gif | Bin 3514 -> 0 bytes .../notification_v1_zzjhons/lang/en/p/p7.gif | Bin 2076 -> 0 bytes .../notification_v1_zzjhons/lang/en/p/p8.gif | Bin 3897 -> 0 bytes .../lang/en/p/sort.jpg | Bin 6300 -> 0 bytes .../notification_v1_zzjhons/lang/en/p/st1.gif | Bin 3942 -> 0 bytes .../lang/en/p/xxl_map.gif | Bin 9872 -> 0 bytes .../notification_v1_zzjhons/lang/index.php | 19 - notification/img/index.php | 19 - notification/img/x.gif | Bin 49 -> 0 bytes notification/index.php | 164 - notification/lang/en.php | 43 - notification/lang/index.php | 19 - packages.php | 16 +- password.php | 128 +- plus.php | 48 +- plus1.php | 18 +- rules.php | 16 +- spieler.php | 30 +- sql_updates.txt | 289 +- src/Account/Alliance.php | 643 ++ src/Account/ISessionBase.php | 82 + src/Account/Profile.php | 202 + src/Account/Session.php | 315 + {GameEngine => src/BattleSystem}/Battle.php | 137 +- src/Controllers/AccountController.php | 153 + src/Controllers/BuildingController.php | 47 + src/Controllers/FrontController.php | 216 + src/Controllers/VillageController.php | 47 + src/Core/Automation.php | 5306 ++++++++++ src/Data/BBCode.php | 255 + src/Data/Buildings/Academy.php | 157 + src/Data/Buildings/Armoury.php | 49 + src/Data/Buildings/Bakery.php | 40 + src/Data/Buildings/Barracks.php | 53 + src/Data/Buildings/Blacksmith.php | 49 + src/Data/Buildings/Brewery.php | 40 + src/Data/Buildings/Brickyard.php | 40 + src/Data/Buildings/CityWall.php | 49 + src/Data/Buildings/ClayPit.php | 40 + src/Data/Buildings/Cranny.php | 40 + src/Data/Buildings/Cropland.php | 40 + src/Data/Buildings/EarthWall.php | 49 + src/Data/Buildings/Embassy.php | 40 + src/Data/Buildings/EmptyCell.php | 40 + src/Data/Buildings/GrainMill.php | 40 + src/Data/Buildings/Granary.php | 40 + src/Data/Buildings/GreatBarracks.php | 53 + src/Data/Buildings/GreatGranary.php | 40 + src/Data/Buildings/GreatStable.php | 53 + src/Data/Buildings/GreatWarehouse.php | 40 + src/Data/Buildings/GreatWorkshop.php | 53 + src/Data/Buildings/HeroMansion.php | 40 + src/Data/Buildings/HorseDrinkingTrough.php | 40 + src/Data/Buildings/IronFoundry.php | 40 + src/Data/Buildings/IronMine.php | 40 + src/Data/Buildings/MainBuilding.php | 158 + src/Data/Buildings/Marketplace.php | 917 ++ src/Data/Buildings/Palace.php | 174 + src/Data/Buildings/Palisade.php | 49 + src/Data/Buildings/RallyPoint.php | 897 ++ src/Data/Buildings/Residence.php | 62 + src/Data/Buildings/Sawmill.php | 40 + src/Data/Buildings/Stable.php | 53 + src/Data/Buildings/StonemasonLodge.php | 40 + src/Data/Buildings/TournamentSquare.php | 40 + src/Data/Buildings/TownHall.php | 49 + src/Data/Buildings/TradeOffice.php | 40 + src/Data/Buildings/Trapper.php | 44 + src/Data/Buildings/Treasury.php | 40 + src/Data/Buildings/Warehouse.php | 40 + src/Data/Buildings/WonderOfTheWorld.php | 57 + src/Data/Buildings/Woodcutter.php | 40 + src/Data/Buildings/Workshop.php | 53 + src/Data/GetInformations.php | 408 + src/Data/Movements/Normal.php | 65 + src/Data/Movements/Raid.php | 65 + src/Data/Movements/Reinforcement.php | 65 + src/Data/Movements/Returning.php | 65 + src/Data/Movements/ReturningTrade.php | 62 + src/Data/Movements/Settling.php | 64 + src/Data/Movements/Spy.php | 65 + src/Data/Movements/Trade.php | 62 + src/Data/NewsBoxes/Changelog.php | 32 + src/Data/NewsBoxes/NatarsInfo.php | 64 + src/Data/NewsBoxes/ServerInfo.php | 86 + src/Data/Units/Hero.php | 153 + src/Data/Users/Natars.php | 30 + src/Data/Users/Nature.php | 30 + src/Data/Validator.php | 186 + src/Data/cel.php | 73 + src/Data/hero_full.php | 6555 +++++++++++++ src/Database/Database.php | 8711 +++++++++++++++++ src/Database/IDbConnection.php | 33 +- src/Database/index.php | 19 - src/Entity/Attack.php | 110 + src/Entity/Building.php | 341 + src/Entity/BuildingJob.php | 131 + src/Entity/Enforcement.php | 96 + src/Entity/FarmList.php | 94 + src/Entity/Message.php | 184 + src/Entity/Movement.php | 171 + src/Entity/NewsBox.php | 67 + src/Entity/Oases.php | 228 + src/Entity/Offer.php | 152 + src/Entity/RaidList.php | 162 + src/Entity/Report.php | 180 + src/Entity/Research.php | 147 + src/Entity/Timer.php | 41 + src/Entity/TradeRoute.php | 223 + src/Entity/Training.php | 104 + src/Entity/TrainingField.php | 249 + src/Entity/Trapped.php | 132 + src/Entity/Unit.php | 116 + src/Entity/User.php | 1278 ++- src/Entity/Village.php | 2173 ++++ src/Entity/Villages.php | 582 ++ src/Entity/WorldCell.php | 77 + src/Entity/index.php | 19 - src/Enums/BuildingEnums.php | 139 + src/Enums/BuildingJobEnums.php | 31 + src/Enums/MessageEnums.php | 27 + src/Enums/MovementEnums.php | 37 + src/Enums/OasesEnums.php | 25 + src/Enums/ResearchEnums.php | 27 + src/Enums/TribeEnums.php | 31 + src/Enums/UnitEnums.php | 45 + src/Enums/UserEnums.php | 27 + src/Enums/VillageEnums.php | 25 + src/Exceptions/InvalidParametersException.php | 55 + src/Factory/BuildingsFactory.php | 260 + src/Factory/MovementsFactory.php | 68 + src/Factory/ResearchesFactory.php | 202 + src/Factory/UnitsFactory.php | 268 + {GameEngine => src}/Lang/en.php | 227 +- src/Message/Message.php | 788 ++ src/Models/AccountModel.php | 482 + src/Models/BuildingModel.php | 836 ++ src/Models/VillageModel.php | 220 + src/Mvc/Controller.php | 35 + src/Mvc/Model.php | 46 + src/Mvc/View.php | 73 + src/Natars/Artifacts.php | 949 ++ src/Ranking/Ranking.php | 636 ++ src/Utils/AccessLogger.php | 80 +- src/Utils/DateTime.php | 62 +- src/Utils/Generator.php | 268 + src/Utils/Mailer.php | 123 + src/Utils/Math.php | 64 +- {GameEngine => src/Utils}/Multisort.php | 41 +- src/Views/AccountView.php | 39 + src/Views/BuildingView.php | 58 + src/Views/VillageView.php | 58 + src/Village/Building.php | 1047 ++ src/Village/Technology.php | 739 ++ src/Village/Units.php | 867 ++ src/index.php | 19 - statistiken.php | 48 +- support.php | 16 +- sysmsg.php | 6 +- {Templates => templates}/Ajax/.htaccess | 0 {Templates => templates}/Ajax/mapscroll.tpl | 0 {Templates => templates}/Ajax/mapscroll2.tpl | 0 {Templates => templates}/Ajax/plusmap.tpl | 0 {Templates => templates}/Ajax/quest_core.tpl | 8 +- .../Ajax/quest_core25.tpl | 8 +- {Templates => templates}/Alliance/.htaccess | 0 .../Alliance/Forum/.htaccess | 0 .../Alliance/Forum/forum_1.tpl | 0 .../Alliance/Forum/forum_10.tpl | 6 +- .../Alliance/Forum/forum_2.tpl | 0 .../Alliance/Forum/forum_3.tpl | 0 .../Alliance/Forum/forum_4.tpl | 0 .../Alliance/Forum/forum_5.tpl | 6 +- .../Alliance/Forum/forum_6.tpl | 0 .../Alliance/Forum/forum_7.tpl | 6 +- .../Alliance/Forum/forum_8.tpl | 0 .../Alliance/Forum/forum_9.tpl | 6 +- .../t2 => templates/Alliance/Forum}/index.php | 0 .../Alliance/alli_menu.tpl | 0 .../Alliance/alliance.tpl | 0 .../Alliance/allidesc.tpl | 0 .../Alliance/assignpos.tpl | 0 .../Alliance/attack-filtered.tpl | 0 {Templates => templates}/Alliance/attacks.tpl | 0 .../Alliance/changename.tpl | 2 +- .../Alliance/changepos.tpl | 0 {Templates => templates}/Alliance/chat.tpl | 0 .../Alliance/chgdiplo.tpl | 0 {Templates => templates}/Alliance/forum.tpl | 21 +- {Templates => templates}/Alliance/invite.tpl | 2 +- {Templates => templates}/Alliance/kick.tpl | 2 +- .../Alliance/linkforum.tpl | 2 +- {Templates => templates}/Alliance/medal.php | 0 {Templates => templates}/Alliance/news.tpl | 0 {Templates => templates}/Alliance/option.tpl | 2 +- .../Alliance/overview.tpl | 0 .../Alliance/quitalli.tpl | 0 {Templates => templates}/Anleitung/.htaccess | 0 {Templates => templates}/Anleitung/0.tpl | 24 +- {Templates => templates}/Anleitung/1.tpl | 102 +- {Templates => templates}/Anleitung/3.tpl | 0 {Templates => templates}/Anleitung/4.tpl | 0 .../Build => templates/Manual}/.htaccess | 0 {Templates => templates}/Manual/0.tpl | 0 {Templates => templates}/Manual/00.tpl | 0 {Templates => templates}/Manual/11.tpl | 8 +- {Templates => templates}/Manual/110.tpl | 8 +- {Templates => templates}/Manual/111.tpl | 8 +- {Templates => templates}/Manual/112.tpl | 8 +- {Templates => templates}/Manual/113.tpl | 8 +- {Templates => templates}/Manual/114.tpl | 8 +- {Templates => templates}/Manual/115.tpl | 8 +- {Templates => templates}/Manual/116.tpl | 8 +- {Templates => templates}/Manual/117.tpl | 8 +- {Templates => templates}/Manual/118.tpl | 8 +- {Templates => templates}/Manual/119.tpl | 8 +- {Templates => templates}/Manual/12.tpl | 8 +- {Templates => templates}/Manual/120.tpl | 8 +- {Templates => templates}/Manual/121.tpl | 8 +- {Templates => templates}/Manual/122.tpl | 8 +- {Templates => templates}/Manual/123.tpl | 8 +- {Templates => templates}/Manual/124.tpl | 8 +- {Templates => templates}/Manual/125.tpl | 8 +- {Templates => templates}/Manual/126.tpl | 8 +- {Templates => templates}/Manual/127.tpl | 8 +- {Templates => templates}/Manual/128.tpl | 8 +- {Templates => templates}/Manual/129.tpl | 8 +- {Templates => templates}/Manual/13.tpl | 8 +- {Templates => templates}/Manual/130.tpl | 8 +- {Templates => templates}/Manual/131.tpl | 8 +- {Templates => templates}/Manual/134.tpl | 8 +- {Templates => templates}/Manual/14.tpl | 8 +- {Templates => templates}/Manual/141.tpl | 8 +- {Templates => templates}/Manual/142.tpl | 8 +- {Templates => templates}/Manual/143.tpl | 8 +- {Templates => templates}/Manual/145.tpl | 8 +- {Templates => templates}/Manual/146.tpl | 8 +- {Templates => templates}/Manual/147.tpl | 8 +- {Templates => templates}/Manual/148.tpl | 8 +- {Templates => templates}/Manual/149.tpl | 8 +- {Templates => templates}/Manual/15.tpl | 8 +- {Templates => templates}/Manual/150.tpl | 8 +- {Templates => templates}/Manual/151.tpl | 8 +- {Templates => templates}/Manual/152.tpl | 8 +- {Templates => templates}/Manual/153.tpl | 8 +- {Templates => templates}/Manual/154.tpl | 8 +- {Templates => templates}/Manual/155.tpl | 8 +- {Templates => templates}/Manual/156.tpl | 8 +- {Templates => templates}/Manual/157.tpl | 8 +- {Templates => templates}/Manual/158.tpl | 8 +- {Templates => templates}/Manual/159.tpl | 8 +- {Templates => templates}/Manual/16.tpl | 8 +- {Templates => templates}/Manual/160.tpl | 8 +- {Templates => templates}/Manual/17.tpl | 8 +- {Templates => templates}/Manual/18.tpl | 8 +- {Templates => templates}/Manual/19.tpl | 8 +- {Templates => templates}/Manual/21.tpl | 0 {Templates => templates}/Manual/22.tpl | 0 {Templates => templates}/Manual/23.tpl | 0 {Templates => templates}/Manual/24.tpl | 0 {Templates => templates}/Manual/25.tpl | 0 {Templates => templates}/Manual/31.tpl | 0 {Templates => templates}/Manual/32.tpl | 0 {Templates => templates}/Manual/33.tpl | 0 {Templates => templates}/Manual/4.tpl | 0 {Templates => templates}/Manual/41.tpl | 2 +- {Templates => templates}/Manual/410.tpl | 2 +- {Templates => templates}/Manual/411.tpl | 2 +- {Templates => templates}/Manual/412.tpl | 2 +- {Templates => templates}/Manual/413.tpl | 2 +- {Templates => templates}/Manual/414.tpl | 2 +- {Templates => templates}/Manual/415.tpl | 2 +- {Templates => templates}/Manual/416.tpl | 2 +- {Templates => templates}/Manual/417.tpl | 2 +- {Templates => templates}/Manual/418.tpl | 2 +- {Templates => templates}/Manual/419.tpl | 2 +- {Templates => templates}/Manual/42.tpl | 2 +- {Templates => templates}/Manual/420.tpl | 2 +- {Templates => templates}/Manual/421.tpl | 2 +- {Templates => templates}/Manual/422.tpl | 2 +- {Templates => templates}/Manual/423.tpl | 2 +- {Templates => templates}/Manual/424.tpl | 2 +- {Templates => templates}/Manual/425.tpl | 2 +- {Templates => templates}/Manual/426.tpl | 2 +- {Templates => templates}/Manual/427.tpl | 2 +- {Templates => templates}/Manual/428.tpl | 2 +- {Templates => templates}/Manual/429.tpl | 2 +- {Templates => templates}/Manual/43.tpl | 2 +- {Templates => templates}/Manual/430.tpl | 2 +- {Templates => templates}/Manual/431.tpl | 2 +- {Templates => templates}/Manual/432.tpl | 2 +- {Templates => templates}/Manual/433.tpl | 2 +- {Templates => templates}/Manual/434.tpl | 2 +- {Templates => templates}/Manual/435.tpl | 2 +- {Templates => templates}/Manual/436.tpl | 2 +- {Templates => templates}/Manual/437.tpl | 2 +- {Templates => templates}/Manual/438.tpl | 2 +- {Templates => templates}/Manual/439.tpl | 2 +- {Templates => templates}/Manual/44.tpl | 2 +- {Templates => templates}/Manual/440.tpl | 2 +- {Templates => templates}/Manual/441.tpl | 2 +- {Templates => templates}/Manual/442.tpl | 2 +- {Templates => templates}/Manual/45.tpl | 2 +- {Templates => templates}/Manual/46.tpl | 2 +- {Templates => templates}/Manual/47.tpl | 2 +- {Templates => templates}/Manual/48.tpl | 2 +- {Templates => templates}/Manual/49.tpl | 2 +- {Templates => templates}/Manual/52.tpl | 0 {Templates => templates}/Manual/60.tpl | 0 {Templates => templates}/Manual/61.tpl | 0 {Templates => templates}/Manual/62.tpl | 0 {Templates => templates}/Manual/63.tpl | 0 {Templates => templates}/Manual/64.tpl | 0 {Templates => templates}/Manual/67.tpl | 0 {Templates => templates}/Manual/68.tpl | 0 {Templates => templates}/Manual/69.tpl | 0 {Templates => templates}/Manual/direct.tpl | 0 .../lang => templates/Manual}/index.php | 0 {Templates => templates}/Manual/medal.tpl | 0 .../avaliable => templates/Map}/.htaccess | 0 {Templates => templates}/Map/mapview.tpl | 0 {Templates => templates}/Map/mapviewlarge.tpl | 0 {Templates => templates}/Map/vilview.tpl | 8 +- .../soon => templates/Message}/.htaccess | 0 {Templates => templates}/Message/archive.tpl | 0 {Templates => templates}/Message/inbox.tpl | 0 {Templates => templates}/Message/menu.tpl | 0 {Templates => templates}/Message/notes.tpl | 0 {Templates => templates}/Message/read.tpl | 0 {Templates => templates}/Message/sent.tpl | 0 {Templates => templates}/Message/write.tpl | 2 +- .../Manual => templates/Notice}/.htaccess | 0 {Templates => templates}/Notice/1.tpl | 2 +- {Templates => templates}/Notice/10.tpl | 6 +- {Templates => templates}/Notice/15.tpl | 0 {Templates => templates}/Notice/22.tpl | 0 {Templates => templates}/Notice/3.tpl | 0 {Templates => templates}/Notice/8.tpl | 2 +- {Templates => templates}/Notice/9.tpl | 0 {Templates => templates}/Notice/all.tpl | 0 {Templates/Map => templates/Plus}/.htaccess | 0 {Templates => templates}/Plus/1.tpl | 0 {Templates => templates}/Plus/10.tpl | 0 {Templates => templates}/Plus/11.tpl | 0 {Templates => templates}/Plus/110.tpl | 0 {Templates => templates}/Plus/111.tpl | 0 {Templates => templates}/Plus/112.tpl | 0 {Templates => templates}/Plus/113.tpl | 0 {Templates => templates}/Plus/12.tpl | 0 {Templates => templates}/Plus/13.tpl | 8 +- {Templates => templates}/Plus/14.tpl | 0 {Templates => templates}/Plus/15.tpl | 0 {Templates => templates}/Plus/2.tpl | 0 {Templates => templates}/Plus/3.tpl | 8 +- {Templates => templates}/Plus/3110.tpl | 0 {Templates => templates}/Plus/4.tpl | 0 {Templates => templates}/Plus/5.tpl | 0 {Templates => templates}/Plus/7.tpl | 0 {Templates => templates}/Plus/8.tpl | 0 {Templates => templates}/Plus/9.tpl | 0 {Templates => templates}/Plus/getplus.tpl | 0 {Templates => templates}/Plus/invite.tpl | 0 {Templates => templates}/Plus/pmenu.tpl | 0 .../Message => templates/Profile}/.htaccess | 0 {Templates => templates}/Profile/account.tpl | 2 +- {Templates => templates}/Profile/graphic.tpl | 4 +- {Templates => templates}/Profile/medal.php | 0 {Templates => templates}/Profile/menu.tpl | 0 {Templates => templates}/Profile/menu2.tpl | 0 {Templates => templates}/Profile/notfound.tpl | 0 {Templates => templates}/Profile/overview.tpl | 2 +- .../Profile/preference.tpl | 0 {Templates => templates}/Profile/profile.tpl | 0 {Templates => templates}/Profile/special.tpl | 0 {Templates => templates}/Profile/vacation.tpl | 0 .../News => templates/Ranking}/.htaccess | 0 .../Ranking/_notes/dwsync.xml | 0 {Templates => templates}/Ranking/alliance.tpl | 0 .../Ranking/alliance_attack.tpl | 0 .../Ranking/alliance_defend.tpl | 0 .../Ranking/ally_top10.tpl | 0 {Templates => templates}/Ranking/general.tpl | 0 {Templates => templates}/Ranking/heroes.tpl | 0 {Templates => templates}/Ranking/overview.tpl | 0 {Templates => templates}/Ranking/player_1.tpl | 0 {Templates => templates}/Ranking/player_2.tpl | 0 {Templates => templates}/Ranking/player_3.tpl | 0 .../Ranking/player_attack.tpl | 0 .../Ranking/player_defend.tpl | 0 .../Ranking/player_top10.tpl | 0 .../Ranking/ranksearch.tpl | 2 +- {Templates => templates}/Ranking/villages.tpl | 0 {Templates => templates}/Ranking/ww.tpl | 0 .../home => templates/Tutorial}/.htaccess | 0 {Templates => templates}/Tutorial/1.tpl | 0 {Templates => templates}/Tutorial/2.tpl | 0 {Templates => templates}/Tutorial/3.tpl | 0 {Templates => templates}/Tutorial/4.tpl | 0 {Templates => templates}/Tutorial/5.tpl | 0 templates/account/activate.tpl | 9 + templates/account/activation/activated.tpl | 13 + templates/account/activation/delete.tpl | 47 + .../account/activation/needToActivate.tpl | 54 + templates/account/anmelden.tpl | 97 + templates/account/login.tpl | 95 + templates/account/logout.tpl | 7 + templates/account/password.tpl | 28 + templates/base.tpl | 37 + templates/base/footer.tpl | 11 + templates/base/head.tpl | 18 + templates/base/header.tpl | 107 + templates/base/indexnews.tpl | 2 + templates/base/links.tpl | 46 + templates/base/menu.tpl | 121 + templates/base/natars.tpl | 17 + templates/base/news.tpl | 21 + {Templates => templates/base}/quest.tpl | 0 {Templates => templates/base}/rules.tpl | 0 {Templates => templates/base}/support.tpl | 0 templates/base/time.tpl | 9 + templates/baseNotLoggedIn.tpl | 26 + templates/error.tpl | 5 + .../Notice => templates/goldClub}/.htaccess | 0 templates/goldClub/farmList.tpl | 125 + templates/goldClub/farmListAdd.tpl | 44 + templates/goldClub/farmListAddRaid.tpl | 10 + templates/goldClub/farmListEditRaid.tpl | 11 + templates/goldClub/farmListRaid.tpl | 57 + templates/goldClub/unitsList.tpl | 17 + {Templates/Plus => templates/news}/.htaccess | 0 .../Profile => templates/news/home}/.htaccess | 0 .../News => templates/news}/home/home1.tpl | 0 .../News => templates/news}/home/home2.tpl | 0 .../News => templates/news}/home/home3.tpl | 0 .../modules => templates/news/home}/index.php | 0 templates/news/newsbox1.tpl | 59 + templates/news/newsbox2.tpl | 35 + .../News => templates/news}/newsbox3.tpl | 10 +- .../Ranking => templates/sendUnits}/.htaccess | 0 .../a2b => templates/sendUnits}/attack.tpl | 2 +- .../sendUnits/newVillage.tpl | 12 +- templates/sendUnits/search.tpl | 39 + .../sendUnits/sendBack.tpl | 2 +- templates/sendUnits/units.tpl | 161 + .../simulator}/.htaccess | 0 .../simulator}/att_1.tpl | 0 .../simulator}/att_2.tpl | 0 .../simulator}/att_3.tpl | 0 .../simulator}/def_1.tpl | 0 .../simulator}/def_2.tpl | 0 .../simulator}/def_3.tpl | 0 .../simulator}/def_4.tpl | 0 .../simulator}/def_end.tpl | 0 .../simulator}/res_1.tpl | 0 .../simulator}/res_2.tpl | 0 .../simulator}/res_3.tpl | 0 .../simulator}/res_4.tpl | 0 .../simulator}/res_a1.tpl | 0 .../simulator}/res_a2.tpl | 0 .../simulator}/res_a3.tpl | 0 .../simulator}/res_d1.tpl | 0 .../simulator}/res_d2.tpl | 0 .../simulator}/res_d3.tpl | 0 .../simulator}/res_d4.tpl | 0 .../simulator}/return.tpl | 0 templates/success.tpl | 5 + templates/text.tpl | 26 + {Templates => templates}/text_format.tpl | 0 templates/version.tpl | 45 + templates/village/build.tpl | 9 + templates/village/building.tpl | 50 + .../village/buildings}/.htaccess | 0 templates/village/buildings/1.tpl | 2 + templates/village/buildings/10.tpl | 2 + templates/village/buildings/11.tpl | 2 + .../village/buildings}/12.tpl | 0 .../village/buildings}/12_upgrades.tpl | 2 +- .../village/buildings}/13.tpl | 0 .../village/buildings}/13_upgrades.tpl | 2 +- templates/village/buildings/14.tpl | 2 + templates/village/buildings/15.tpl | 3 + templates/village/buildings/16.tpl | 14 + templates/village/buildings/17.tpl | 261 + templates/village/buildings/17_1.tpl | 155 + templates/village/buildings/17_2.tpl | 108 + templates/village/buildings/17_3.tpl | 277 + templates/village/buildings/17_4.tpl | 75 + templates/village/buildings/17_create.tpl | 120 + templates/village/buildings/17_edit.tpl | 72 + templates/village/buildings/17_menu.tpl | 13 + .../village/buildings}/18.tpl | 0 .../village/buildings}/18_create.tpl | 2 +- templates/village/buildings/19.tpl | 8 + templates/village/buildings/2.tpl | 2 + templates/village/buildings/20.tpl | 8 + templates/village/buildings/21.tpl | 8 + templates/village/buildings/22.tpl | 7 + templates/village/buildings/23.tpl | 2 + .../village/buildings}/24.tpl | 0 .../village/buildings}/24_1.tpl | 0 .../village/buildings}/24_2.tpl | 2 +- templates/village/buildings/25.tpl | 2 + templates/village/buildings/26.tpl | 2 + .../village/buildings}/27.tpl | 0 .../village/buildings}/27_1.tpl | 0 .../village/buildings}/27_2.tpl | 0 .../village/buildings}/27_3.tpl | 0 .../village/buildings}/27_menu.tpl | 0 .../village/buildings}/27_show.tpl | 0 templates/village/buildings/28.tpl | 2 + templates/village/buildings/29.tpl | 8 + templates/village/buildings/3.tpl | 2 + templates/village/buildings/30.tpl | 8 + templates/village/buildings/31.tpl | 2 + templates/village/buildings/32.tpl | 2 + templates/village/buildings/33.tpl | 2 + templates/village/buildings/34.tpl | 2 + templates/village/buildings/35.tpl | 2 + templates/village/buildings/36.tpl | 13 + .../village/buildings}/37.tpl | 0 .../village/buildings}/37_hero.tpl | 0 .../village/buildings}/37_land.tpl | 24 +- .../village/buildings}/37_revive.tpl | 12 +- .../village/buildings}/37_train.tpl | 0 templates/village/buildings/38.tpl | 2 + templates/village/buildings/39.tpl | 2 + templates/village/buildings/4.tpl | 2 + templates/village/buildings/40.tpl | 35 + templates/village/buildings/41.tpl | 2 + templates/village/buildings/42.tpl | 8 + templates/village/buildings/5.tpl | 2 + templates/village/buildings/6.tpl | 2 + templates/village/buildings/7.tpl | 2 + templates/village/buildings/8.tpl | 2 + templates/village/buildings/9.tpl | 2 + .../village/buildings/available.tpl | 173 +- .../village/buildings/avaliable}/.htaccess | 0 .../village/buildings}/avaliable/academy.tpl | 0 .../village/buildings}/avaliable/armoury.tpl | 0 .../buildings}/avaliable/availupgrade.tpl | 2 +- .../village/buildings}/avaliable/bakery.tpl | 0 .../village/buildings}/avaliable/barracks.tpl | 0 .../buildings}/avaliable/blacksmith.tpl | 0 .../village/buildings}/avaliable/brewery.tpl | 0 .../buildings}/avaliable/brickyard.tpl | 0 .../village/buildings}/avaliable/citywall.tpl | 0 .../village/buildings}/avaliable/cranny.tpl | 0 .../buildings}/avaliable/earthwall.tpl | 0 .../village/buildings}/avaliable/embassy.tpl | 0 .../buildings}/avaliable/grainmill.tpl | 0 .../village/buildings}/avaliable/granary.tpl | 0 .../buildings}/avaliable/greatbarracks.tpl | 0 .../buildings}/avaliable/greatgranary.tpl | 0 .../buildings}/avaliable/greatstable.tpl | 0 .../buildings}/avaliable/greatwarehouse.tpl | 0 .../buildings}/avaliable/greatworkshop.tpl | 0 .../village/buildings}/avaliable/hero.tpl | 0 .../buildings}/avaliable/horsedrinking.tpl | 0 .../buildings}/avaliable/ironfoundry.tpl | 0 .../buildings}/avaliable/mainbuilding.tpl | 0 .../buildings}/avaliable/marketplace.tpl | 0 .../village/buildings}/avaliable/palace.tpl | 0 .../village/buildings}/avaliable/palisade.tpl | 0 .../buildings}/avaliable/rallypoint.tpl | 0 .../buildings}/avaliable/residence.tpl | 0 .../village/buildings}/avaliable/sawmill.tpl | 0 .../village/buildings}/avaliable/stable.tpl | 0 .../buildings}/avaliable/stonemason.tpl | 0 .../village/buildings}/avaliable/townhall.tpl | 0 .../buildings}/avaliable/tradeoffice.tpl | 0 .../village/buildings}/avaliable/trapper.tpl | 0 .../village/buildings}/avaliable/treasury.tpl | 0 .../village/buildings}/avaliable/tsquare.tpl | 0 .../buildings}/avaliable/warehouse.tpl | 0 .../village/buildings}/avaliable/workshop.tpl | 0 templates/village/buildings/base.tpl | 13 + .../village/buildings/colonizers/base.tpl | 11 + .../buildings/colonizers/changeCapital.tpl | 18 + .../buildings/colonizers/culturePoints.tpl | 24 + .../buildings/colonizers/expansion.tpl | 43 + .../village/buildings/colonizers/loyalty.tpl | 1 + .../village/buildings/colonizers/menu.tpl | 6 + .../village/buildings/colonizers/train.tpl | 15 + templates/village/buildings/demolition.tpl | 32 + .../village/buildings/rallyPoint/goldClub.tpl | 13 + .../village/buildings/rallyPoint/menu.tpl | 8 + .../buildings/rallyPoint/movements.tpl | 122 + .../buildings/rallyPoint/unitsEvasion.tpl | 44 + .../buildings/rallyPoint/unitsTable.tpl | 83 + templates/village/buildings/research.tpl | 116 + templates/village/buildings/showBonus.tpl | 13 + .../village/buildings/soon}/.htaccess | 0 .../village/buildings}/soon/academy.tpl | 0 .../village/buildings}/soon/armoury.tpl | 0 .../village/buildings}/soon/bakery.tpl | 0 .../village/buildings}/soon/barracks.tpl | 0 .../village/buildings}/soon/blacksmith.tpl | 0 .../village/buildings}/soon/brewery.tpl | 0 .../village/buildings}/soon/brickyard.tpl | 0 .../village/buildings}/soon/grainmill.tpl | 0 .../village/buildings}/soon/greatbarracks.tpl | 0 .../village/buildings}/soon/greatgranary.tpl | 0 .../village/buildings}/soon/greatstable.tpl | 0 .../buildings}/soon/greatwarehouse.tpl | 0 .../village/buildings}/soon/greatworkshop.tpl | 0 .../village/buildings}/soon/hero.tpl | 0 .../village/buildings}/soon/horsedrinking.tpl | 0 .../village/buildings}/soon/ironfoundry.tpl | 0 .../village/buildings}/soon/marketplace.tpl | 0 .../village/buildings}/soon/palace.tpl | 0 .../village/buildings}/soon/residence.tpl | 0 .../village/buildings}/soon/sawmill.tpl | 0 .../village/buildings}/soon/stable.tpl | 0 .../village/buildings}/soon/stonemason.tpl | 0 .../village/buildings}/soon/townhall.tpl | 0 .../village/buildings}/soon/tradeoffice.tpl | 0 .../village/buildings}/soon/trapper.tpl | 0 .../village/buildings}/soon/treasury.tpl | 0 .../village/buildings}/soon/tsquare.tpl | 0 .../village/buildings}/soon/workshop.tpl | 0 templates/village/buildings/trade.tpl | 45 + .../buildings/trainingFields/inTraining.tpl | 40 + .../buildings/trainingFields/train.tpl | 64 + templates/village/buildings/upgrade.tpl | 75 + templates/village/dorf1.tpl | 27 + templates/village/dorf2.tpl | 18 + templates/village/dorf3.tpl | 20 + .../village}/dorf3/.htaccess | 0 templates/village/dorf3/1.tpl | 57 + templates/village/dorf3/2.tpl | 53 + templates/village/dorf3/3.tpl | 63 + templates/village/dorf3/4.tpl | 79 + templates/village/dorf3/5.tpl | 58 + templates/village/dorf3/menu.tpl | 7 + templates/village/dorf3/noplus.tpl | 32 + templates/village/field.tpl | 23 + templates/village/movement.tpl | 155 + templates/village/multivillage.tpl | 32 + templates/village/production.tpl | 44 + templates/village/res.tpl | 49 + templates/village/units.tpl | 60 + templates/village/village.tpl | 133 + tutorial.php | 12 +- unx.js | 912 -- var/.gitignore | 1 + var/db/struct.sql | 73 +- .../notes}/DO NOT REMOVE THIS FOLDER.txt | 0 {img/admin/b => var/notes}/index.php | 0 .../prevention/activateArtifacts.txt | 0 .../prevention/buildComplete.txt | 0 var/prevention/celebrationComplete.txt | 0 var/prevention/clearDeleting.txt | 0 var/prevention/culturePoints.txt | 0 var/prevention/demolitionComplete.txt | 0 var/prevention/empty.txt | 0 {img/admin/icon => var/prevention}/index.php | 0 var/prevention/lock.lock | 0 var/prevention/loyaltyRegeneration.txt | 0 var/prevention/marketComplete.txt | 0 var/prevention/researchComplete.txt | 0 var/prevention/returnunitsComplete.txt | 0 var/prevention/sendSettlersComplete.txt | 0 var/prevention/sendUnitsComplete.txt | 0 var/prevention/sendreinfunitsComplete.txt | 0 var/prevention/spawnNatars.txt | 0 var/prevention/spawnWWBuildingPlans.txt | 0 var/prevention/spawnWWVillages.txt | 0 var/prevention/starvation.txt | 0 var/prevention/trainingComplete.txt | 0 var/prevention/updateHero.txt | 0 vendor/autoload.php | 7 + vendor/composer/ClassLoader.php | 445 + vendor/composer/LICENSE | 21 + vendor/composer/autoload_classmap.php | 9 + vendor/composer/autoload_files.php | 10 + vendor/composer/autoload_namespaces.php | 9 + vendor/composer/autoload_psr4.php | 10 + vendor/composer/autoload_real.php | 70 + vendor/composer/autoload_static.php | 35 + vendor/composer/installed.json | 57 + .../smarty/smarty/COMPOSER_RELEASE_NOTES.txt | 31 + .../smarty/INHERITANCE_RELEASE_NOTES.txt | 91 + vendor/smarty/smarty/LICENSE | 179 + vendor/smarty/smarty/NEW_FEATURES.txt | 284 + vendor/smarty/smarty/README | 575 ++ vendor/smarty/smarty/README.md | 72 + vendor/smarty/smarty/SMARTY_2_BC_NOTES.txt | 109 + vendor/smarty/smarty/SMARTY_3.0_BC_NOTES.txt | 24 + vendor/smarty/smarty/SMARTY_3.1_NOTES.txt | 306 + vendor/smarty/smarty/change_log.txt | 3342 +++++++ vendor/smarty/smarty/composer.json | 39 + vendor/smarty/smarty/demo/configs/test.conf | 5 + vendor/smarty/smarty/demo/index.php | 30 + .../smarty/demo/plugins/cacheresource.apc.php | 83 + .../demo/plugins/cacheresource.memcache.php | 101 + .../demo/plugins/cacheresource.mysql.php | 160 + .../smarty/demo/plugins/cacheresource.pdo.php | 327 + .../demo/plugins/cacheresource.pdo_gzip.php | 43 + .../demo/plugins/resource.extendsall.php | 65 + .../smarty/demo/plugins/resource.mysql.php | 83 + .../smarty/demo/plugins/resource.mysqls.php | 63 + .../smarty/smarty/demo/templates/footer.tpl | 2 + .../smarty/smarty/demo/templates/header.tpl | 5 + vendor/smarty/smarty/demo/templates/index.tpl | 87 + vendor/smarty/smarty/error_reporting.ini | 1 + vendor/smarty/smarty/libs/Autoloader.php | 110 + vendor/smarty/smarty/libs/Smarty.class.php | 1372 +++ vendor/smarty/smarty/libs/SmartyBC.class.php | 474 + vendor/smarty/smarty/libs/bootstrap.php | 17 + vendor/smarty/smarty/libs/debug.tpl | 160 + .../smarty/libs/libs - Verknüpfung.lnk | Bin 0 -> 1027 bytes .../smarty/libs/plugins/block.textformat.php | 117 + .../smarty/libs/plugins/function.counter.php | 73 + .../smarty/libs/plugins/function.cycle.php | 105 + .../smarty/libs/plugins/function.fetch.php | 221 + .../libs/plugins/function.html_checkboxes.php | 262 + .../libs/plugins/function.html_image.php | 165 + .../libs/plugins/function.html_options.php | 225 + .../libs/plugins/function.html_radios.php | 245 + .../plugins/function.html_select_date.php | 393 + .../plugins/function.html_select_time.php | 370 + .../libs/plugins/function.html_table.php | 182 + .../smarty/libs/plugins/function.mailto.php | 153 + .../smarty/libs/plugins/function.math.php | 109 + .../libs/plugins/modifier.capitalize.php | 118 + .../libs/plugins/modifier.date_format.php | 83 + .../libs/plugins/modifier.debug_print_var.php | 112 + .../smarty/libs/plugins/modifier.escape.php | 235 + .../libs/plugins/modifier.mb_wordwrap.php | 75 + .../libs/plugins/modifier.regex_replace.php | 58 + .../smarty/libs/plugins/modifier.replace.php | 39 + .../smarty/libs/plugins/modifier.spacify.php | 27 + .../smarty/libs/plugins/modifier.truncate.php | 66 + .../libs/plugins/modifiercompiler.cat.php | 29 + .../modifiercompiler.count_characters.php | 32 + .../modifiercompiler.count_paragraphs.php | 27 + .../modifiercompiler.count_sentences.php | 27 + .../plugins/modifiercompiler.count_words.php | 32 + .../libs/plugins/modifiercompiler.default.php | 35 + .../libs/plugins/modifiercompiler.escape.php | 115 + .../plugins/modifiercompiler.from_charset.php | 33 + .../libs/plugins/modifiercompiler.indent.php | 33 + .../libs/plugins/modifiercompiler.lower.php | 31 + .../libs/plugins/modifiercompiler.noprint.php | 21 + .../modifiercompiler.string_format.php | 25 + .../libs/plugins/modifiercompiler.strip.php | 33 + .../plugins/modifiercompiler.strip_tags.php | 29 + .../plugins/modifiercompiler.to_charset.php | 33 + .../plugins/modifiercompiler.unescape.php | 50 + .../libs/plugins/modifiercompiler.upper.php | 29 + .../plugins/modifiercompiler.wordwrap.php | 39 + .../plugins/outputfilter.trimwhitespace.php | 89 + .../plugins/shared.escape_special_chars.php | 34 + .../plugins/shared.literal_compiler_param.php | 36 + .../libs/plugins/shared.make_timestamp.php | 45 + .../libs/plugins/shared.mb_str_replace.php | 53 + .../smarty/libs/plugins/shared.mb_unicode.php | 54 + .../variablefilter.htmlspecialchars.php | 19 + .../libs/sysplugins/smarty_cacheresource.php | 220 + .../smarty_cacheresource_custom.php | 276 + .../smarty_cacheresource_keyvaluestore.php | 508 + .../smarty/libs/sysplugins/smarty_data.php | 68 + .../libs/sysplugins/smarty_internal_block.php | 90 + .../smarty_internal_cacheresource_file.php | 229 + .../smarty_internal_compile_append.php | 52 + .../smarty_internal_compile_assign.php | 94 + .../smarty_internal_compile_block.php | 176 + .../smarty_internal_compile_block_child.php | 24 + .../smarty_internal_compile_block_parent.php | 31 + .../smarty_internal_compile_break.php | 119 + .../smarty_internal_compile_call.php | 89 + .../smarty_internal_compile_capture.php | 112 + .../smarty_internal_compile_child.php | 77 + .../smarty_internal_compile_config_load.php | 98 + .../smarty_internal_compile_continue.php | 25 + .../smarty_internal_compile_debug.php | 42 + .../smarty_internal_compile_eval.php | 71 + .../smarty_internal_compile_extends.php | 151 + .../smarty_internal_compile_for.php | 170 + .../smarty_internal_compile_foreach.php | 343 + .../smarty_internal_compile_function.php | 209 + .../sysplugins/smarty_internal_compile_if.php | 209 + .../smarty_internal_compile_include.php | 331 + .../smarty_internal_compile_include_php.php | 106 + .../smarty_internal_compile_insert.php | 150 + .../smarty_internal_compile_ldelim.php | 37 + .../smarty_internal_compile_make_nocache.php | 62 + .../smarty_internal_compile_nocache.php | 75 + .../smarty_internal_compile_parent.php | 32 + ..._internal_compile_private_block_plugin.php | 119 + ...nternal_compile_private_foreachsection.php | 226 + ...ternal_compile_private_function_plugin.php | 74 + ...arty_internal_compile_private_modifier.php | 152 + ..._compile_private_object_block_function.php | 42 + ...ternal_compile_private_object_function.php | 82 + .../smarty_internal_compile_private_php.php | 214 + ...ernal_compile_private_print_expression.php | 147 + ...ernal_compile_private_registered_block.php | 72 + ...al_compile_private_registered_function.php | 86 + ...ernal_compile_private_special_variable.php | 126 + .../smarty_internal_compile_rdelim.php | 34 + .../smarty_internal_compile_section.php | 461 + .../smarty_internal_compile_setfilter.php | 70 + ...ty_internal_compile_shared_inheritance.php | 48 + .../smarty_internal_compile_while.php | 100 + .../smarty_internal_compilebase.php | 195 + .../smarty_internal_config_file_compiler.php | 202 + .../smarty_internal_configfilelexer.php | 699 ++ .../smarty_internal_configfileparser.php | 999 ++ .../libs/sysplugins/smarty_internal_data.php | 286 + .../libs/sysplugins/smarty_internal_debug.php | 429 + .../smarty_internal_errorhandler.php | 112 + .../smarty_internal_extension_handler.php | 196 + ...rty_internal_method_addautoloadfilters.php | 52 + ...ty_internal_method_adddefaultmodifiers.php | 42 + .../smarty_internal_method_append.php | 74 + .../smarty_internal_method_appendbyref.php | 50 + .../smarty_internal_method_assignbyref.php | 36 + .../smarty_internal_method_assignglobal.php | 43 + .../smarty_internal_method_clearallassign.php | 37 + .../smarty_internal_method_clearallcache.php | 41 + .../smarty_internal_method_clearassign.php | 44 + .../smarty_internal_method_clearcache.php | 45 + ..._internal_method_clearcompiledtemplate.php | 128 + .../smarty_internal_method_clearconfig.php | 41 + ...marty_internal_method_compileallconfig.php | 33 + ...ty_internal_method_compilealltemplates.php | 125 + .../smarty_internal_method_configload.php | 184 + .../smarty_internal_method_createdata.php | 44 + ...rty_internal_method_getautoloadfilters.php | 37 + ...arty_internal_method_getconfigvariable.php | 34 + .../smarty_internal_method_getconfigvars.php | 58 + ...marty_internal_method_getdebugtemplate.php | 35 + ...ty_internal_method_getdefaultmodifiers.php | 35 + .../smarty_internal_method_getglobal.php | 47 + ...ty_internal_method_getregisteredobject.php | 44 + ...arty_internal_method_getstreamvariable.php | 51 + .../smarty_internal_method_gettags.php | 63 + ...smarty_internal_method_gettemplatevars.php | 113 + .../smarty_internal_method_literals.php | 98 + .../smarty_internal_method_loadfilter.php | 77 + .../smarty_internal_method_loadplugin.php | 111 + .../smarty_internal_method_mustcompile.php | 51 + ..._internal_method_registercacheresource.php | 40 + .../smarty_internal_method_registerclass.php | 46 + ...al_method_registerdefaultconfighandler.php | 42 + ...al_method_registerdefaultpluginhandler.php | 43 + ..._method_registerdefaulttemplatehandler.php | 82 + .../smarty_internal_method_registerfilter.php | 88 + .../smarty_internal_method_registerobject.php | 72 + .../smarty_internal_method_registerplugin.php | 51 + ...marty_internal_method_registerresource.php | 44 + ...rty_internal_method_setautoloadfilters.php | 71 + ...marty_internal_method_setdebugtemplate.php | 41 + ...ty_internal_method_setdefaultmodifiers.php | 38 + .../smarty_internal_method_unloadfilter.php | 43 + ...nternal_method_unregistercacheresource.php | 40 + ...marty_internal_method_unregisterfilter.php | 43 + ...marty_internal_method_unregisterobject.php | 40 + ...marty_internal_method_unregisterplugin.php | 41 + ...rty_internal_method_unregisterresource.php | 40 + .../smarty_internal_nocache_insert.php | 52 + .../sysplugins/smarty_internal_parsetree.php | 54 + .../smarty_internal_parsetree_code.php | 42 + .../smarty_internal_parsetree_dq.php | 95 + .../smarty_internal_parsetree_dqcontent.php | 42 + .../smarty_internal_parsetree_tag.php | 69 + .../smarty_internal_parsetree_template.php | 128 + .../smarty_internal_parsetree_text.php | 40 + .../smarty_internal_resource_eval.php | 95 + .../smarty_internal_resource_extends.php | 128 + .../smarty_internal_resource_file.php | 178 + .../smarty_internal_resource_php.php | 111 + .../smarty_internal_resource_registered.php | 99 + .../smarty_internal_resource_stream.php | 81 + .../smarty_internal_resource_string.php | 110 + .../smarty_internal_runtime_cachemodify.php | 71 + ...rty_internal_runtime_cacheresourcefile.php | 138 + .../smarty_internal_runtime_capture.php | 169 + .../smarty_internal_runtime_codeframe.php | 95 + .../smarty_internal_runtime_filterhandler.php | 69 + .../smarty_internal_runtime_foreach.php | 151 + ...smarty_internal_runtime_getincludepath.php | 175 + .../smarty_internal_runtime_inheritance.php | 250 + .../smarty_internal_runtime_make_nocache.php | 56 + .../smarty_internal_runtime_tplfunction.php | 169 + .../smarty_internal_runtime_updatecache.php | 177 + .../smarty_internal_runtime_updatescope.php | 115 + .../smarty_internal_runtime_writefile.php | 99 + ...smarty_internal_smartytemplatecompiler.php | 174 + .../sysplugins/smarty_internal_template.php | 719 ++ .../smarty_internal_templatebase.php | 379 + .../smarty_internal_templatecompilerbase.php | 1631 +++ .../smarty_internal_templatelexer.php | 1046 ++ .../smarty_internal_templateparser.php | 3605 +++++++ .../smarty_internal_testinstall.php | 607 ++ .../sysplugins/smarty_internal_undefined.php | 68 + .../libs/sysplugins/smarty_resource.php | 252 + .../sysplugins/smarty_resource_custom.php | 95 + .../sysplugins/smarty_resource_recompiled.php | 95 + .../sysplugins/smarty_resource_uncompiled.php | 49 + .../libs/sysplugins/smarty_security.php | 733 ++ .../sysplugins/smarty_template_cached.php | 257 + .../sysplugins/smarty_template_compiled.php | 258 + .../sysplugins/smarty_template_config.php | 99 + .../smarty_template_resource_base.php | 153 + .../sysplugins/smarty_template_source.php | 212 + .../sysplugins/smarty_undefined_variable.php | 33 + .../libs/sysplugins/smarty_variable.php | 48 + .../sysplugins/smartycompilerexception.php | 45 + .../libs/sysplugins/smartyexception.php | 19 + version.php | 141 +- warsim.php | 16 +- winner.php | 16 +- 3503 files changed, 90956 insertions(+), 35819 deletions(-) delete mode 100644 AC_OETags.js delete mode 100755 GameEngine/Account.php delete mode 100755 GameEngine/Alliance.php delete mode 100644 GameEngine/Artifacts.php delete mode 100644 GameEngine/Automation.php delete mode 100755 GameEngine/BBCode.php delete mode 100755 GameEngine/Building.php delete mode 100755 GameEngine/Chat.php delete mode 100755 GameEngine/Data/buidata.php delete mode 100755 GameEngine/Data/cel.php delete mode 100755 GameEngine/Data/cp.php delete mode 100755 GameEngine/Data/hero_full.php delete mode 100755 GameEngine/Data/resdata.php delete mode 100755 GameEngine/Data/unitdata.php delete mode 100755 GameEngine/Database.php delete mode 100755 GameEngine/Form.php delete mode 100755 GameEngine/Game/WorldWonderName.php delete mode 100755 GameEngine/Generator.php delete mode 100755 GameEngine/Logging.php delete mode 100755 GameEngine/Mailer.php delete mode 100755 GameEngine/Market.php delete mode 100755 GameEngine/Message.php delete mode 100755 GameEngine/Profile.php delete mode 100755 GameEngine/Protection.php delete mode 100755 GameEngine/Ranking.php delete mode 100755 GameEngine/Session.php delete mode 100755 GameEngine/Technology.php delete mode 100755 GameEngine/Units.php delete mode 100755 GameEngine/Village.php delete mode 100755 GameEngine/favicon.ico delete mode 100755 GameEngine/functions.php delete mode 100644 Security/Security.class.php delete mode 100644 Security/index.php delete mode 100644 Templates/Build/1.tpl delete mode 100644 Templates/Build/10.tpl delete mode 100644 Templates/Build/11.tpl delete mode 100644 Templates/Build/14.tpl delete mode 100644 Templates/Build/15.tpl delete mode 100644 Templates/Build/15_1.tpl delete mode 100644 Templates/Build/16.tpl delete mode 100644 Templates/Build/16_99.tpl delete mode 100644 Templates/Build/16_incomming.tpl delete mode 100644 Templates/Build/16_menu.tpl delete mode 100644 Templates/Build/16_troops.tpl delete mode 100644 Templates/Build/16_walking.tpl delete mode 100644 Templates/Build/17.tpl delete mode 100644 Templates/Build/17_1.tpl delete mode 100644 Templates/Build/17_2.tpl delete mode 100644 Templates/Build/17_3.tpl delete mode 100644 Templates/Build/17_4.tpl delete mode 100644 Templates/Build/17_create.tpl delete mode 100644 Templates/Build/17_edit.tpl delete mode 100644 Templates/Build/17_menu.tpl delete mode 100644 Templates/Build/19.tpl delete mode 100644 Templates/Build/19_train.tpl delete mode 100644 Templates/Build/2.tpl delete mode 100644 Templates/Build/20.tpl delete mode 100644 Templates/Build/20_train.tpl delete mode 100644 Templates/Build/21.tpl delete mode 100644 Templates/Build/22.tpl delete mode 100644 Templates/Build/22_1.tpl delete mode 100644 Templates/Build/22_2.tpl delete mode 100644 Templates/Build/22_3.tpl delete mode 100644 Templates/Build/22_4.tpl delete mode 100644 Templates/Build/22_5.tpl delete mode 100644 Templates/Build/23.tpl delete mode 100644 Templates/Build/25.tpl delete mode 100644 Templates/Build/25_2.tpl delete mode 100644 Templates/Build/25_3.tpl delete mode 100644 Templates/Build/25_4.tpl delete mode 100644 Templates/Build/25_create.tpl delete mode 100644 Templates/Build/25_menu.tpl delete mode 100644 Templates/Build/25_progress.tpl delete mode 100644 Templates/Build/25_train.tpl delete mode 100644 Templates/Build/26.tpl delete mode 100644 Templates/Build/26_2.tpl delete mode 100644 Templates/Build/26_3.tpl delete mode 100644 Templates/Build/26_4.tpl delete mode 100644 Templates/Build/26_create.tpl delete mode 100644 Templates/Build/26_menu.tpl delete mode 100644 Templates/Build/26_progress.tpl delete mode 100644 Templates/Build/26_train.tpl delete mode 100644 Templates/Build/28.tpl delete mode 100644 Templates/Build/29.tpl delete mode 100644 Templates/Build/29_train.tpl delete mode 100644 Templates/Build/3.tpl delete mode 100644 Templates/Build/30.tpl delete mode 100644 Templates/Build/30_train.tpl delete mode 100644 Templates/Build/31.tpl delete mode 100644 Templates/Build/32.tpl delete mode 100644 Templates/Build/33.tpl delete mode 100644 Templates/Build/34.tpl delete mode 100644 Templates/Build/35.tpl delete mode 100644 Templates/Build/36.tpl delete mode 100644 Templates/Build/38.tpl delete mode 100644 Templates/Build/39.tpl delete mode 100644 Templates/Build/4.tpl delete mode 100644 Templates/Build/41.tpl delete mode 100644 Templates/Build/42.tpl delete mode 100644 Templates/Build/42_train.tpl delete mode 100644 Templates/Build/5.tpl delete mode 100644 Templates/Build/6.tpl delete mode 100644 Templates/Build/7.tpl delete mode 100644 Templates/Build/8.tpl delete mode 100644 Templates/Build/9.tpl delete mode 100644 Templates/Build/next.tpl delete mode 100644 Templates/Build/upgrade.tpl delete mode 100644 Templates/Build/ww.tpl delete mode 100644 Templates/Build/wwupgrade.tpl delete mode 100644 Templates/Building.tpl delete mode 100644 Templates/News/newsbox1.tpl delete mode 100644 Templates/News/newsbox2.tpl delete mode 100644 Templates/a2b/search.tpl delete mode 100644 Templates/a2b/units_1.tpl delete mode 100644 Templates/a2b/units_2.tpl delete mode 100644 Templates/a2b/units_3.tpl delete mode 100644 Templates/a2b/units_4.tpl delete mode 100644 Templates/a2b/units_5.tpl delete mode 100644 Templates/activate/activate.tpl delete mode 100644 Templates/activate/activated.tpl delete mode 100644 Templates/activate/cantfind.tpl delete mode 100644 Templates/activate/delete.tpl delete mode 100644 Templates/dorf2.tpl delete mode 100644 Templates/dorf3/1.tpl delete mode 100644 Templates/dorf3/2.tpl delete mode 100644 Templates/dorf3/3.tpl delete mode 100644 Templates/dorf3/4.tpl delete mode 100644 Templates/dorf3/5.tpl delete mode 100644 Templates/dorf3/menu.tpl delete mode 100644 Templates/dorf3/noplus.tpl delete mode 100644 Templates/field.tpl delete mode 100644 Templates/footer.tpl delete mode 100644 Templates/goldClub/.htaccess delete mode 100644 Templates/goldClub/farmlist.tpl delete mode 100644 Templates/goldClub/farmlist_add.tpl delete mode 100644 Templates/goldClub/farmlist_addraid.tpl delete mode 100644 Templates/goldClub/farmlist_editraid.tpl delete mode 100644 Templates/goldClub/trooplist.tpl delete mode 100644 Templates/header.tpl delete mode 100644 Templates/indexnews.tpl delete mode 100644 Templates/links.tpl delete mode 100644 Templates/menu.tpl delete mode 100644 Templates/movement.tpl delete mode 100644 Templates/multivillage.tpl delete mode 100644 Templates/natars.tpl delete mode 100644 Templates/news.tpl delete mode 100644 Templates/production.tpl delete mode 100644 Templates/res.tpl delete mode 100644 Templates/text.tpl delete mode 100644 Templates/troops.tpl delete mode 100644 Templates/version.tpl rename {gpack => assets/gpack}/download/travian_default.zip (100%) rename {GameEngine/Data => assets/gpack}/index.php (100%) mode change 100755 => 100644 rename {gpack => assets/gpack}/travian/elements/country_sprite.gif (100%) rename {gpack => assets/gpack}/travian/flaggs.css (100%) rename {gpack => assets/gpack}/travian/images/anleitung_background.gif (100%) rename {gpack => assets/gpack}/travian/images/anleitung_footer.gif (100%) rename {gpack => assets/gpack}/travian/images/anleitung_header.gif (100%) rename {gpack => assets/gpack}/travian/images/artwork-ltr.jpg (100%) rename {gpack => assets/gpack}/travian/images/artwork.jpg (100%) rename {gpack => assets/gpack}/travian/images/buttons_screenshots-left.gif (100%) rename {gpack => assets/gpack}/travian/images/buttons_screenshots-right.gif (100%) rename {gpack => assets/gpack}/travian/images/buttons_screenshots_next.gif (100%) rename {gpack => assets/gpack}/travian/images/buttons_screenshots_prev.gif (100%) rename {gpack => assets/gpack}/travian/images/content_background.jpg (100%) rename {gpack => assets/gpack}/travian/images/count_background-ltr.jpg (100%) rename {gpack => assets/gpack}/travian/images/count_background.jpg (100%) rename {gpack => assets/gpack}/travian/images/country_background.jpg (100%) rename {gpack => assets/gpack}/travian/images/footer_background.jpg (100%) rename {gpack => assets/gpack}/travian/images/gameworld_background.jpg (100%) rename {gpack => assets/gpack}/travian/images/gameworld_footer.jpg (100%) rename {gpack => assets/gpack}/travian/images/gameworld_header.jpg (100%) rename {gpack => assets/gpack}/travian/images/info_background-ltr.jpg (100%) rename {gpack => assets/gpack}/travian/images/info_background.jpg (100%) rename {gpack => assets/gpack}/travian/images/logo_background-ltr.jpg (100%) rename {gpack => assets/gpack}/travian/images/logo_background.jpg (100%) rename {gpack => assets/gpack}/travian/images/logo_traviangames.jpg (100%) rename {gpack => assets/gpack}/travian/images/main_background_content.jpg (100%) rename {gpack => assets/gpack}/travian/images/main_background_front.jpg (100%) rename {gpack => assets/gpack}/travian/images/nav_left.gif (100%) rename {gpack => assets/gpack}/travian/images/nav_right.gif (100%) rename {gpack => assets/gpack}/travian/images/news_background.jpg (100%) rename {gpack => assets/gpack}/travian/images/news_footer.jpg (100%) rename {gpack => assets/gpack}/travian/images/news_header.jpg (100%) rename {gpack => assets/gpack}/travian/images/news_spacer.jpg (100%) rename {gpack => assets/gpack}/travian/images/popup-left.gif (100%) rename {gpack => assets/gpack}/travian/images/popup-next.gif (100%) rename {gpack => assets/gpack}/travian/images/popup-prev.gif (100%) rename {gpack => assets/gpack}/travian/images/popup-right.gif (100%) rename {gpack => assets/gpack}/travian/images/popup_close.gif (100%) rename {gpack => assets/gpack}/travian/images/screenshot_footer.gif (100%) rename {gpack => assets/gpack}/travian/images/screenshot_header.jpg (100%) rename {gpack => assets/gpack}/travian/images/screenshots_background.jpg (100%) rename {gpack => assets/gpack}/travian/images/social_abstand.jpg (100%) rename {gpack => assets/gpack}/travian/images/social_box1-ltr.jpg (100%) rename {gpack => assets/gpack}/travian/images/social_box2-ltr.jpg (100%) rename {gpack => assets/gpack}/travian/images/social_button1.gif (100%) rename {gpack => assets/gpack}/travian/images/social_button2.gif (100%) rename {gpack => assets/gpack}/travian/images/social_landing_hg-ltr.jpg (100%) rename {gpack => assets/gpack}/travian/main.css (100%) rename {gpack => assets/gpack}/travian/main_en.css (100%) rename {gpack => assets/gpack}/travian_default/images/artwork1-ltr.jpg (100%) rename {gpack => assets/gpack}/travian_default/images/artwork2-ltr.jpg (100%) rename {gpack => assets/gpack}/travian_default/images/banner-zravianx.png (100%) rename {gpack => assets/gpack}/travian_default/images/footer_background.gif (100%) rename {gpack => assets/gpack}/travian_default/images/footer_logo.gif (100%) rename {gpack => assets/gpack}/travian_default/images/footer_logo.png (100%) rename {gpack => assets/gpack}/travian_default/images/footer_logo.psd (100%) rename {gpack => assets/gpack}/travian_default/images/footer_logo_zravianx.gif (100%) rename {gpack => assets/gpack}/travian_default/images/header_background.jpg (100%) rename {GameEngine/Game => assets/gpack/travian_default/images}/index.php (100%) mode change 100755 => 100644 rename {gpack => assets/gpack}/travian_default/images/m1-ltr.gif (100%) rename {gpack => assets/gpack}/travian_default/images/m2-ltr.gif (100%) rename {gpack => assets/gpack}/travian_default/images/m3-ltr.gif (100%) rename {gpack => assets/gpack}/travian_default/images/m4-ltr.gif (100%) rename {gpack => assets/gpack}/travian_default/images/menu-bg-ltr.gif (100%) rename {gpack => assets/gpack}/travian_default/images/n1-ltr.gif (100%) rename {gpack => assets/gpack}/travian_default/images/n2-ltr.gif (100%) rename {gpack => assets/gpack}/travian_default/images/n3-ltr.gif (100%) rename {gpack => assets/gpack}/travian_default/images/n4-ltr.gif (100%) rename {gpack => assets/gpack}/travian_default/images/plus_active-ltr.gif (100%) rename {gpack => assets/gpack}/travian_default/images/plus_bg.gif (100%) rename {gpack => assets/gpack}/travian_default/images/plus_inactive-ltr.gif (100%) rename {gpack => assets/gpack}/travian_default/images/plus_start-ltr.gif (100%) rename {gpack => assets/gpack}/travian_default/images/shadow-a-ltr.png (100%) rename {gpack => assets/gpack}/travian_default/images/shadow-b-ltr.png (100%) rename {gpack => assets/gpack}/travian_default/img/a/acc.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/adr.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/adr_rtl.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/anl.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/anl_rtl.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/att1.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/att2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/att3.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/att_all.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/attack_symbol.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/b6.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/bau.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/btm.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/buildings.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/c2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/c3.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/car.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/clock-inactive.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/clock.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/close.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/closed.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/def1.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/def2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/def3.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/def_all.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/def_c.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/def_i.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/del.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/del_g.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/external.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/f1 Kopie.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/a/firefox.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/friends.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/gold.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/gold_g.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/gp.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/help.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/ie.gif (100%) rename {GameEngine/Lang => assets/gpack/travian_default/img/a}/index.php (100%) mode change 100755 => 100644 rename {gpack => assets/gpack}/travian_default/img/a/minus.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/n.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/n12.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/n_rtl.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/navi.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/npc.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/online.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/online1.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/online2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/online3.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/online4.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/online5.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/online6.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/opened.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/opera.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/plus.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/rand.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/report_icons.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/res2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/resNew2.png (100%) rename {gpack => assets/gpack}/travian_default/img/a/s.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/troops.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/unknown.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/w.gif (100%) rename {gpack => assets/gpack}/travian_default/img/a/x.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/ArtifactsAnnouncement.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/WWVillagesAnnouncement.gif (100%) rename {GameEngine/Notes => assets/gpack/travian_default/img/artefact}/index.php (100%) mode change 100755 => 100644 rename {gpack => assets/gpack}/travian_default/img/artefact/type-1.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/type-10.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/type-2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/type-4.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/type-5.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/type-6.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/type-8.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/type-9.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/type-fool.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/type1.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/type2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/type3.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/type4.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/type5.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/type6.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/type7.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/type8.gif (100%) rename {gpack => assets/gpack}/travian_default/img/artefact/typeww.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/c4.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/del.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/down_arr.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/edit.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/folder.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/folder_lock.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/folder_new.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/folder_new_lock.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/folder_new_sticky.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/folder_new_sticky_lock.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/folder_sticky.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/folder_sticky_lock.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/icon_latest_reply.gif (100%) rename {GameEngine/Prevention => assets/gpack/travian_default/img/f}/index.php (100%) mode change 100755 => 100644 rename {gpack => assets/gpack}/travian_default/img/f/lock.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/mad.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/pin.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/plus.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/smileys.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/stats_left.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/stats_middle.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/stats_right.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/switch_admin.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/unlock.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/unpin.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/up_arr.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/v_folder.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/v_folder_lock.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/v_folder_new.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/v_folder_new_lock.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/v_folder_new_sticky.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/v_folder_new_sticky_lock.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/v_folder_sticky.gif (100%) rename {gpack => assets/gpack}/travian_default/img/f/v_folder_sticky_lock.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/bg0.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/bg1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/bg11.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/bg12.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/bg13.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/f1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/f10.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/f11.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/f12.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/f2.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/f3.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/f4.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/f5.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/f6.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/f7.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/f8.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/f9.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/f99.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/g/g1.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g10.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g10b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g11.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g11b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g12.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g12b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g13.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g13b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g14.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g14b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g15.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g15b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g16.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g16b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g16e.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g17.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g17b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g18.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g18b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g19.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g19b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g20.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g20b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g21.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g21b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g22.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g22b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g23.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g23b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g24.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g24b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g25.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g25b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g26.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g26b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g27.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g27b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g28.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g28b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g29.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g29b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g3.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g30.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g30b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g31Icon.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g32Icon.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g33Icon.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g34.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g34b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g35.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g35_tea.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g35b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g35b_tea.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g36.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g36b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g37.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g37b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g38.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g38b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g39.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g39b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g4.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g40.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g40_1.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g40_2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g40_3.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g40_4.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g40_5.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g41.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g41b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g42.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g42b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g43.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g43b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g44.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g44b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g5.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g5b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g6.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g6b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g7.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g7b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g8.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g8b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g9.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/g9b.gif (100%) rename {GameEngine => assets/gpack/travian_default/img/g}/index.php (100%) mode change 100755 => 100644 rename {gpack => assets/gpack}/travian_default/img/g/iso.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/s/glvl.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/s/glvlm.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/s/glvlp.gif (100%) rename {Templates/Ajax => assets/gpack/travian_default/img/g/s}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/g/s/lvl11_20.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/s/lvl11_20_active.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/s/lvl1_10.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/s/lvl1_10_active.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/s/lvl21_30.gif (100%) rename {gpack => assets/gpack}/travian_default/img/g/s/lvl21_30_active.gif (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Defensive_1.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Defensive_10.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Defensive_2.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Defensive_3.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Defensive_4.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Defensive_5.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Defensive_6.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Defensive_7.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Defensive_8.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Defensive_9.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Offensive_1.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Offensive_10.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Offensive_2.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Offensive_3.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Offensive_4.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Offensive_5.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Offensive_6.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Offensive_7.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Offensive_8.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Offensive_9.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Population_1.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Population_10.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Population_2.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Population_3.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Population_4.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Population_5.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Population_6.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Population_7.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Population_8.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Population_9.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Survivor_2.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Wow_1.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/Wow_2.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/def1.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/def2.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/def3.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/def4.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/off1.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/off2.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/off3.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/off4.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/pop1.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/pop2.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/pop3.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/pop4.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/survivor.png (100%) rename {gpack => assets/gpack}/travian_default/img/gloriamedals/ww-silber.png (100%) rename {Templates/Alliance/Forum => assets/gpack/travian_default/img}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/l/ad0.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/l/ad1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/l/ad2.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/l/bigsize_bg.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/l/bigsize_bg_interia.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/l/day.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/dyn_bg1.jpg (100%) rename {Templates/Alliance => assets/gpack/travian_default/img/l}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/l/m1.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/m1_30.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/m2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/m2_30.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/m3.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/m3_30.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/m4.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/m4_30.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/mp.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/mw.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/n1.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/n1_30.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/n2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/n2_30.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/n3.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/n3_30.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/n4.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/n4_30.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/navi.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/night.gif (100%) rename {gpack => assets/gpack}/travian_default/img/l/skyscraper_bg.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d00.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d01.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d02.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d03.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d04.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d05.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d10.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d11.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d12.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d13.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d14.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d15.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d20.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d21.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d22.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d23.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d24.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d25.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d30.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d31.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d32.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d33.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d34.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/d35.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/dir.gif (100%) rename {Templates/Anleitung => assets/gpack/travian_default/img/m}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/m/map.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/map.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/m/mapl.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/matt.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/max.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/mret.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/mspy.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/msup.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/o1.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/o10.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/o11.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/o12.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/o2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/o3.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/o4.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/o5.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/o6.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/o7.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/o8.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/o9.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/o99.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/t0.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/t1.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/t2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/t3.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/t4.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/t5.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/t6.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/t7.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/t8.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/t9.gif (100%) rename {gpack => assets/gpack}/travian_default/img/m/w1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/m/w10.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/m/w11.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/m/w12.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/m/w2.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/m/w3.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/m/w4.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/m/w5.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/m/w6.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/m/w7.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/m/w8.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/m/w9.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/misc/403.gif (100%) rename {gpack => assets/gpack}/travian_default/img/misc/404.gif (100%) rename {gpack => assets/gpack}/travian_default/img/misc/500.gif (100%) rename {gpack => assets/gpack}/travian_default/img/misc/artefacts.gif (100%) rename {gpack => assets/gpack}/travian_default/img/misc/cropfinder.gif (100%) rename {Templates/Build => assets/gpack/travian_default/img/misc}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/misc/vip.gif (100%) rename {gpack => assets/gpack}/travian_default/img/misc/win.png (100%) rename {gpack => assets/gpack}/travian_default/img/misc/xlo.gif (100%) rename {gpack => assets/gpack}/travian_default/img/msg/bb_buttons.png (100%) rename {gpack => assets/gpack}/travian_default/img/msg/block_bg.gif (100%) rename {gpack => assets/gpack}/travian_default/img/msg/block_bg2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/msg/block_bg21.gif (100%) rename {gpack => assets/gpack}/travian_default/img/msg/block_bg22.gif (100%) rename {gpack => assets/gpack}/travian_default/img/msg/block_bg23.gif (100%) rename {gpack => assets/gpack}/travian_default/img/msg/block_bg25.gif (100%) rename {Templates/Manual => assets/gpack/travian_default/img/msg}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/msg/line.gif (100%) rename {gpack => assets/gpack}/travian_default/img/msg/underline.gif (100%) rename {gpack => assets/gpack}/travian_default/img/new/adr.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/anl.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/background.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/background_a2b.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/background_alliance_name.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/background_map.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/background_messages.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/background_plus.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/background_reports.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/background_settings.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/background_statistics.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/background_village_name.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/background_warsim.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/bb_buttons.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/building_border.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/c2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/new/cancel.gif (100%) rename {gpack => assets/gpack}/travian_default/img/new/clay_border.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/clock.gif (100%) rename {gpack => assets/gpack}/travian_default/img/new/closed.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/crop_border.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/def.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/ff.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/footer.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/g22.gif (100%) rename {gpack => assets/gpack}/travian_default/img/new/gaulwall_border.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/glvl.gif (100%) rename {gpack => assets/gpack}/travian_default/img/new/gold.gif (100%) rename {gpack => assets/gpack}/travian_default/img/new/gold_g.gif (100%) rename {gpack => assets/gpack}/travian_default/img/new/gp.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/header-gold-grad.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/header-grad.gif (100%) rename {gpack => assets/gpack}/travian_default/img/new/header-line.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/header.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/ie.png (100%) rename {Templates/Map => assets/gpack/travian_default/img/new}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/new/iron_border.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/level.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/menu.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/minus.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/navi1.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/navi2.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/navi3.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/navi4.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/navi5.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/npc.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/off.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/opened.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/opera.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/plus.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/rallypoint_border.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/romanwall_border.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/switch_levels.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/teutonwall_border.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/textmenu.gif (100%) rename {gpack => assets/gpack}/travian_default/img/new/tick.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/top10.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/white.gif (100%) rename {gpack => assets/gpack}/travian_default/img/new/wood_border.png (100%) rename {gpack => assets/gpack}/travian_default/img/new/worldcup_background.png (100%) rename {gpack => assets/gpack}/travian_default/img/p/attack_marker.gif (100%) rename {gpack => assets/gpack}/travian_default/img/p/bau0.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/p/def10.jpg (100%) rename {Templates/Message => assets/gpack/travian_default/img/p}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/p/no_ads.png (100%) rename {gpack => assets/gpack}/travian_default/img/p/npc.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/p/off10.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/p/p1_25.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/p/p2_25.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/p/p3_25.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/p/p4_25.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/alliance.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/allres.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/army.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/barracks.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/clay_iron.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/cost.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/embassy.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/farm.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/gold.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/granary.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/granary_rally.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/hide.jpg (100%) rename {Templates/News/home => assets/gpack/travian_default/img/q}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/q/intro.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/l0.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/l0g.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/l1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/l1g.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/l2.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/l2g.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/l3.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/l3g.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/l4.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/l4g.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/l5.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/l5g.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/main.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/market.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/medal.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/msg.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/neighbour.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/new_village.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/rally.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/rank.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/report.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/units.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/village_name.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/warehouse.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/q/wood.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/r/1.gif (100%) rename {gpack => assets/gpack}/travian_default/img/r/2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/r/3.gif (100%) rename {gpack => assets/gpack}/travian_default/img/r/4.gif (100%) rename {gpack => assets/gpack}/travian_default/img/r/4b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/r/5.gif (100%) rename {gpack => assets/gpack}/travian_default/img/r/5b.gif (100%) rename {gpack => assets/gpack}/travian_default/img/r/6.gif (100%) rename {gpack => assets/gpack}/travian_default/img/r/7.gif (100%) rename {gpack => assets/gpack}/travian_default/img/r/easter.gif (100%) rename {Templates/News => assets/gpack/travian_default/img/r}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/r/newy.gif (100%) rename {gpack => assets/gpack}/travian_default/img/r/peace.gif (100%) rename {gpack => assets/gpack}/travian_default/img/r/xmas.gif (100%) rename {gpack => assets/gpack}/travian_default/img/s/def.gif (100%) rename {Templates/Notice => assets/gpack/travian_default/img/s}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/s/off.gif (100%) rename {gpack => assets/gpack}/travian_default/img/s/top10.gif (100%) rename {gpack => assets/gpack}/travian_default/img/s/v1.gif (100%) rename {gpack => assets/gpack}/travian_default/img/s/v2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/s/v3.gif (100%) rename {gpack => assets/gpack}/travian_default/img/scouts/18.gif (100%) rename {gpack => assets/gpack}/travian_default/img/scouts/19.gif (100%) rename {gpack => assets/gpack}/travian_default/img/scouts/20.gif (100%) rename {gpack => assets/gpack}/travian_default/img/scouts/21.gif (100%) rename {gpack => assets/gpack}/travian_default/img/scouts/22.gif (100%) rename {Templates/Plus => assets/gpack/travian_default/img/scouts}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/special/NewyearRocket_dark_1a.gif (100%) rename {gpack => assets/gpack}/travian_default/img/special/NewyearRocket_green_1a.gif (100%) rename {gpack => assets/gpack}/travian_default/img/special/NewyearRocket_orange_1a.gif (100%) rename {gpack => assets/gpack}/travian_default/img/special/NewyearRocket_purple_1a.gif (100%) rename {gpack => assets/gpack}/travian_default/img/special/NewyearRocket_red_1a.gif (100%) rename {gpack => assets/gpack}/travian_default/img/special/NewyearRocket_turquoise_1a.gif (100%) rename {gpack => assets/gpack}/travian_default/img/special/NewyearRocket_yellow_1a.gif (100%) rename {Templates/Profile => assets/gpack/travian_default/img/special}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/t/MH.png (100%) rename {gpack => assets/gpack}/travian_default/img/t/a1_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a1_10.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a1_2.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a1_3.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a1_4.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a1_5.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a1_6.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a1_7.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a1_8.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a1_9.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a2_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a2_10.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a2_2.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a2_3.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a2_4.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a2_5.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a2_6.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a2_7.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a2_8.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a2_9.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a3_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a3_10.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a3_2.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a3_3.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a3_4.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a3_5.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a3_6.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a3_7.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a3_8.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a3_9.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a4_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a4_10.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a4_2.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a4_3.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a4_4.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a4_5.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a4_6.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a4_7.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a4_8.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/a4_9.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/builderWW.png (100%) rename {gpack => assets/gpack}/travian_default/img/t/g40_11-ltr.png (100%) rename {gpack => assets/gpack}/travian_default/img/t/gauls.gif (100%) rename {Templates/Ranking => assets/gpack/travian_default/img/t}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/t/nature.png (100%) rename {gpack => assets/gpack}/travian_default/img/t/roman.gif (100%) rename {gpack => assets/gpack}/travian_default/img/t/shadow.png (100%) rename {gpack => assets/gpack}/travian_default/img/t/t100_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t101_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t102_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t10_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t10_2.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t110_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t111_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t112_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t120_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t121_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t122_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t130_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t131_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t132_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t140_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t141_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t142_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t150_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t151_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t152_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t160_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t161_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t162_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t170_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t171_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t172_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t180_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t181_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t182_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t190_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t191_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t192_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t1_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t1_10.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t1_2.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t1_3.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t1_4.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t1_5.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t1_6.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t1_7.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t1_8.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t1_9.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t200_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t201_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t202_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t210_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t211_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t212_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t220_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t221_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t222_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t2_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t2_10.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t2_2.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t2_3.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t2_4.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t2_5.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t2_6.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t2_7.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t2_8.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t2_9.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t3_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t3_10.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t3_2.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t3_3.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t3_4.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t3_5.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t3_6.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t3_7.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t3_8.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t3_9.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t4_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t4_10.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t4_2.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t4_3.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t4_4.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t4_5.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t4_6.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t4_7.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t4_8.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t4_9.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t5_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t5_10.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t5_2.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t5_3.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t5_4.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t5_5.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t5_6.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t5_7.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t5_8.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t5_9.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t6_1.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t6_1.png (100%) rename {gpack => assets/gpack}/travian_default/img/t/t6_10.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t6_2.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t6_3.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t6_4.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t6_5.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t6_6.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t6_7.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t6_8.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/t6_9.jpg (100%) rename {gpack => assets/gpack}/travian_default/img/t/taskmaster.png (100%) rename {gpack => assets/gpack}/travian_default/img/t/team.png (100%) rename {gpack => assets/gpack}/travian_default/img/t/teutons.gif (100%) rename {gpack => assets/gpack}/travian_default/img/t/tn.gif (100%) rename {gpack => assets/gpack}/travian_default/img/t/tnd.gif (100%) rename {gpack => assets/gpack}/travian_default/img/t/winnerww.png (100%) rename {gpack => assets/gpack}/travian_default/img/u/1.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/10.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/11.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/12.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/13.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/14.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/15.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/16.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/17.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/18.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/19.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/20.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/21.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/22.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/23.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/24.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/25.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/26.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/27.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/28.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/29.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/3.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/30.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/31.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/32.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/33.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/34.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/35.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/36.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/37.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/38.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/39.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/4.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/40.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/41.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/42.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/43.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/44.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/45.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/46.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/47.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/48.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/49.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/5.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/50.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/51.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/52.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/53.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/54.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/55.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/56.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/57.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/58.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/59.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/6.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/60.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/7.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/8.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/9.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/98.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/99.gif (100%) rename {Templates/Simulator => assets/gpack/travian_default/img/u}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/u/point.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/specials.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/v1_romans2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/v2_teutons2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/v3_gauls2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/v4_nature2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/v5_natars2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u/v6_monsters2.gif (100%) rename {Templates/Tutorial => assets/gpack/travian_default/img/u2}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u1.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u10.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u11.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u12.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u13.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u14.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u15.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u16.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u17.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u18.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u19.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u20.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u21.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u22.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u23.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u24.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u25.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u26.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u27.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u28.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u29.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u3.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u30.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u4.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u5.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u6.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u7.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u8.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2/u9.gif (100%) rename {Templates/a2b => assets/gpack/travian_default/img/u2rtl}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u1.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u10.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u11.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u12.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u13.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u14.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u15.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u16.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u17.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u18.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u19.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u2.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u20.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u21.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u22.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u23.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u24.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u25.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u26.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u27.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u28.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u29.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u3.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u30.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u4.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u5.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u6.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u7.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u8.gif (100%) rename {gpack => assets/gpack}/travian_default/img/u2rtl/u9.gif (100%) rename {Templates/activate => assets/gpack/travian_default/img/wm}/index.php (100%) rename {gpack => assets/gpack}/travian_default/img/wm/wm99.gif (100%) rename {Templates/dorf3 => assets/gpack/travian_default}/index.php (100%) rename {Templates/goldClub => assets/gpack/travian_default/lang/en/a}/index.php (100%) rename {gpack => assets/gpack}/travian_default/lang/en/a/plus.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/a/travian0.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/a/travian1.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/b/archiv.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/b/back.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/b/delete.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/b/demolish.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/b/forward.gif (100%) rename {Templates => assets/gpack/travian_default/lang/en/b}/index.php (100%) rename {gpack => assets/gpack}/travian_default/lang/en/b/login.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/b/ok.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/b/reply.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/b/save.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/b/search.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/b/send.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/b/signup.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/b/train.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/b/zurueck.html (100%) rename {gpack => assets/gpack}/travian_default/lang/en/compact.css (99%) rename {gpack => assets/gpack/travian_default/lang/en/f}/index.php (100%) rename {gpack => assets/gpack}/travian_default/lang/en/f/newforum.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/f/post.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/f/reply.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/f/result.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/f/vote.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/f/voting.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/gp_check.css (100%) rename {gpack/travian_default/images => assets/gpack/travian_default/lang/en}/index.php (100%) rename {gpack => assets/gpack}/travian_default/lang/en/lang.css (100%) rename {gpack => assets/gpack}/travian_default/lang/en/msg/block_bg24a.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/msg/block_bg24b.gif (100%) rename {gpack/travian_default/img/a => assets/gpack/travian_default/lang/en/msg}/index.php (100%) rename {gpack => assets/gpack}/travian_default/lang/en/new/gp_preview.png (100%) rename {gpack/travian_default/img/artefact => assets/gpack/travian_default/lang/en/new}/index.php (100%) rename {gpack => assets/gpack}/travian_default/lang/en/p/autovv.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/p/bfilter.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/p/dorf3.jpg (100%) rename {gpack/travian_default/img/f => assets/gpack/travian_default/lang/en/p}/index.php (100%) rename {gpack => assets/gpack}/travian_default/lang/en/p/p1.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/p/p3.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/p/p4.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/p/p5.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/p/p6.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/p/p7.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/p/p8.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/p/sort.jpg (100%) rename {gpack => assets/gpack}/travian_default/lang/en/p/st1.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/p/xxl_map.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/t1/anmelden.gif (100%) rename {gpack/travian_default/img/g => assets/gpack/travian_default/lang/en/t1}/index.php (100%) rename {gpack => assets/gpack}/travian_default/lang/en/t1/login.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/t1/passwort.gif (100%) rename {gpack/travian_default/img/g/s => assets/gpack/travian_default/lang/en/t2}/index.php (100%) rename {gpack => assets/gpack}/travian_default/lang/en/t2/u04.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/t2/u05.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/t2/u06.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/t2/u07.gif (100%) rename {gpack => assets/gpack}/travian_default/lang/en/t2/u22.gif (100%) rename {gpack/travian_default/img => assets/gpack/travian_default/lang}/index.php (100%) rename {gpack/travian_default/img/l => assets/gpack/travian_default/modules}/index.php (100%) rename {gpack => assets/gpack}/travian_default/modules/new_colors.css (100%) rename {gpack => assets/gpack}/travian_default/modules/new_images.css (100%) rename {gpack => assets/gpack}/travian_default/modules/new_layout_ltr.css (100%) rename {gpack => assets/gpack}/travian_default/travian.css (100%) rename {gpack => assets/gpack}/travian_t4/bodybg_fix.jpg (100%) rename {gpack => assets/gpack}/travian_t4/images/artwork1-ltr.jpg (100%) rename {gpack => assets/gpack}/travian_t4/images/artwork2-ltr.jpg (100%) rename {gpack => assets/gpack}/travian_t4/images/banner-zravianx.png (100%) rename {gpack => assets/gpack}/travian_t4/images/footer_background.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/footer_logo.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/footer_logo.png (100%) rename {gpack => assets/gpack}/travian_t4/images/footer_logo.psd (100%) rename {gpack => assets/gpack}/travian_t4/images/footer_logo_old.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/footer_logo_zravianx.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/header_background.jpg (100%) rename {gpack/travian_default/img/m => assets/gpack/travian_t4/images}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/images/m1-ltr.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/m2-ltr.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/m3-ltr.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/m4-ltr.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/menu-bg-ltr.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/n1-ltr.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/n2-ltr.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/n3-ltr.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/n4-ltr.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/plus_active-ltr.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/plus_bg.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/plus_inactive-ltr.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/plus_start-ltr.gif (100%) rename {gpack => assets/gpack}/travian_t4/images/shadow-a-ltr.png (100%) rename {gpack => assets/gpack}/travian_t4/images/shadow-b-ltr.png (100%) rename {gpack => assets/gpack}/travian_t4/img/a/acc.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/adr.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/adr_rtl.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/anl.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/anl_rtl.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/att1.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/att2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/att3.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/att_all.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/attack_symbol.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/b6.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/bau.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/btm.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/buildings.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/c2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/c3.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/car.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/clock-inactive.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/clock.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/close.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/closed.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/def1.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/def2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/def3.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/def_all.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/def_c.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/def_i.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/del.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/del_g.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/external.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/f1 Kopie.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/a/firefox.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/friends.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/gold.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/gold_g.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/gp.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/help.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/ie.gif (100%) rename {gpack/travian_default/img/misc => assets/gpack/travian_t4/img/a}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/a/minus.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/n.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/n12.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/n_rtl.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/navi.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/npc.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/online.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/online1.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/online2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/online3.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/online4.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/online5.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/online6.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/opened.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/opera.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/plus.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/rand.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/refresh.png (100%) rename {gpack => assets/gpack}/travian_t4/img/a/report_icons.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/res2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/s.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/troops.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/unknown.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/w.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/a/x.gif (100%) rename {gpack/travian_default/img/msg => assets/gpack/travian_t4/img/artefact}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type-1.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type-10.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type-2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type-4.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type-5.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type-6.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type-8.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type-9.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type-fool.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type1.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type3.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type4.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type5.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type6.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type7.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/type8.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/artefact/typeww.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/c4.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/del.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/down_arr.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/edit.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/folder.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/folder_lock.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/folder_new.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/folder_new_lock.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/folder_new_sticky.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/folder_new_sticky_lock.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/folder_sticky.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/folder_sticky_lock.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/icon_latest_reply.gif (100%) rename {gpack/travian_default/img/new => assets/gpack/travian_t4/img/f}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/f/lock.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/mad.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/pin.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/plus.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/smileys.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/stats_left.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/stats_middle.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/stats_right.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/switch_admin.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/unlock.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/unpin.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/up_arr.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/v_folder.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/v_folder_lock.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/v_folder_new.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/v_folder_new_lock.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/v_folder_new_sticky.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/v_folder_new_sticky_lock.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/v_folder_sticky.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/f/v_folder_sticky_lock.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/bg0.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/bg1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/bg11.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/bg12.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/bg13.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/f1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/f10.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/f11.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/f12.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/f2.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/f3.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/f4.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/f5.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/f6.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/f7.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/f8.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/f9.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/f99.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g1.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g10.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g10b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g11.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g11b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g12.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g12b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g13.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g13b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g14.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g14b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g15.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g15b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g16.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g16b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g16e.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g16e.png (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g17.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g17b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g18.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g18b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g19.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g19b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g20.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g20b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g21.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g21b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g22.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g22b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g23.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g23b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g24.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g24b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g25.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g25b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g26.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g26b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g27.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g27b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g28.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g28b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g29.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g29b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g3.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g30.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g30b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g34.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g34b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g35.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g35_tea.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g35b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g35b_tea.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g36.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g36b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g37.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g37b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g38.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g38b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g39.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g39b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g4.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g40.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g40_1.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g40_2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g40_3.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g40_4.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g40_5.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g41.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g41b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g42.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g42b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g43.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g43b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g44.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g44b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g5.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g5b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g6.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g6b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g7.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g7b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g8.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g8b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g9.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/g9b.gif (100%) rename {gpack/travian_default/img/p => assets/gpack/travian_t4/img/g}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/g/iso.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/s/glvl.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/s/glvlm.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/s/glvlp.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/s/lvl11_20.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/s/lvl1_10.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/g/s/lvl21_30.gif (100%) rename {gpack/travian_default/img/q => assets/gpack/travian_t4/img}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/l/ad0.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/l/ad1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/l/ad2.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/l/bigsize_bg.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/l/bigsize_bg_interia.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/l/day.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/dyn_bg1.jpg (100%) rename {gpack/travian_default/img/r => assets/gpack/travian_t4/img/l}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/l/m1.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/m1_30.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/m2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/m2_30.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/m3.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/m3_30.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/m4.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/m4_30.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/mp.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/mw.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/n1.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/n1_30.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/n2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/n2_30.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/n3.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/n3_30.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/n4.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/n4_30.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/navi.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/night.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/l/skyscraper_bg.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d00.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d01.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d02.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d03.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d04.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d05.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d10.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d11.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d12.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d13.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d14.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d15.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d20.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d21.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d22.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d23.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d24.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d25.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d30.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d31.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d32.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d33.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d34.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/d35.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/dir.gif (100%) rename {gpack/travian_default/img/s => assets/gpack/travian_t4/img/m}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/m/map.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/map.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/m/mapl.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/matt.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/max.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/mret.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/mspy.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/msup.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/o1.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/o10.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/o11.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/o12.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/o2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/o3.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/o4.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/o5.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/o6.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/o7.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/o8.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/o9.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/o99.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/t0.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/t1.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/t2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/t3.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/t4.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/t5.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/t6.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/t7.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/t8.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/t9.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/m/w1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/m/w10.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/m/w11.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/m/w12.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/m/w2.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/m/w3.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/m/w4.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/m/w5.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/m/w6.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/m/w7.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/m/w8.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/m/w9.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/misc/403.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/misc/404.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/misc/500.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/misc/artefacts.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/misc/cropfinder.gif (100%) rename {gpack/travian_default/img/scouts => assets/gpack/travian_t4/img/misc}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/misc/vip.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/misc/win.png (100%) rename {gpack => assets/gpack}/travian_t4/img/misc/xlo.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/msg/bb_buttons.png (100%) rename {gpack => assets/gpack}/travian_t4/img/msg/block_bg.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/msg/block_bg2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/msg/block_bg21.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/msg/block_bg22.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/msg/block_bg23.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/msg/block_bg25.gif (100%) rename {gpack/travian_default/img/special => assets/gpack/travian_t4/img/msg}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/msg/line.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/msg/underline.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/new/adr.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/anl.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/background.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/background_a2b.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/background_alliance_name.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/background_map.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/background_messages.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/background_plus.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/background_reports.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/background_settings.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/background_statistics.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/background_village_name.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/background_warsim.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/bb_buttons.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/building_border.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/c2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/new/cancel.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/new/clay_border.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/clock.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/new/closed.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/crop_border.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/def.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/ff.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/footer.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/g22.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/new/gaulwall_border.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/glvl.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/new/gold.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/new/gold_g.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/new/gp.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/header-gold-grad.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/header-grad.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/new/header-line.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/header.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/ie.png (100%) rename {gpack/travian_default/img/t => assets/gpack/travian_t4/img/new}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/new/iron_border.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/level.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/menu.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/minus.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/navi1.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/navi2.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/navi3.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/navi4.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/navi5.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/npc.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/off.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/opened.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/opera.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/plus.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/rallypoint_border.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/romanwall_border.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/switch_levels.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/teutonwall_border.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/textmenu.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/new/tick.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/top10.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/white.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/new/wood_border.png (100%) rename {gpack => assets/gpack}/travian_t4/img/new/worldcup_background.png (100%) rename {gpack => assets/gpack}/travian_t4/img/p/attack_marker.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/p/bau0.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/p/def10.jpg (100%) rename {gpack/travian_default/img/u => assets/gpack/travian_t4/img/p}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/p/no_ads.png (100%) rename {gpack => assets/gpack}/travian_t4/img/p/npc.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/p/off10.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/p/p1_25.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/p/p2_25.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/p/p3_25.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/p/p4_25.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/alliance.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/allres.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/army.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/barracks.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/clay_iron.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/cost.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/embassy.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/farm.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/gold.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/granary.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/granary_rally.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/hide.jpg (100%) rename {gpack/travian_default/img/u2 => assets/gpack/travian_t4/img/q}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/q/intro.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/l0.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/l0g.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/l1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/l1g.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/l2.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/l2g.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/l3.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/l3g.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/l4.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/l4g.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/l5.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/l5g.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/main.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/market.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/medal.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/msg.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/neighbour.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/new_village.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/rally.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/rank.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/report.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/units.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/village_name.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/warehouse.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/q/wood.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/r/1.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/r/2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/r/3.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/r/4.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/r/4b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/r/5.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/r/5b.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/r/6.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/r/7.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/r/easter.gif (100%) rename {gpack/travian_default/img/u2rtl => assets/gpack/travian_t4/img/r}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/r/newy.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/r/peace.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/r/xmas.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/report/adventure_report.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/report/attack.jpg (100%) rename {gpack/travian_default/img/wm => assets/gpack/travian_t4/img/report}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/report/reinforcement.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/report/resourcetrade.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/report/spy.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/report/units.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/s/def.gif (100%) rename {gpack/travian_default => assets/gpack/travian_t4/img/s}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/s/off.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/s/top10.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/s/v1.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/s/v2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/s/v3.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/scouts/18.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/scouts/19.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/scouts/20.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/scouts/21.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/scouts/22.gif (100%) rename {gpack/travian_default/lang/en/a => assets/gpack/travian_t4/img/scouts}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/special/NewyearRocket_dark_1a.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/special/NewyearRocket_green_1a.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/special/NewyearRocket_orange_1a.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/special/NewyearRocket_purple_1a.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/special/NewyearRocket_red_1a.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/special/NewyearRocket_turquoise_1a.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/special/NewyearRocket_yellow_1a.gif (100%) rename {gpack/travian_default/lang/en/b => assets/gpack/travian_t4/img/special}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/t/MH.png (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a1_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a1_10.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a1_2.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a1_3.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a1_4.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a1_5.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a1_6.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a1_7.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a1_8.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a1_9.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a2_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a2_10.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a2_2.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a2_3.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a2_4.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a2_5.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a2_6.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a2_7.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a2_8.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a2_9.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a3_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a3_10.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a3_2.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a3_3.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a3_4.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a3_5.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a3_6.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a3_7.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a3_8.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a3_9.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a4_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a4_10.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a4_2.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a4_3.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a4_4.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a4_5.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a4_6.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a4_7.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a4_8.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/a4_9.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/g40_11-ltr.png (100%) rename {gpack => assets/gpack}/travian_t4/img/t/gauls.gif (100%) rename {gpack/travian_default/lang/en/f => assets/gpack/travian_t4/img/t}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/t/nature.png (100%) rename {gpack => assets/gpack}/travian_t4/img/t/roman.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/t/shadow.png (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t100_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t101_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t102_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t10_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t10_2.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t110_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t111_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t112_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t120_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t121_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t122_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t130_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t131_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t132_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t140_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t141_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t142_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t150_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t151_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t152_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t160_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t161_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t162_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t170_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t171_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t172_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t180_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t181_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t182_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t190_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t191_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t192_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t1_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t1_10.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t1_2.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t1_3.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t1_4.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t1_5.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t1_6.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t1_7.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t1_8.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t1_9.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t200_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t201_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t202_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t210_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t211_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t212_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t220_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t221_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t222_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t2_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t2_10.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t2_2.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t2_3.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t2_4.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t2_5.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t2_6.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t2_7.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t2_8.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t2_9.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t3_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t3_10.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t3_2.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t3_3.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t3_4.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t3_5.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t3_6.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t3_7.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t3_8.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t3_9.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t4_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t4_10.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t4_2.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t4_3.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t4_4.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t4_5.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t4_6.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t4_7.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t4_8.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t4_9.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t5_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t5_10.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t5_2.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t5_3.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t5_4.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t5_5.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t5_6.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t5_7.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t5_8.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t5_9.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t6_1.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t6_1.png (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t6_10.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t6_2.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t6_3.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t6_4.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t6_5.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t6_6.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t6_7.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t6_8.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/t6_9.jpg (100%) rename {gpack => assets/gpack}/travian_t4/img/t/taskmaster.png (100%) rename {gpack => assets/gpack}/travian_t4/img/t/team.png (100%) rename {gpack => assets/gpack}/travian_t4/img/t/teutons.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/t/tn.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/t/tnd.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/1.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/10.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/11.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/12.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/13.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/14.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/15.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/16.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/17.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/18.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/19.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/20.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/21.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/22.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/23.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/24.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/25.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/26.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/27.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/28.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/29.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/3.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/30.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/31.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/32.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/33.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/34.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/35.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/36.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/37.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/38.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/39.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/4.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/40.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/41.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/42.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/43.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/44.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/45.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/46.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/47.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/48.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/49.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/5.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/50.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/51.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/52.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/53.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/54.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/55.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/56.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/57.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/58.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/59.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/6.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/60.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/7.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/8.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/9.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/98.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/99.gif (100%) rename {gpack/travian_default/lang/en => assets/gpack/travian_t4/img/u}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/u/point.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/specials.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/v1_romans2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/v2_teutons2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/v3_gauls2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/v4_nature2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/v5_natars2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u/v6_monsters2.gif (100%) rename {gpack/travian_default/lang/en/msg => assets/gpack/travian_t4/img/u2}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u1.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u10.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u11.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u12.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u13.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u14.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u15.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u16.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u17.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u18.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u19.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u20.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u21.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u22.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u23.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u24.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u25.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u26.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u27.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u28.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u29.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u3.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u30.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u4.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u5.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u6.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u7.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u8.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2/u9.gif (100%) rename {gpack/travian_default/lang/en/new => assets/gpack/travian_t4/img/u2rtl}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u1.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u10.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u11.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u12.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u13.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u14.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u15.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u16.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u17.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u18.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u19.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u2.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u20.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u21.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u22.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u23.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u24.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u25.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u26.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u27.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u28.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u29.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u3.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u30.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u4.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u5.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u6.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u7.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u8.gif (100%) rename {gpack => assets/gpack}/travian_t4/img/u2rtl/u9.gif (100%) rename {gpack/travian_default/lang/en/p => assets/gpack/travian_t4/img/wm}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/img/wm/wm99.gif (100%) rename {gpack/travian_default/lang/en/t1 => assets/gpack/travian_t4}/index.php (100%) rename {gpack/travian_default/lang/en/t2 => assets/gpack/travian_t4/lang/en/a}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/a/plus.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/a/travian0.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/a/travian1.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/b/archiv.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/b/back.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/b/delete.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/b/demolish.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/b/forward.gif (100%) rename {gpack/travian_default/lang => assets/gpack/travian_t4/lang/en/b}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/b/login.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/b/ok.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/b/reply.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/b/save.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/b/search.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/b/send.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/b/signup.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/b/train.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/b/zurueck.html (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/compact.css (100%) rename {gpack/travian_default/modules => assets/gpack/travian_t4/lang/en/f}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/f/newforum.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/f/post.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/f/reply.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/f/result.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/f/vote.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/f/voting.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/gp_check.css (100%) rename {gpack/travian_t4/images => assets/gpack/travian_t4/lang/en}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/lang.css (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/msg/block_bg24a.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/msg/block_bg24b.gif (100%) rename {gpack/travian_t4/img/a => assets/gpack/travian_t4/lang/en/msg}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/new/gp_preview.png (100%) rename {gpack/travian_t4/img/artefact => assets/gpack/travian_t4/lang/en/new}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/p/autovv.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/p/bfilter.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/p/dorf3.jpg (100%) rename {gpack/travian_t4/img/f => assets/gpack/travian_t4/lang/en/p}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/p/p1.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/p/p3.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/p/p4.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/p/p5.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/p/p6.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/p/p7.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/p/p8.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/p/sort.jpg (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/p/st1.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/p/xxl_map.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/t1/anmelden.gif (100%) rename {gpack/travian_t4/img/g => assets/gpack/travian_t4/lang/en/t1}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/t1/login.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/t1/passwort.gif (100%) rename {gpack/travian_t4/img => assets/gpack/travian_t4/lang/en/t2}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/t2/u04.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/t2/u05.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/t2/u06.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/t2/u07.gif (100%) rename {gpack => assets/gpack}/travian_t4/lang/en/t2/u22.gif (100%) rename {gpack/travian_t4/img/l => assets/gpack/travian_t4/lang}/index.php (100%) rename {gpack/travian_t4/img/m => assets/gpack/travian_t4/modules}/index.php (100%) rename {gpack => assets/gpack}/travian_t4/modules/new_colors.css (100%) rename {gpack => assets/gpack}/travian_t4/modules/new_images.css (100%) rename {gpack => assets/gpack}/travian_t4/modules/new_layout_ltr.css (100%) rename {gpack => assets/gpack}/travian_t4/naviSmall.png (100%) rename {gpack => assets/gpack}/travian_t4/travian.css (100%) rename {img => assets/img}/admin/acc.gif (100%) rename {img => assets/img}/admin/acp.css (100%) rename {img => assets/img}/admin/admin.css (100%) rename {img => assets/img}/admin/admin.gif (100%) rename {img => assets/img}/admin/b/archiv.gif (100%) rename {img => assets/img}/admin/b/back.gif (100%) rename {img => assets/img}/admin/b/delete.gif (100%) rename {img => assets/img}/admin/b/demolish.gif (100%) rename {img => assets/img}/admin/b/forward.gif (100%) rename {gpack/travian_t4/img/misc => assets/img/admin/b}/index.php (100%) rename {img => assets/img}/admin/b/l1.gif (100%) rename {img => assets/img}/admin/b/l2.gif (100%) rename {img => assets/img}/admin/b/login.gif (100%) rename {img => assets/img}/admin/b/ok.gif (100%) rename {img => assets/img}/admin/b/ok1.gif (100%) rename {img => assets/img}/admin/b/ok2.gif (100%) rename {img => assets/img}/admin/b/reply.gif (100%) rename {img => assets/img}/admin/b/save.gif (100%) rename {img => assets/img}/admin/b/search.gif (100%) rename {img => assets/img}/admin/b/send.gif (100%) rename {img => assets/img}/admin/b/signup.gif (100%) rename {img => assets/img}/admin/b/train.gif (100%) rename {img => assets/img}/admin/b/update.png (100%) rename {img => assets/img}/admin/b/zurueck.html (100%) rename {img => assets/img}/admin/c4.gif (100%) rename {img => assets/img}/admin/del.gif (100%) rename {img => assets/img}/admin/del_g.gif (100%) rename {img => assets/img}/admin/edit.gif (100%) rename {img => assets/img}/admin/gold.gif (100%) rename {img => assets/img}/admin/gold_g.gif (100%) rename {gpack/travian_t4/img/msg => assets/img/admin/icon}/index.php (100%) rename {img => assets/img}/admin/icon/nav_arrow_gray.gif (100%) rename {gpack/travian_t4/img/new => assets/img/admin}/index.php (100%) rename {img => assets/img}/admin/logo.jpg (100%) rename {img => assets/img}/admin/map.css (100%) rename {img => assets/img}/admin/map_0.gif (100%) rename {img => assets/img}/admin/map_1.gif (100%) rename {img => assets/img}/admin/map_11.gif (100%) rename {img => assets/img}/admin/map_12.gif (100%) rename {img => assets/img}/admin/map_13.gif (100%) rename {img => assets/img}/admin/map_2.gif (100%) rename {img => assets/img}/admin/map_3.gif (100%) rename {img => assets/img}/admin/map_4.gif (100%) rename {img => assets/img}/admin/map_5.gif (100%) rename {img => assets/img}/admin/map_piece.jpg (100%) rename {img => assets/img}/admin/r/1.gif (100%) rename {img => assets/img}/admin/r/2.gif (100%) rename {img => assets/img}/admin/r/3.gif (100%) rename {img => assets/img}/admin/r/4.gif (100%) rename {img => assets/img}/admin/r/4b.gif (100%) rename {img => assets/img}/admin/r/5.gif (100%) rename {img => assets/img}/admin/r/5b.gif (100%) rename {img => assets/img}/admin/r/6.gif (100%) rename {img => assets/img}/admin/r/7.gif (100%) rename {img => assets/img}/admin/r/easter.gif (100%) rename {gpack/travian_t4/img/p => assets/img/admin/r}/index.php (100%) rename {img => assets/img}/admin/r/newy.gif (100%) rename {img => assets/img}/admin/r/xmas.gif (100%) rename {img => assets/img}/admin/refresh.png (100%) rename {img => assets/img}/admin/senator_roemer.png (100%) rename {img => assets/img}/admin/x.gif (100%) rename {img => assets/img}/admin/x1 - copia.gif (100%) rename {img => assets/img}/admin/x1.gif (100%) rename {img => assets/img}/admin/x2 - copia.gif (100%) rename {img => assets/img}/admin/x2.gif (100%) rename {img => assets/img}/admin/x3 - copia.gif (100%) rename {img => assets/img}/admin/x3.gif (100%) rename {img => assets/img}/admin/x4 - copia.gif (100%) rename {img => assets/img}/admin/x4.gif (100%) rename {img => assets/img}/admin/x5 - copia.gif (100%) rename {img => assets/img}/admin/x5.gif (100%) rename {img => assets/img}/bezahlung/.htaccess (100%) rename {img => assets/img}/bezahlung/Travian_paket_a.jpg (100%) rename {img => assets/img}/bezahlung/Travian_paket_b.jpg (100%) rename {img => assets/img}/bezahlung/Travian_paket_c.jpg (100%) rename {img => assets/img}/bezahlung/Travian_paket_d.jpg (100%) rename {img => assets/img}/bezahlung/Travian_paket_e.jpg (100%) rename {img => assets/img}/bezahlung/Travian_verdienen.jpg (100%) rename {img => assets/img}/bezahlung/call2pay.png (100%) rename {img => assets/img}/bezahlung/call2pay1.png (100%) rename {img => assets/img}/bezahlung/ebank2pay.png (100%) rename {img => assets/img}/bezahlung/ebank2pay2.png (100%) rename {img => assets/img}/bezahlung/handy2pay.png (100%) rename {img => assets/img}/bezahlung/handy2pay2.png (100%) rename {gpack/travian_t4/img/q => assets/img/bezahlung}/index.php (100%) rename {img => assets/img}/bezahlung/paypal.jpg (100%) rename {img => assets/img}/bezahlung/paypal1.gif (100%) rename {img => assets/img}/bezahlung/skrill.png (100%) rename {img => assets/img}/bezahlung/skrill1.jpg (100%) rename {gpack/travian_t4/img/r => assets/img/en/a}/index.php (100%) rename {img => assets/img}/en/a/travian0.gif (100%) rename {gpack/travian_t4/img/report => assets/img/en}/index.php (100%) rename {gpack/travian_t4/img => assets/img/en}/s/index.php (100%) rename {img => assets/img}/en/s/s1.png (100%) rename {img => assets/img}/en/s/s2.png (100%) rename {img => assets/img}/en/s/s3.png (100%) rename {img => assets/img}/en/s/s4.png (100%) rename {img => assets/img}/en/s/s5.png (100%) rename {img => assets/img}/en/s/s7.png (100%) rename {img => assets/img}/en/s/s8.png (100%) rename {gpack/travian_t4/img/scouts => assets/img/en/t2}/index.php (100%) rename {img => assets/img}/en/t2/newsbox1.gif (100%) rename {img => assets/img}/en/t2/newsbox2.gif (100%) rename {img => assets/img}/en/t2/newsbox3.gif (100%) rename {img => assets/img}/en/tut/dorf_gross.jpg (100%) rename {img => assets/img}/en/tut/dorf_klein.jpg (100%) rename {img => assets/img}/en/tut/dorfzentrum1.gif (100%) rename {img => assets/img}/en/tut/dorfzentrum2.gif (100%) rename {gpack/travian_t4/img/special => assets/img/en/tut}/index.php (100%) rename {img => assets/img}/en/tut/karte.jpg (100%) rename {img => assets/img}/en/tut/navi.jpg (100%) rename {img => assets/img}/en/tut/rohstofffeld.gif (100%) rename {img => assets/img}/en/tut/rohstofffeld2.gif (100%) rename {img => assets/img}/en/welten/en10_big.jpg (100%) rename {img => assets/img}/en/welten/en10_big_g.jpg (100%) rename {img => assets/img}/en/welten/en11_big.jpg (100%) rename {img => assets/img}/en/welten/en11_big_g.jpg (100%) rename {img => assets/img}/en/welten/en12_big.jpg (100%) rename {img => assets/img}/en/welten/en12_big_g.jpg (100%) rename {img => assets/img}/en/welten/en13_big.jpg (100%) rename {img => assets/img}/en/welten/en13_big_g.jpg (100%) rename {img => assets/img}/en/welten/en14_big.jpg (100%) rename {img => assets/img}/en/welten/en14_big_g.jpg (100%) rename {img => assets/img}/en/welten/en15_big.jpg (100%) rename {img => assets/img}/en/welten/en15_big_g.jpg (100%) rename {img => assets/img}/en/welten/en1_big.jpg (100%) rename {img => assets/img}/en/welten/en1_big_g.jpg (100%) rename {img => assets/img}/en/welten/en2_big.jpg (100%) rename {img => assets/img}/en/welten/en2_big_g.jpg (100%) rename {img => assets/img}/en/welten/en3_big.jpg (100%) rename {img => assets/img}/en/welten/en3_big_g.jpg (100%) rename {img => assets/img}/en/welten/en4_big.jpg (100%) rename {img => assets/img}/en/welten/en4_big_g.jpg (100%) rename {img => assets/img}/en/welten/en5_big.jpg (100%) rename {img => assets/img}/en/welten/en5_big_g.jpg (100%) rename {img => assets/img}/en/welten/en6_big.jpg (100%) rename {img => assets/img}/en/welten/en6_big_g.jpg (100%) rename {img => assets/img}/en/welten/en7_big.jpg (100%) rename {img => assets/img}/en/welten/en7_big_g.jpg (100%) rename {img => assets/img}/en/welten/en8_big.jpg (100%) rename {img => assets/img}/en/welten/en8_big_g.jpg (100%) rename {img => assets/img}/en/welten/en9_big.jpg (100%) rename {img => assets/img}/en/welten/en9_big_g.jpg (100%) rename {img => assets/img}/en/welten/enx_big.jpg (100%) rename {img => assets/img}/en/welten/enx_big_g.jpg (100%) rename {gpack/travian_t4/img/t => assets/img/en/welten}/index.php (100%) rename {img => assets/img}/img.css (100%) rename {gpack/travian_t4/img/u => assets/img}/index.php (100%) rename {img => assets/img}/lol.PNG (100%) rename {img => assets/img}/portal_ltr.css (100%) rename {img => assets/img}/rpage/.htaccess (100%) rename {img => assets/img}/rpage/Gaul.jpg (100%) rename {img => assets/img}/rpage/Gaul1.jpg (100%) rename {img => assets/img}/rpage/Natars.jpg (100%) rename {img => assets/img}/rpage/Nature.jpg (100%) rename {img => assets/img}/rpage/Roman.jpg (100%) rename {img => assets/img}/rpage/Roman1.jpg (100%) rename {img => assets/img}/rpage/Teuton.jpg (100%) rename {img => assets/img}/rpage/Teuton1.jpg (100%) rename {img => assets/img}/rpage/spc.jpg (100%) rename {img => assets/img}/rpage/travian_logo.png (100%) rename {img => assets/img}/t4n/Teaser_Prelandingpage_EN.png (100%) rename {gpack/travian_t4/img/u2 => assets/img/t4n}/index.php (100%) rename {img => assets/img}/travian_basics.css (100%) rename {img => assets/img}/tutorial/elements/country_sprite.gif (100%) rename {gpack/travian_t4/img/u2rtl => assets/img/tutorial/elements}/index.php (100%) rename {img => assets/img}/tutorial/flaggs.css (100%) rename {img => assets/img}/tutorial/images/artwork.jpg (100%) rename {img => assets/img}/tutorial/images/artwork1-ltr.jpg (100%) rename {img => assets/img}/tutorial/images/buttons_screenshots_next.gif (100%) rename {img => assets/img}/tutorial/images/buttons_screenshots_prev.gif (100%) rename {img => assets/img}/tutorial/images/content_background.jpg (100%) rename {img => assets/img}/tutorial/images/count_background.jpg (100%) rename {img => assets/img}/tutorial/images/country_background.jpg (100%) rename {img => assets/img}/tutorial/images/footer_background.jpg (100%) rename {gpack/travian_t4/img/wm => assets/img/tutorial/images}/index.php (100%) rename {img => assets/img}/tutorial/images/info_background.jpg (100%) rename {img => assets/img}/tutorial/images/logo_background.jpg (100%) rename {img => assets/img}/tutorial/images/main_background_content.jpg (100%) rename {img => assets/img}/tutorial/images/main_background_front.jpg (100%) rename {img => assets/img}/tutorial/images/nav_left.gif (100%) rename {img => assets/img}/tutorial/images/nav_right.gif (100%) rename {img => assets/img}/tutorial/images/news_background.jpg (100%) rename {img => assets/img}/tutorial/images/news_footer.jpg (100%) rename {img => assets/img}/tutorial/images/news_header.jpg (100%) rename {img => assets/img}/tutorial/images/news_spacer.jpg (100%) rename {img => assets/img}/tutorial/images/screenshots_background.jpg (100%) rename {gpack/travian_t4 => assets/img/tutorial}/index.php (100%) rename {img => assets/img}/tutorial/main.css (100%) rename {img => assets/img}/un/a/98.gif (100%) rename {img => assets/img}/un/a/99.gif (100%) rename {img => assets/img}/un/a/anl.gif (100%) rename {img => assets/img}/un/a/btm.gif (100%) rename {img => assets/img}/un/a/c2.gif (100%) rename {img => assets/img}/un/a/car.gif (100%) rename {gpack/travian_t4/lang/en => assets/img/un}/a/index.php (100%) rename {img => assets/img}/un/a/n12.gif (100%) rename {img => assets/img}/un/a/online.gif (100%) rename {img => assets/img}/un/a/rand.gif (100%) rename {img => assets/img}/un/a/res2.gif (100%) rename {img => assets/img}/un/a/specials.gif (100%) rename {img => assets/img}/un/a/v1_romans2.gif (100%) rename {img => assets/img}/un/a/v2_teutons2.gif (100%) rename {img => assets/img}/un/a/v3_gauls2.gif (100%) rename {img => assets/img}/un/a/v4_nature2.gif (100%) rename {img => assets/img}/un/a/v5_natars2.gif (100%) rename {img => assets/img}/un/a/v6_monsters2.gif (100%) rename {img => assets/img}/un/g/bg0.jpg (100%) rename {img => assets/img}/un/g/bg1.jpg (100%) rename {img => assets/img}/un/g/bg11.jpg (100%) rename {img => assets/img}/un/g/bg12.jpg (100%) rename {img => assets/img}/un/g/f1.jpg (100%) rename {img => assets/img}/un/g/f10.jpg (100%) rename {img => assets/img}/un/g/f2.jpg (100%) rename {img => assets/img}/un/g/f3.jpg (100%) rename {img => assets/img}/un/g/f4.jpg (100%) rename {img => assets/img}/un/g/f5.jpg (100%) rename {img => assets/img}/un/g/f6.jpg (100%) rename {img => assets/img}/un/g/f7.jpg (100%) rename {img => assets/img}/un/g/f8.jpg (100%) rename {img => assets/img}/un/g/f9.jpg (100%) rename {gpack/travian_t4/lang/en/b => assets/img/un/g}/index.php (100%) rename {img => assets/img}/un/h/att_all.gif (100%) rename {img => assets/img}/un/h/clock.gif (100%) rename {img => assets/img}/un/h/def_c.gif (100%) rename {img => assets/img}/un/h/def_i.gif (100%) rename {img => assets/img}/un/h/faq_botschaft.jpg (100%) rename {img => assets/img}/un/h/faq_vp.jpg (100%) rename {img => assets/img}/un/h/gallier.jpg (100%) rename {img => assets/img}/un/h/germane.jpg (100%) rename {img => assets/img}/un/h/gid10.gif (100%) rename {img => assets/img}/un/h/gid11.gif (100%) rename {img => assets/img}/un/h/gid12.gif (100%) rename {img => assets/img}/un/h/gid13.gif (100%) rename {img => assets/img}/un/h/gid14.gif (100%) rename {img => assets/img}/un/h/gid15.gif (100%) rename {img => assets/img}/un/h/gid16.gif (100%) rename {img => assets/img}/un/h/gid17.gif (100%) rename {img => assets/img}/un/h/gid18.gif (100%) rename {img => assets/img}/un/h/gid19.gif (100%) rename {img => assets/img}/un/h/gid20.gif (100%) rename {img => assets/img}/un/h/gid21.gif (100%) rename {img => assets/img}/un/h/gid22.gif (100%) rename {img => assets/img}/un/h/gid23.gif (100%) rename {img => assets/img}/un/h/gid25.gif (100%) rename {img => assets/img}/un/h/gid26.gif (100%) rename {img => assets/img}/un/h/gid28.gif (100%) rename {gpack/travian_t4/lang/en/f => assets/img/un/h}/index.php (100%) rename {img => assets/img}/un/h/roemer.jpg (100%) rename {gpack/travian_t4/lang/en => assets/img/un}/index.php (100%) rename {gpack/travian_t4/lang/en/msg => assets/img/un/l}/index.php (100%) rename {img => assets/img}/un/l/mp.gif (100%) rename {img => assets/img}/un/l/mw.gif (100%) rename {img => assets/img}/un/l/n1.gif (100%) rename {img => assets/img}/un/l/n2.gif (100%) rename {img => assets/img}/un/l/n3.gif (100%) rename {img => assets/img}/un/l/n4.gif (100%) rename {img => assets/img}/un/res/1.gif (100%) rename {img => assets/img}/un/res/2.gif (100%) rename {img => assets/img}/un/res/3.gif (100%) rename {img => assets/img}/un/res/4.gif (100%) rename {img => assets/img}/un/res/5.gif (100%) rename {gpack/travian_t4/lang/en/new => assets/img/un/res}/index.php (100%) rename {gpack/travian_t4/lang/en/p => assets/img/un/s}/index.php (100%) rename {img => assets/img}/un/s/s1s.jpg (100%) rename {img => assets/img}/un/s/s2s.jpg (100%) rename {img => assets/img}/un/s/s3s.jpg (100%) rename {img => assets/img}/un/s/s4s.jpg (100%) rename {img => assets/img}/un/s/s5s.jpg (100%) rename {img => assets/img}/un/s/s7s.jpg (100%) rename {img => assets/img}/un/s/s8s.jpg (100%) rename {img => assets/img}/un/u/1.gif (100%) rename {img => assets/img}/un/u/10.gif (100%) rename {img => assets/img}/un/u/11.gif (100%) rename {img => assets/img}/un/u/12.gif (100%) rename {img => assets/img}/un/u/13.gif (100%) rename {img => assets/img}/un/u/14.gif (100%) rename {img => assets/img}/un/u/15.gif (100%) rename {img => assets/img}/un/u/16.gif (100%) rename {img => assets/img}/un/u/17.gif (100%) rename {img => assets/img}/un/u/18.gif (100%) rename {img => assets/img}/un/u/19.gif (100%) rename {img => assets/img}/un/u/2.gif (100%) rename {img => assets/img}/un/u/20.gif (100%) rename {img => assets/img}/un/u/21.gif (100%) rename {img => assets/img}/un/u/22.gif (100%) rename {img => assets/img}/un/u/23.gif (100%) rename {img => assets/img}/un/u/24.gif (100%) rename {img => assets/img}/un/u/25.gif (100%) rename {img => assets/img}/un/u/26.gif (100%) rename {img => assets/img}/un/u/27.gif (100%) rename {img => assets/img}/un/u/28.gif (100%) rename {img => assets/img}/un/u/29.gif (100%) rename {img => assets/img}/un/u/3.gif (100%) rename {img => assets/img}/un/u/30.gif (100%) rename {img => assets/img}/un/u/31.gif (100%) rename {img => assets/img}/un/u/32.gif (100%) rename {img => assets/img}/un/u/33.gif (100%) rename {img => assets/img}/un/u/34.gif (100%) rename {img => assets/img}/un/u/35.gif (100%) rename {img => assets/img}/un/u/36.gif (100%) rename {img => assets/img}/un/u/37.gif (100%) rename {img => assets/img}/un/u/38.gif (100%) rename {img => assets/img}/un/u/39.gif (100%) rename {img => assets/img}/un/u/4.gif (100%) rename {img => assets/img}/un/u/40.gif (100%) rename {img => assets/img}/un/u/41.gif (100%) rename {img => assets/img}/un/u/42.gif (100%) rename {img => assets/img}/un/u/43.gif (100%) rename {img => assets/img}/un/u/44.gif (100%) rename {img => assets/img}/un/u/45.gif (100%) rename {img => assets/img}/un/u/46.gif (100%) rename {img => assets/img}/un/u/47.gif (100%) rename {img => assets/img}/un/u/48.gif (100%) rename {img => assets/img}/un/u/49.gif (100%) rename {img => assets/img}/un/u/5.gif (100%) rename {img => assets/img}/un/u/50.gif (100%) rename {img => assets/img}/un/u/51.gif (100%) rename {img => assets/img}/un/u/52.gif (100%) rename {img => assets/img}/un/u/53.gif (100%) rename {img => assets/img}/un/u/54.gif (100%) rename {img => assets/img}/un/u/55.gif (100%) rename {img => assets/img}/un/u/56.gif (100%) rename {img => assets/img}/un/u/57.gif (100%) rename {img => assets/img}/un/u/58.gif (100%) rename {img => assets/img}/un/u/59.gif (100%) rename {img => assets/img}/un/u/6.gif (100%) rename {img => assets/img}/un/u/60.gif (100%) rename {img => assets/img}/un/u/7.gif (100%) rename {img => assets/img}/un/u/8.gif (100%) rename {img => assets/img}/un/u/9.gif (100%) rename {img => assets/img}/un/u/98.gif (100%) rename {img => assets/img}/un/u/99.gif (100%) rename {gpack/travian_t4/lang/en/t1 => assets/img/un/u}/index.php (100%) rename {img => assets/img}/un/u/point.gif (100%) rename {img => assets/img}/un/u/specials.gif (100%) rename {img => assets/img}/un/u/v1_romans2.gif (100%) rename {img => assets/img}/un/u/v2_teutons2.gif (100%) rename {img => assets/img}/un/u/v3_gauls2.gif (100%) rename {img => assets/img}/un/u/v4_nature2.gif (100%) rename {img => assets/img}/un/u/v5_natars2.gif (100%) rename {img => assets/img}/un/u/v6_monsters2.gif (100%) rename {img => assets/img}/un/x.gif (100%) rename {img => assets/img}/x.gif (100%) rename mt-core.js => assets/js/mt-core.js (100%) rename mt-full.js => assets/js/mt-full.js (100%) rename mt-more.js => assets/js/mt-more.js (100%) rename new.js => assets/js/new.js (100%) rename new2.js => assets/js/new2.js (100%) rename uncrypt.js => assets/js/uncrypt.js (100%) create mode 100644 assets/js/unx.js delete mode 100644 autoloader.php create mode 100644 composer.json create mode 100644 composer.lock create mode 100644 config/config.php delete mode 100644 img/admin/index.php delete mode 100644 img/admin/r/index.php delete mode 100644 img/bezahlung/index.php delete mode 100644 img/en/a/index.php delete mode 100644 img/en/index.php delete mode 100644 img/en/s/index.php delete mode 100644 img/en/t2/index.php delete mode 100644 img/en/tut/index.php delete mode 100644 img/en/welten/index.php delete mode 100644 img/index.php delete mode 100644 img/t4n/index.php delete mode 100644 img/tutorial/elements/index.php delete mode 100644 img/tutorial/images/index.php delete mode 100644 img/tutorial/index.php delete mode 100644 img/un/a/index.php delete mode 100644 img/un/g/index.php delete mode 100644 img/un/h/index.php delete mode 100644 img/un/index.php delete mode 100644 img/un/l/index.php delete mode 100644 img/un/res/index.php delete mode 100644 img/un/s/index.php delete mode 100644 img/un/u/index.php delete mode 100644 notification/crypt.js delete mode 100644 notification/favicon.ico delete mode 100644 notification/gpack/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/img/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/img/layout/background-landing-ltr.jpg delete mode 100644 notification/gpack/notification_v1_zzjhons/img/layout/background-ltr.jpg delete mode 100644 notification/gpack/notification_v1_zzjhons/img/layout/backgroundLeft-ltr.jpg delete mode 100644 notification/gpack/notification_v1_zzjhons/img/layout/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/img/layout/logoMed.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/img/layout/logoMed.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/layout/t4Text.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/img/layout/t4Text.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/play_now-ltr.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/img/play_now-ltr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/play_now_r.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/img/play_now_r.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/bg/bc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/bg/bl.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/bg/br.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/bg/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/bg/mc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/bg/ml.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/bg/mr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/bg/tc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/bg/tl.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/bg/tr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/boxes/boxGrey-Sprite.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/boxes/boxGrey-Sprite.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/boxes/gray/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/boxes/gray/sprite.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/boxes/green/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/boxes/green/sprite.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/boxes/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/boxes/lightGreen/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/boxes/lightGreen/sprite.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/boxes/mc.html delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/boxes/orange/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/boxes/orange/sprite.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/boxes/red/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/boxes/red/sprite.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/boxes/sprite.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/buttonFT-Sprite.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/buttonFT-Sprite.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/buttonFilter-ltr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/buttonSOrange-Sprite-ltr.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/buttonSOrange-Sprite-ltr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/buttonSmall-ltr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/disabled/bc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/disabled/bl.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/disabled/br.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/disabled/mc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/disabled/ml.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/disabled/mr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/disabled/tc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/disabled/tl.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/disabled/tr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/bc-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/bc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/bl-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/bl.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/br-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/br.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/mc-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/mc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/ml-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/ml.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/mr-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/mr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/tc-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/tc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/tl-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/tl.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/tr-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray-small/tr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/bc-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/bc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/bl-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/bl.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/br-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/br.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/mc-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/mc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/ml-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/ml.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/mr-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/mr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/tc-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/tc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/tl-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/tl.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/tr-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/gray/tr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/bc-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/bc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/bl-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/bl.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/br-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/br.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/mc-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/mc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/ml-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/ml.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/mr-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/mr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/tc-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/tc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/tl-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/tl.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/tr-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green-small/tr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green/mc-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green/mc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green/sprite-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/green/sprite.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/letterSprite-ltr.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/letterSprite-ltr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/orange/sprite-hover.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/button/orange/sprite.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/dialog/bc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/dialog/bl.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/dialog/br.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/dialog/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/dialog/mc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/dialog/ml.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/dialog/mr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/dialog/tc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/dialog/tl.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/dialog/tr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/tips/bc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/tips/bl.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/tips/br.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/tips/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/tips/mc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/tips/ml.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/tips/mr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/tips/tc.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/tips/tl.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/round/tips/tr.png delete mode 100644 notification/gpack/notification_v1_zzjhons/img/screens/featureHeroHead.jpg delete mode 100644 notification/gpack/notification_v1_zzjhons/img/screens/featureLookHead.jpg delete mode 100644 notification/gpack/notification_v1_zzjhons/img/screens/featureMapHead.jpg delete mode 100644 notification/gpack/notification_v1_zzjhons/img/screens/featureNatarsHead.jpg delete mode 100644 notification/gpack/notification_v1_zzjhons/img/screens/featurePlayersHead.jpg delete mode 100644 notification/gpack/notification_v1_zzjhons/img/screens/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/b/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/b/ok.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/compact.css delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/f/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/f/newforum.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/f/post.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/f/reply.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/f/result.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/f/vote.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/f/voting.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/lang.css delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/p/autovv.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/p/bfilter.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/p/dorf3.jpg delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/p/index.php delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/p/p1.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/p/p3.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/p/p4.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/p/p5.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/p/p6.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/p/p7.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/p/p8.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/p/sort.jpg delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/p/st1.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/en/p/xxl_map.gif delete mode 100644 notification/gpack/notification_v1_zzjhons/lang/index.php delete mode 100644 notification/img/index.php delete mode 100644 notification/img/x.gif delete mode 100644 notification/index.php delete mode 100644 notification/lang/en.php delete mode 100644 notification/lang/index.php create mode 100755 src/Account/Alliance.php create mode 100644 src/Account/ISessionBase.php create mode 100755 src/Account/Profile.php create mode 100755 src/Account/Session.php rename {GameEngine => src/BattleSystem}/Battle.php (86%) create mode 100644 src/Controllers/AccountController.php create mode 100644 src/Controllers/BuildingController.php create mode 100644 src/Controllers/FrontController.php create mode 100644 src/Controllers/VillageController.php create mode 100644 src/Core/Automation.php create mode 100755 src/Data/BBCode.php create mode 100644 src/Data/Buildings/Academy.php create mode 100644 src/Data/Buildings/Armoury.php create mode 100644 src/Data/Buildings/Bakery.php create mode 100644 src/Data/Buildings/Barracks.php create mode 100644 src/Data/Buildings/Blacksmith.php create mode 100644 src/Data/Buildings/Brewery.php create mode 100644 src/Data/Buildings/Brickyard.php create mode 100644 src/Data/Buildings/CityWall.php create mode 100644 src/Data/Buildings/ClayPit.php create mode 100644 src/Data/Buildings/Cranny.php create mode 100644 src/Data/Buildings/Cropland.php create mode 100644 src/Data/Buildings/EarthWall.php create mode 100644 src/Data/Buildings/Embassy.php create mode 100644 src/Data/Buildings/EmptyCell.php create mode 100644 src/Data/Buildings/GrainMill.php create mode 100644 src/Data/Buildings/Granary.php create mode 100644 src/Data/Buildings/GreatBarracks.php create mode 100644 src/Data/Buildings/GreatGranary.php create mode 100644 src/Data/Buildings/GreatStable.php create mode 100644 src/Data/Buildings/GreatWarehouse.php create mode 100644 src/Data/Buildings/GreatWorkshop.php create mode 100644 src/Data/Buildings/HeroMansion.php create mode 100644 src/Data/Buildings/HorseDrinkingTrough.php create mode 100644 src/Data/Buildings/IronFoundry.php create mode 100644 src/Data/Buildings/IronMine.php create mode 100644 src/Data/Buildings/MainBuilding.php create mode 100644 src/Data/Buildings/Marketplace.php create mode 100644 src/Data/Buildings/Palace.php create mode 100644 src/Data/Buildings/Palisade.php create mode 100644 src/Data/Buildings/RallyPoint.php create mode 100644 src/Data/Buildings/Residence.php create mode 100644 src/Data/Buildings/Sawmill.php create mode 100644 src/Data/Buildings/Stable.php create mode 100644 src/Data/Buildings/StonemasonLodge.php create mode 100644 src/Data/Buildings/TournamentSquare.php create mode 100644 src/Data/Buildings/TownHall.php create mode 100644 src/Data/Buildings/TradeOffice.php create mode 100644 src/Data/Buildings/Trapper.php create mode 100644 src/Data/Buildings/Treasury.php create mode 100644 src/Data/Buildings/Warehouse.php create mode 100644 src/Data/Buildings/WonderOfTheWorld.php create mode 100644 src/Data/Buildings/Woodcutter.php create mode 100644 src/Data/Buildings/Workshop.php create mode 100644 src/Data/GetInformations.php create mode 100644 src/Data/Movements/Normal.php create mode 100644 src/Data/Movements/Raid.php create mode 100644 src/Data/Movements/Reinforcement.php create mode 100644 src/Data/Movements/Returning.php create mode 100644 src/Data/Movements/ReturningTrade.php create mode 100644 src/Data/Movements/Settling.php create mode 100644 src/Data/Movements/Spy.php create mode 100644 src/Data/Movements/Trade.php create mode 100644 src/Data/NewsBoxes/Changelog.php create mode 100644 src/Data/NewsBoxes/NatarsInfo.php create mode 100644 src/Data/NewsBoxes/ServerInfo.php create mode 100644 src/Data/Units/Hero.php create mode 100644 src/Data/Users/Natars.php create mode 100644 src/Data/Users/Nature.php create mode 100644 src/Data/Validator.php create mode 100755 src/Data/cel.php create mode 100755 src/Data/hero_full.php create mode 100755 src/Database/Database.php delete mode 100644 src/Database/index.php create mode 100644 src/Entity/Attack.php create mode 100644 src/Entity/Building.php create mode 100644 src/Entity/BuildingJob.php create mode 100644 src/Entity/Enforcement.php create mode 100644 src/Entity/FarmList.php create mode 100644 src/Entity/Message.php create mode 100644 src/Entity/Movement.php create mode 100644 src/Entity/NewsBox.php create mode 100644 src/Entity/Oases.php create mode 100644 src/Entity/Offer.php create mode 100644 src/Entity/RaidList.php create mode 100644 src/Entity/Report.php create mode 100644 src/Entity/Research.php create mode 100644 src/Entity/Timer.php create mode 100644 src/Entity/TradeRoute.php create mode 100644 src/Entity/Training.php create mode 100644 src/Entity/TrainingField.php create mode 100644 src/Entity/Trapped.php create mode 100644 src/Entity/Unit.php create mode 100644 src/Entity/Village.php create mode 100644 src/Entity/Villages.php create mode 100644 src/Entity/WorldCell.php delete mode 100644 src/Entity/index.php create mode 100644 src/Enums/BuildingEnums.php create mode 100644 src/Enums/BuildingJobEnums.php create mode 100644 src/Enums/MessageEnums.php create mode 100644 src/Enums/MovementEnums.php create mode 100644 src/Enums/OasesEnums.php create mode 100644 src/Enums/ResearchEnums.php create mode 100644 src/Enums/TribeEnums.php create mode 100644 src/Enums/UnitEnums.php create mode 100644 src/Enums/UserEnums.php create mode 100644 src/Enums/VillageEnums.php create mode 100644 src/Exceptions/InvalidParametersException.php create mode 100644 src/Factory/BuildingsFactory.php create mode 100644 src/Factory/MovementsFactory.php create mode 100644 src/Factory/ResearchesFactory.php create mode 100644 src/Factory/UnitsFactory.php rename {GameEngine => src}/Lang/en.php (91%) create mode 100755 src/Message/Message.php create mode 100644 src/Models/AccountModel.php create mode 100644 src/Models/BuildingModel.php create mode 100644 src/Models/VillageModel.php create mode 100644 src/Mvc/Controller.php create mode 100644 src/Mvc/Model.php create mode 100644 src/Mvc/View.php create mode 100644 src/Natars/Artifacts.php create mode 100755 src/Ranking/Ranking.php create mode 100755 src/Utils/Generator.php create mode 100755 src/Utils/Mailer.php rename {GameEngine => src/Utils}/Multisort.php (50%) create mode 100644 src/Views/AccountView.php create mode 100644 src/Views/BuildingView.php create mode 100644 src/Views/VillageView.php create mode 100755 src/Village/Building.php create mode 100755 src/Village/Technology.php create mode 100755 src/Village/Units.php delete mode 100644 src/index.php rename {Templates => templates}/Ajax/.htaccess (100%) rename {Templates => templates}/Ajax/mapscroll.tpl (100%) rename {Templates => templates}/Ajax/mapscroll2.tpl (100%) rename {Templates => templates}/Ajax/plusmap.tpl (100%) rename {Templates => templates}/Ajax/quest_core.tpl (99%) rename {Templates => templates}/Ajax/quest_core25.tpl (99%) rename {Templates => templates}/Alliance/.htaccess (100%) rename {Templates => templates}/Alliance/Forum/.htaccess (100%) rename {Templates => templates}/Alliance/Forum/forum_1.tpl (100%) rename {Templates => templates}/Alliance/Forum/forum_10.tpl (98%) rename {Templates => templates}/Alliance/Forum/forum_2.tpl (100%) rename {Templates => templates}/Alliance/Forum/forum_3.tpl (100%) rename {Templates => templates}/Alliance/Forum/forum_4.tpl (100%) rename {Templates => templates}/Alliance/Forum/forum_5.tpl (98%) rename {Templates => templates}/Alliance/Forum/forum_6.tpl (100%) rename {Templates => templates}/Alliance/Forum/forum_7.tpl (98%) rename {Templates => templates}/Alliance/Forum/forum_8.tpl (100%) rename {Templates => templates}/Alliance/Forum/forum_9.tpl (98%) rename {gpack/travian_t4/lang/en/t2 => templates/Alliance/Forum}/index.php (100%) rename {Templates => templates}/Alliance/alli_menu.tpl (100%) rename {Templates => templates}/Alliance/alliance.tpl (100%) rename {Templates => templates}/Alliance/allidesc.tpl (100%) rename {Templates => templates}/Alliance/assignpos.tpl (100%) rename {Templates => templates}/Alliance/attack-filtered.tpl (100%) rename {Templates => templates}/Alliance/attacks.tpl (100%) rename {Templates => templates}/Alliance/changename.tpl (96%) rename {Templates => templates}/Alliance/changepos.tpl (100%) rename {Templates => templates}/Alliance/chat.tpl (100%) rename {Templates => templates}/Alliance/chgdiplo.tpl (100%) rename {Templates => templates}/Alliance/forum.tpl (95%) rename {Templates => templates}/Alliance/invite.tpl (96%) rename {Templates => templates}/Alliance/kick.tpl (98%) rename {Templates => templates}/Alliance/linkforum.tpl (96%) rename {Templates => templates}/Alliance/medal.php (100%) rename {Templates => templates}/Alliance/news.tpl (100%) rename {Templates => templates}/Alliance/option.tpl (98%) rename {Templates => templates}/Alliance/overview.tpl (100%) rename {Templates => templates}/Alliance/quitalli.tpl (100%) rename {Templates => templates}/Anleitung/.htaccess (100%) rename {Templates => templates}/Anleitung/0.tpl (97%) rename {Templates => templates}/Anleitung/1.tpl (82%) rename {Templates => templates}/Anleitung/3.tpl (100%) rename {Templates => templates}/Anleitung/4.tpl (100%) rename {Templates/Build => templates/Manual}/.htaccess (100%) rename {Templates => templates}/Manual/0.tpl (100%) rename {Templates => templates}/Manual/00.tpl (100%) rename {Templates => templates}/Manual/11.tpl (85%) rename {Templates => templates}/Manual/110.tpl (85%) rename {Templates => templates}/Manual/111.tpl (84%) rename {Templates => templates}/Manual/112.tpl (84%) rename {Templates => templates}/Manual/113.tpl (84%) rename {Templates => templates}/Manual/114.tpl (85%) rename {Templates => templates}/Manual/115.tpl (85%) rename {Templates => templates}/Manual/116.tpl (84%) rename {Templates => templates}/Manual/117.tpl (84%) rename {Templates => templates}/Manual/118.tpl (86%) rename {Templates => templates}/Manual/119.tpl (85%) rename {Templates => templates}/Manual/12.tpl (84%) rename {Templates => templates}/Manual/120.tpl (85%) rename {Templates => templates}/Manual/121.tpl (84%) rename {Templates => templates}/Manual/122.tpl (84%) rename {Templates => templates}/Manual/123.tpl (85%) rename {Templates => templates}/Manual/124.tpl (85%) rename {Templates => templates}/Manual/125.tpl (84%) rename {Templates => templates}/Manual/126.tpl (85%) rename {Templates => templates}/Manual/127.tpl (84%) rename {Templates => templates}/Manual/128.tpl (86%) rename {Templates => templates}/Manual/129.tpl (85%) rename {Templates => templates}/Manual/13.tpl (84%) rename {Templates => templates}/Manual/130.tpl (85%) rename {Templates => templates}/Manual/131.tpl (84%) rename {Templates => templates}/Manual/134.tpl (85%) rename {Templates => templates}/Manual/14.tpl (85%) rename {Templates => templates}/Manual/141.tpl (84%) rename {Templates => templates}/Manual/142.tpl (85%) rename {Templates => templates}/Manual/143.tpl (85%) rename {Templates => templates}/Manual/145.tpl (85%) rename {Templates => templates}/Manual/146.tpl (87%) rename {Templates => templates}/Manual/147.tpl (85%) rename {Templates => templates}/Manual/148.tpl (85%) rename {Templates => templates}/Manual/149.tpl (85%) rename {Templates => templates}/Manual/15.tpl (85%) rename {Templates => templates}/Manual/150.tpl (85%) rename {Templates => templates}/Manual/151.tpl (84%) rename {Templates => templates}/Manual/152.tpl (84%) rename {Templates => templates}/Manual/153.tpl (84%) rename {Templates => templates}/Manual/154.tpl (84%) rename {Templates => templates}/Manual/155.tpl (84%) rename {Templates => templates}/Manual/156.tpl (84%) rename {Templates => templates}/Manual/157.tpl (84%) rename {Templates => templates}/Manual/158.tpl (84%) rename {Templates => templates}/Manual/159.tpl (84%) rename {Templates => templates}/Manual/16.tpl (85%) rename {Templates => templates}/Manual/160.tpl (84%) rename {Templates => templates}/Manual/17.tpl (85%) rename {Templates => templates}/Manual/18.tpl (87%) rename {Templates => templates}/Manual/19.tpl (85%) rename {Templates => templates}/Manual/21.tpl (100%) rename {Templates => templates}/Manual/22.tpl (100%) rename {Templates => templates}/Manual/23.tpl (100%) rename {Templates => templates}/Manual/24.tpl (100%) rename {Templates => templates}/Manual/25.tpl (100%) rename {Templates => templates}/Manual/31.tpl (100%) rename {Templates => templates}/Manual/32.tpl (100%) rename {Templates => templates}/Manual/33.tpl (100%) rename {Templates => templates}/Manual/4.tpl (100%) rename {Templates => templates}/Manual/41.tpl (71%) rename {Templates => templates}/Manual/410.tpl (75%) rename {Templates => templates}/Manual/411.tpl (75%) rename {Templates => templates}/Manual/412.tpl (77%) rename {Templates => templates}/Manual/413.tpl (76%) rename {Templates => templates}/Manual/414.tpl (77%) rename {Templates => templates}/Manual/415.tpl (75%) rename {Templates => templates}/Manual/416.tpl (76%) rename {Templates => templates}/Manual/417.tpl (73%) rename {Templates => templates}/Manual/418.tpl (79%) rename {Templates => templates}/Manual/419.tpl (76%) rename {Templates => templates}/Manual/42.tpl (67%) rename {Templates => templates}/Manual/420.tpl (75%) rename {Templates => templates}/Manual/421.tpl (76%) rename {Templates => templates}/Manual/422.tpl (76%) rename {Templates => templates}/Manual/423.tpl (78%) rename {Templates => templates}/Manual/424.tpl (75%) rename {Templates => templates}/Manual/425.tpl (77%) rename {Templates => templates}/Manual/426.tpl (81%) rename {Templates => templates}/Manual/427.tpl (78%) rename {Templates => templates}/Manual/428.tpl (77%) rename {Templates => templates}/Manual/429.tpl (76%) rename {Templates => templates}/Manual/43.tpl (75%) rename {Templates => templates}/Manual/430.tpl (76%) rename {Templates => templates}/Manual/431.tpl (77%) rename {Templates => templates}/Manual/432.tpl (78%) rename {Templates => templates}/Manual/433.tpl (80%) rename {Templates => templates}/Manual/434.tpl (78%) rename {Templates => templates}/Manual/435.tpl (80%) rename {Templates => templates}/Manual/436.tpl (83%) rename {Templates => templates}/Manual/437.tpl (80%) rename {Templates => templates}/Manual/438.tpl (79%) rename {Templates => templates}/Manual/439.tpl (74%) rename {Templates => templates}/Manual/44.tpl (75%) rename {Templates => templates}/Manual/440.tpl (80%) rename {Templates => templates}/Manual/441.tpl (80%) rename {Templates => templates}/Manual/442.tpl (77%) rename {Templates => templates}/Manual/45.tpl (76%) rename {Templates => templates}/Manual/46.tpl (76%) rename {Templates => templates}/Manual/47.tpl (76%) rename {Templates => templates}/Manual/48.tpl (75%) rename {Templates => templates}/Manual/49.tpl (77%) rename {Templates => templates}/Manual/52.tpl (100%) rename {Templates => templates}/Manual/60.tpl (100%) rename {Templates => templates}/Manual/61.tpl (100%) rename {Templates => templates}/Manual/62.tpl (100%) rename {Templates => templates}/Manual/63.tpl (100%) rename {Templates => templates}/Manual/64.tpl (100%) rename {Templates => templates}/Manual/67.tpl (100%) rename {Templates => templates}/Manual/68.tpl (100%) rename {Templates => templates}/Manual/69.tpl (100%) rename {Templates => templates}/Manual/direct.tpl (100%) rename {gpack/travian_t4/lang => templates/Manual}/index.php (100%) rename {Templates => templates}/Manual/medal.tpl (100%) rename {Templates/Build/avaliable => templates/Map}/.htaccess (100%) rename {Templates => templates}/Map/mapview.tpl (100%) rename {Templates => templates}/Map/mapviewlarge.tpl (100%) rename {Templates => templates}/Map/vilview.tpl (98%) rename {Templates/Build/soon => templates/Message}/.htaccess (100%) rename {Templates => templates}/Message/archive.tpl (100%) rename {Templates => templates}/Message/inbox.tpl (100%) rename {Templates => templates}/Message/menu.tpl (100%) rename {Templates => templates}/Message/notes.tpl (100%) rename {Templates => templates}/Message/read.tpl (100%) rename {Templates => templates}/Message/sent.tpl (100%) rename {Templates => templates}/Message/write.tpl (97%) rename {Templates/Manual => templates/Notice}/.htaccess (100%) rename {Templates => templates}/Notice/1.tpl (95%) rename {Templates => templates}/Notice/10.tpl (84%) rename {Templates => templates}/Notice/15.tpl (100%) rename {Templates => templates}/Notice/22.tpl (100%) rename {Templates => templates}/Notice/3.tpl (100%) rename {Templates => templates}/Notice/8.tpl (94%) rename {Templates => templates}/Notice/9.tpl (100%) rename {Templates => templates}/Notice/all.tpl (100%) rename {Templates/Map => templates/Plus}/.htaccess (100%) rename {Templates => templates}/Plus/1.tpl (100%) rename {Templates => templates}/Plus/10.tpl (100%) rename {Templates => templates}/Plus/11.tpl (100%) rename {Templates => templates}/Plus/110.tpl (100%) rename {Templates => templates}/Plus/111.tpl (100%) rename {Templates => templates}/Plus/112.tpl (100%) rename {Templates => templates}/Plus/113.tpl (100%) rename {Templates => templates}/Plus/12.tpl (100%) rename {Templates => templates}/Plus/13.tpl (89%) rename {Templates => templates}/Plus/14.tpl (100%) rename {Templates => templates}/Plus/15.tpl (100%) rename {Templates => templates}/Plus/2.tpl (100%) rename {Templates => templates}/Plus/3.tpl (97%) rename {Templates => templates}/Plus/3110.tpl (100%) rename {Templates => templates}/Plus/4.tpl (100%) rename {Templates => templates}/Plus/5.tpl (100%) rename {Templates => templates}/Plus/7.tpl (100%) rename {Templates => templates}/Plus/8.tpl (100%) rename {Templates => templates}/Plus/9.tpl (100%) rename {Templates => templates}/Plus/getplus.tpl (100%) rename {Templates => templates}/Plus/invite.tpl (100%) rename {Templates => templates}/Plus/pmenu.tpl (100%) rename {Templates/Message => templates/Profile}/.htaccess (100%) rename {Templates => templates}/Profile/account.tpl (98%) rename {Templates => templates}/Profile/graphic.tpl (97%) rename {Templates => templates}/Profile/medal.php (100%) rename {Templates => templates}/Profile/menu.tpl (100%) rename {Templates => templates}/Profile/menu2.tpl (100%) rename {Templates => templates}/Profile/notfound.tpl (100%) rename {Templates => templates}/Profile/overview.tpl (99%) rename {Templates => templates}/Profile/preference.tpl (100%) rename {Templates => templates}/Profile/profile.tpl (100%) rename {Templates => templates}/Profile/special.tpl (100%) rename {Templates => templates}/Profile/vacation.tpl (100%) rename {Templates/News => templates/Ranking}/.htaccess (100%) rename {Templates => templates}/Ranking/_notes/dwsync.xml (100%) rename {Templates => templates}/Ranking/alliance.tpl (100%) rename {Templates => templates}/Ranking/alliance_attack.tpl (100%) rename {Templates => templates}/Ranking/alliance_defend.tpl (100%) rename {Templates => templates}/Ranking/ally_top10.tpl (100%) rename {Templates => templates}/Ranking/general.tpl (100%) rename {Templates => templates}/Ranking/heroes.tpl (100%) rename {Templates => templates}/Ranking/overview.tpl (100%) rename {Templates => templates}/Ranking/player_1.tpl (100%) rename {Templates => templates}/Ranking/player_2.tpl (100%) rename {Templates => templates}/Ranking/player_3.tpl (100%) rename {Templates => templates}/Ranking/player_attack.tpl (100%) rename {Templates => templates}/Ranking/player_defend.tpl (100%) rename {Templates => templates}/Ranking/player_top10.tpl (100%) rename {Templates => templates}/Ranking/ranksearch.tpl (97%) rename {Templates => templates}/Ranking/villages.tpl (100%) rename {Templates => templates}/Ranking/ww.tpl (100%) rename {Templates/News/home => templates/Tutorial}/.htaccess (100%) rename {Templates => templates}/Tutorial/1.tpl (100%) rename {Templates => templates}/Tutorial/2.tpl (100%) rename {Templates => templates}/Tutorial/3.tpl (100%) rename {Templates => templates}/Tutorial/4.tpl (100%) rename {Templates => templates}/Tutorial/5.tpl (100%) create mode 100644 templates/account/activate.tpl create mode 100644 templates/account/activation/activated.tpl create mode 100644 templates/account/activation/delete.tpl create mode 100644 templates/account/activation/needToActivate.tpl create mode 100644 templates/account/anmelden.tpl create mode 100644 templates/account/login.tpl create mode 100644 templates/account/logout.tpl create mode 100644 templates/account/password.tpl create mode 100644 templates/base.tpl create mode 100644 templates/base/footer.tpl create mode 100644 templates/base/head.tpl create mode 100644 templates/base/header.tpl create mode 100644 templates/base/indexnews.tpl create mode 100644 templates/base/links.tpl create mode 100644 templates/base/menu.tpl create mode 100644 templates/base/natars.tpl create mode 100644 templates/base/news.tpl rename {Templates => templates/base}/quest.tpl (100%) rename {Templates => templates/base}/rules.tpl (100%) rename {Templates => templates/base}/support.tpl (100%) create mode 100644 templates/base/time.tpl create mode 100644 templates/baseNotLoggedIn.tpl create mode 100644 templates/error.tpl rename {Templates/Notice => templates/goldClub}/.htaccess (100%) create mode 100644 templates/goldClub/farmList.tpl create mode 100644 templates/goldClub/farmListAdd.tpl create mode 100644 templates/goldClub/farmListAddRaid.tpl create mode 100644 templates/goldClub/farmListEditRaid.tpl create mode 100644 templates/goldClub/farmListRaid.tpl create mode 100644 templates/goldClub/unitsList.tpl rename {Templates/Plus => templates/news}/.htaccess (100%) rename {Templates/Profile => templates/news/home}/.htaccess (100%) rename {Templates/News => templates/news}/home/home1.tpl (100%) rename {Templates/News => templates/news}/home/home2.tpl (100%) rename {Templates/News => templates/news}/home/home3.tpl (100%) rename {gpack/travian_t4/modules => templates/news/home}/index.php (100%) create mode 100644 templates/news/newsbox1.tpl create mode 100644 templates/news/newsbox2.tpl rename {Templates/News => templates/news}/newsbox3.tpl (50%) rename {Templates/Ranking => templates/sendUnits}/.htaccess (100%) rename {Templates/a2b => templates/sendUnits}/attack.tpl (99%) rename Templates/a2b/newdorf.tpl => templates/sendUnits/newVillage.tpl (83%) create mode 100644 templates/sendUnits/search.tpl rename Templates/a2b/sendback.tpl => templates/sendUnits/sendBack.tpl (98%) create mode 100644 templates/sendUnits/units.tpl rename {Templates/Simulator => templates/simulator}/.htaccess (100%) rename {Templates/Simulator => templates/simulator}/att_1.tpl (100%) rename {Templates/Simulator => templates/simulator}/att_2.tpl (100%) rename {Templates/Simulator => templates/simulator}/att_3.tpl (100%) rename {Templates/Simulator => templates/simulator}/def_1.tpl (100%) rename {Templates/Simulator => templates/simulator}/def_2.tpl (100%) rename {Templates/Simulator => templates/simulator}/def_3.tpl (100%) rename {Templates/Simulator => templates/simulator}/def_4.tpl (100%) rename {Templates/Simulator => templates/simulator}/def_end.tpl (100%) rename {Templates/Simulator => templates/simulator}/res_1.tpl (100%) rename {Templates/Simulator => templates/simulator}/res_2.tpl (100%) rename {Templates/Simulator => templates/simulator}/res_3.tpl (100%) rename {Templates/Simulator => templates/simulator}/res_4.tpl (100%) rename {Templates/Simulator => templates/simulator}/res_a1.tpl (100%) rename {Templates/Simulator => templates/simulator}/res_a2.tpl (100%) rename {Templates/Simulator => templates/simulator}/res_a3.tpl (100%) rename {Templates/Simulator => templates/simulator}/res_d1.tpl (100%) rename {Templates/Simulator => templates/simulator}/res_d2.tpl (100%) rename {Templates/Simulator => templates/simulator}/res_d3.tpl (100%) rename {Templates/Simulator => templates/simulator}/res_d4.tpl (100%) rename {Templates/Simulator => templates/simulator}/return.tpl (100%) create mode 100644 templates/success.tpl create mode 100644 templates/text.tpl rename {Templates => templates}/text_format.tpl (100%) create mode 100644 templates/version.tpl create mode 100644 templates/village/build.tpl create mode 100644 templates/village/building.tpl rename {Templates/Tutorial => templates/village/buildings}/.htaccess (100%) create mode 100644 templates/village/buildings/1.tpl create mode 100644 templates/village/buildings/10.tpl create mode 100644 templates/village/buildings/11.tpl rename {Templates/Build => templates/village/buildings}/12.tpl (100%) rename {Templates/Build => templates/village/buildings}/12_upgrades.tpl (97%) rename {Templates/Build => templates/village/buildings}/13.tpl (100%) rename {Templates/Build => templates/village/buildings}/13_upgrades.tpl (97%) create mode 100644 templates/village/buildings/14.tpl create mode 100644 templates/village/buildings/15.tpl create mode 100644 templates/village/buildings/16.tpl create mode 100644 templates/village/buildings/17.tpl create mode 100644 templates/village/buildings/17_1.tpl create mode 100644 templates/village/buildings/17_2.tpl create mode 100644 templates/village/buildings/17_3.tpl create mode 100644 templates/village/buildings/17_4.tpl create mode 100644 templates/village/buildings/17_create.tpl create mode 100644 templates/village/buildings/17_edit.tpl create mode 100644 templates/village/buildings/17_menu.tpl rename {Templates/Build => templates/village/buildings}/18.tpl (100%) rename {Templates/Build => templates/village/buildings}/18_create.tpl (96%) create mode 100644 templates/village/buildings/19.tpl create mode 100644 templates/village/buildings/2.tpl create mode 100644 templates/village/buildings/20.tpl create mode 100644 templates/village/buildings/21.tpl create mode 100644 templates/village/buildings/22.tpl create mode 100644 templates/village/buildings/23.tpl rename {Templates/Build => templates/village/buildings}/24.tpl (100%) rename {Templates/Build => templates/village/buildings}/24_1.tpl (100%) rename {Templates/Build => templates/village/buildings}/24_2.tpl (86%) create mode 100644 templates/village/buildings/25.tpl create mode 100644 templates/village/buildings/26.tpl rename {Templates/Build => templates/village/buildings}/27.tpl (100%) rename {Templates/Build => templates/village/buildings}/27_1.tpl (100%) rename {Templates/Build => templates/village/buildings}/27_2.tpl (100%) rename {Templates/Build => templates/village/buildings}/27_3.tpl (100%) rename {Templates/Build => templates/village/buildings}/27_menu.tpl (100%) rename {Templates/Build => templates/village/buildings}/27_show.tpl (100%) create mode 100644 templates/village/buildings/28.tpl create mode 100644 templates/village/buildings/29.tpl create mode 100644 templates/village/buildings/3.tpl create mode 100644 templates/village/buildings/30.tpl create mode 100644 templates/village/buildings/31.tpl create mode 100644 templates/village/buildings/32.tpl create mode 100644 templates/village/buildings/33.tpl create mode 100644 templates/village/buildings/34.tpl create mode 100644 templates/village/buildings/35.tpl create mode 100644 templates/village/buildings/36.tpl rename {Templates/Build => templates/village/buildings}/37.tpl (100%) rename {Templates/Build => templates/village/buildings}/37_hero.tpl (100%) rename {Templates/Build => templates/village/buildings}/37_land.tpl (65%) rename {Templates/Build => templates/village/buildings}/37_revive.tpl (90%) rename {Templates/Build => templates/village/buildings}/37_train.tpl (100%) create mode 100644 templates/village/buildings/38.tpl create mode 100644 templates/village/buildings/39.tpl create mode 100644 templates/village/buildings/4.tpl create mode 100644 templates/village/buildings/40.tpl create mode 100644 templates/village/buildings/41.tpl create mode 100644 templates/village/buildings/42.tpl create mode 100644 templates/village/buildings/5.tpl create mode 100644 templates/village/buildings/6.tpl create mode 100644 templates/village/buildings/7.tpl create mode 100644 templates/village/buildings/8.tpl create mode 100644 templates/village/buildings/9.tpl rename Templates/Build/avaliable.tpl => templates/village/buildings/available.tpl (80%) rename {Templates/a2b => templates/village/buildings/avaliable}/.htaccess (100%) rename {Templates/Build => templates/village/buildings}/avaliable/academy.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/armoury.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/availupgrade.tpl (90%) rename {Templates/Build => templates/village/buildings}/avaliable/bakery.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/barracks.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/blacksmith.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/brewery.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/brickyard.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/citywall.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/cranny.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/earthwall.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/embassy.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/grainmill.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/granary.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/greatbarracks.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/greatgranary.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/greatstable.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/greatwarehouse.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/greatworkshop.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/hero.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/horsedrinking.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/ironfoundry.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/mainbuilding.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/marketplace.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/palace.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/palisade.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/rallypoint.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/residence.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/sawmill.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/stable.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/stonemason.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/townhall.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/tradeoffice.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/trapper.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/treasury.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/tsquare.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/warehouse.tpl (100%) rename {Templates/Build => templates/village/buildings}/avaliable/workshop.tpl (100%) create mode 100644 templates/village/buildings/base.tpl create mode 100644 templates/village/buildings/colonizers/base.tpl create mode 100644 templates/village/buildings/colonizers/changeCapital.tpl create mode 100644 templates/village/buildings/colonizers/culturePoints.tpl create mode 100644 templates/village/buildings/colonizers/expansion.tpl create mode 100644 templates/village/buildings/colonizers/loyalty.tpl create mode 100644 templates/village/buildings/colonizers/menu.tpl create mode 100644 templates/village/buildings/colonizers/train.tpl create mode 100644 templates/village/buildings/demolition.tpl create mode 100644 templates/village/buildings/rallyPoint/goldClub.tpl create mode 100644 templates/village/buildings/rallyPoint/menu.tpl create mode 100644 templates/village/buildings/rallyPoint/movements.tpl create mode 100644 templates/village/buildings/rallyPoint/unitsEvasion.tpl create mode 100644 templates/village/buildings/rallyPoint/unitsTable.tpl create mode 100644 templates/village/buildings/research.tpl create mode 100644 templates/village/buildings/showBonus.tpl rename {Templates/activate => templates/village/buildings/soon}/.htaccess (100%) rename {Templates/Build => templates/village/buildings}/soon/academy.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/armoury.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/bakery.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/barracks.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/blacksmith.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/brewery.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/brickyard.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/grainmill.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/greatbarracks.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/greatgranary.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/greatstable.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/greatwarehouse.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/greatworkshop.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/hero.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/horsedrinking.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/ironfoundry.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/marketplace.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/palace.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/residence.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/sawmill.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/stable.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/stonemason.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/townhall.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/tradeoffice.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/trapper.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/treasury.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/tsquare.tpl (100%) rename {Templates/Build => templates/village/buildings}/soon/workshop.tpl (100%) create mode 100644 templates/village/buildings/trade.tpl create mode 100644 templates/village/buildings/trainingFields/inTraining.tpl create mode 100644 templates/village/buildings/trainingFields/train.tpl create mode 100644 templates/village/buildings/upgrade.tpl create mode 100644 templates/village/dorf1.tpl create mode 100644 templates/village/dorf2.tpl create mode 100644 templates/village/dorf3.tpl rename {Templates => templates/village}/dorf3/.htaccess (100%) create mode 100644 templates/village/dorf3/1.tpl create mode 100644 templates/village/dorf3/2.tpl create mode 100644 templates/village/dorf3/3.tpl create mode 100644 templates/village/dorf3/4.tpl create mode 100644 templates/village/dorf3/5.tpl create mode 100644 templates/village/dorf3/menu.tpl create mode 100644 templates/village/dorf3/noplus.tpl create mode 100644 templates/village/field.tpl create mode 100644 templates/village/movement.tpl create mode 100644 templates/village/multivillage.tpl create mode 100644 templates/village/production.tpl create mode 100644 templates/village/res.tpl create mode 100644 templates/village/units.tpl create mode 100644 templates/village/village.tpl delete mode 100644 unx.js create mode 100644 var/.gitignore rename {GameEngine/Notes => var/notes}/DO NOT REMOVE THIS FOLDER.txt (100%) rename {img/admin/b => var/notes}/index.php (100%) mode change 100644 => 100755 rename GameEngine/Prevention/empty.txt => var/prevention/activateArtifacts.txt (100%) mode change 100755 => 100644 rename GameEngine/Prevention/lock.lock => var/prevention/buildComplete.txt (100%) mode change 100755 => 100644 create mode 100644 var/prevention/celebrationComplete.txt create mode 100644 var/prevention/clearDeleting.txt create mode 100644 var/prevention/culturePoints.txt create mode 100644 var/prevention/demolitionComplete.txt create mode 100755 var/prevention/empty.txt rename {img/admin/icon => var/prevention}/index.php (100%) mode change 100644 => 100755 create mode 100755 var/prevention/lock.lock create mode 100644 var/prevention/loyaltyRegeneration.txt create mode 100644 var/prevention/marketComplete.txt create mode 100644 var/prevention/researchComplete.txt create mode 100644 var/prevention/returnunitsComplete.txt create mode 100644 var/prevention/sendSettlersComplete.txt create mode 100644 var/prevention/sendUnitsComplete.txt create mode 100644 var/prevention/sendreinfunitsComplete.txt create mode 100644 var/prevention/spawnNatars.txt create mode 100644 var/prevention/spawnWWBuildingPlans.txt create mode 100644 var/prevention/spawnWWVillages.txt create mode 100644 var/prevention/starvation.txt create mode 100644 var/prevention/trainingComplete.txt create mode 100644 var/prevention/updateHero.txt create mode 100644 vendor/autoload.php create mode 100644 vendor/composer/ClassLoader.php create mode 100644 vendor/composer/LICENSE create mode 100644 vendor/composer/autoload_classmap.php create mode 100644 vendor/composer/autoload_files.php create mode 100644 vendor/composer/autoload_namespaces.php create mode 100644 vendor/composer/autoload_psr4.php create mode 100644 vendor/composer/autoload_real.php create mode 100644 vendor/composer/autoload_static.php create mode 100644 vendor/composer/installed.json create mode 100644 vendor/smarty/smarty/COMPOSER_RELEASE_NOTES.txt create mode 100644 vendor/smarty/smarty/INHERITANCE_RELEASE_NOTES.txt create mode 100644 vendor/smarty/smarty/LICENSE create mode 100644 vendor/smarty/smarty/NEW_FEATURES.txt create mode 100644 vendor/smarty/smarty/README create mode 100644 vendor/smarty/smarty/README.md create mode 100644 vendor/smarty/smarty/SMARTY_2_BC_NOTES.txt create mode 100644 vendor/smarty/smarty/SMARTY_3.0_BC_NOTES.txt create mode 100644 vendor/smarty/smarty/SMARTY_3.1_NOTES.txt create mode 100644 vendor/smarty/smarty/change_log.txt create mode 100644 vendor/smarty/smarty/composer.json create mode 100644 vendor/smarty/smarty/demo/configs/test.conf create mode 100644 vendor/smarty/smarty/demo/index.php create mode 100644 vendor/smarty/smarty/demo/plugins/cacheresource.apc.php create mode 100644 vendor/smarty/smarty/demo/plugins/cacheresource.memcache.php create mode 100644 vendor/smarty/smarty/demo/plugins/cacheresource.mysql.php create mode 100644 vendor/smarty/smarty/demo/plugins/cacheresource.pdo.php create mode 100644 vendor/smarty/smarty/demo/plugins/cacheresource.pdo_gzip.php create mode 100644 vendor/smarty/smarty/demo/plugins/resource.extendsall.php create mode 100644 vendor/smarty/smarty/demo/plugins/resource.mysql.php create mode 100644 vendor/smarty/smarty/demo/plugins/resource.mysqls.php create mode 100644 vendor/smarty/smarty/demo/templates/footer.tpl create mode 100644 vendor/smarty/smarty/demo/templates/header.tpl create mode 100644 vendor/smarty/smarty/demo/templates/index.tpl create mode 100644 vendor/smarty/smarty/error_reporting.ini create mode 100644 vendor/smarty/smarty/libs/Autoloader.php create mode 100644 vendor/smarty/smarty/libs/Smarty.class.php create mode 100644 vendor/smarty/smarty/libs/SmartyBC.class.php create mode 100644 vendor/smarty/smarty/libs/bootstrap.php create mode 100644 vendor/smarty/smarty/libs/debug.tpl create mode 100644 vendor/smarty/smarty/libs/libs - Verknüpfung.lnk create mode 100644 vendor/smarty/smarty/libs/plugins/block.textformat.php create mode 100644 vendor/smarty/smarty/libs/plugins/function.counter.php create mode 100644 vendor/smarty/smarty/libs/plugins/function.cycle.php create mode 100644 vendor/smarty/smarty/libs/plugins/function.fetch.php create mode 100644 vendor/smarty/smarty/libs/plugins/function.html_checkboxes.php create mode 100644 vendor/smarty/smarty/libs/plugins/function.html_image.php create mode 100644 vendor/smarty/smarty/libs/plugins/function.html_options.php create mode 100644 vendor/smarty/smarty/libs/plugins/function.html_radios.php create mode 100644 vendor/smarty/smarty/libs/plugins/function.html_select_date.php create mode 100644 vendor/smarty/smarty/libs/plugins/function.html_select_time.php create mode 100644 vendor/smarty/smarty/libs/plugins/function.html_table.php create mode 100644 vendor/smarty/smarty/libs/plugins/function.mailto.php create mode 100644 vendor/smarty/smarty/libs/plugins/function.math.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifier.capitalize.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifier.date_format.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifier.debug_print_var.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifier.escape.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifier.mb_wordwrap.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifier.regex_replace.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifier.replace.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifier.spacify.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifier.truncate.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.cat.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.count_characters.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.count_paragraphs.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.count_sentences.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.count_words.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.default.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.escape.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.from_charset.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.indent.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.lower.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.noprint.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.string_format.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.strip.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.strip_tags.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.to_charset.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.unescape.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.upper.php create mode 100644 vendor/smarty/smarty/libs/plugins/modifiercompiler.wordwrap.php create mode 100644 vendor/smarty/smarty/libs/plugins/outputfilter.trimwhitespace.php create mode 100644 vendor/smarty/smarty/libs/plugins/shared.escape_special_chars.php create mode 100644 vendor/smarty/smarty/libs/plugins/shared.literal_compiler_param.php create mode 100644 vendor/smarty/smarty/libs/plugins/shared.make_timestamp.php create mode 100644 vendor/smarty/smarty/libs/plugins/shared.mb_str_replace.php create mode 100644 vendor/smarty/smarty/libs/plugins/shared.mb_unicode.php create mode 100644 vendor/smarty/smarty/libs/plugins/variablefilter.htmlspecialchars.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_cacheresource.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_cacheresource_custom.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_cacheresource_keyvaluestore.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_data.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_block.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_cacheresource_file.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_append.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_assign.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_block.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_block_child.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_block_parent.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_break.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_call.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_capture.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_child.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_config_load.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_continue.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_debug.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_eval.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_extends.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_for.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_foreach.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_function.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_if.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_include.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_include_php.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_insert.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_ldelim.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_make_nocache.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_nocache.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_parent.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_block_plugin.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_foreachsection.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_function_plugin.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_modifier.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_object_block_function.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_object_function.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_php.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_registered_block.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_registered_function.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_special_variable.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_rdelim.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_section.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_setfilter.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_shared_inheritance.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_while.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_compilebase.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_config_file_compiler.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_configfilelexer.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_configfileparser.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_data.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_debug.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_errorhandler.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_extension_handler.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_addautoloadfilters.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_adddefaultmodifiers.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_append.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_appendbyref.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_assignbyref.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_assignglobal.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearallassign.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearallcache.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearassign.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearcache.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearcompiledtemplate.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_clearconfig.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_compileallconfig.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_compilealltemplates.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_configload.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_createdata.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getautoloadfilters.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getconfigvariable.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getconfigvars.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getdebugtemplate.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getdefaultmodifiers.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getglobal.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getregisteredobject.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_getstreamvariable.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_gettags.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_gettemplatevars.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_literals.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_loadfilter.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_loadplugin.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_mustcompile.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registercacheresource.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerclass.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerdefaultconfighandler.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerdefaultpluginhandler.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerdefaulttemplatehandler.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerfilter.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerobject.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerplugin.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_registerresource.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_setautoloadfilters.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_setdebugtemplate.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_setdefaultmodifiers.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unloadfilter.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregistercacheresource.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterfilter.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterobject.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterplugin.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_unregisterresource.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_nocache_insert.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree_code.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree_dq.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree_dqcontent.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree_tag.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree_template.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_parsetree_text.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_resource_eval.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_resource_extends.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_resource_file.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_resource_php.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_resource_registered.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_resource_stream.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_resource_string.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_cachemodify.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_cacheresourcefile.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_capture.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_codeframe.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_filterhandler.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_foreach.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_getincludepath.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_inheritance.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_make_nocache.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_tplfunction.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_updatecache.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_updatescope.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_runtime_writefile.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_smartytemplatecompiler.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatelexer.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_testinstall.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_internal_undefined.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_resource.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_resource_custom.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_resource_recompiled.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_resource_uncompiled.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_security.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_template_cached.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_template_config.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_template_source.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_undefined_variable.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smarty_variable.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smartycompilerexception.php create mode 100644 vendor/smarty/smarty/libs/sysplugins/smartyexception.php diff --git a/.gitignore b/.gitignore index b9944138..ea41d72a 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,6 @@ GameEngine/Admin/Mods/constant_format.tpl # These 2 files change frequently on the server but not in the repository code. Templates/text.tpl var/log/access.log +/test.php +/templates_c/ +/composer.phar diff --git a/AC_OETags.js b/AC_OETags.js deleted file mode 100644 index a19118c0..00000000 --- a/AC_OETags.js +++ /dev/null @@ -1,141 +0,0 @@ -// Flash Player Version Detection - Rev 1.6 -// Detect Client Browser type -// Copyright(c) 2005-2006 Adobe Macromedia Software, LLC. All rights reserved. -var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false; -var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false; -var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false; - -function ControlVersion() -{ - var version; - var axo; - var e; - - // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry - - try { - // version will be set for 7.X or greater players - axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); - version = axo.GetVariable("$version"); - } catch (e) { - } - - if (!version) - { - try { - // version will be set for 6.X players only - axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); - - // installed player is some revision of 6.0 - // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29, - // so we have to be careful. - - // default to the first public version - version = "WIN 6,0,21,0"; - - // throws if AllowScripAccess does not exist (introduced in 6.0r47) - axo.AllowScriptAccess = "always"; - - // safe to call for 6.0r47 or greater - version = axo.GetVariable("$version"); - - } catch (e) { - } - } - - if (!version) - { - try { - // version will be set for 4.X or 5.X player - axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3"); - version = axo.GetVariable("$version"); - } catch (e) { - } - } - - if (!version) - { - try { - // version will be set for 3.X player - axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3"); - version = "WIN 3,0,18,0"; - } catch (e) { - } - } - - if (!version) - { - try { - // version will be set for 2.X player - axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); - version = "WIN 2,0,0,11"; - } catch (e) { - version = -1; - } - } - - return version; -} - -// JavaScript helper required to detect Flash Player PlugIn version information -function GetSwfVer(id){ - // NS/Opera version >= 3 check for Flash plugin in plugin array - var flashVer = -1; - - if (navigator.plugins != null && navigator.plugins.length > 0) { - if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) { - var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : ""; - var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description; - var descArray = flashDescription.split(" "); - var tempArrayMajor = descArray[2].split("."); - var versionMajor = tempArrayMajor[0]; - var versionMinor = tempArrayMajor[1]; - var versionRevision = descArray[3]; - if (versionRevision == "") { - versionRevision = descArray[4]; - } - if (versionRevision[0] == "d") { - versionRevision = versionRevision.substring(1); - } else if (versionRevision[0] == "r") { - versionRevision = versionRevision.substring(1); - if (versionRevision.indexOf("d") > 0) { - versionRevision = versionRevision.substring(0, versionRevision.indexOf("d")); - } - } - var flashVer = versionMajor + "." + versionMinor + "." + versionRevision; - } - } - // MSN/WebTV 2.6 supports Flash 4 - else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4; - // WebTV 2.5 supports Flash 3 - else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3; - // older WebTV supports Flash 2 - else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2; - else if ( isIE && isWin && !isOpera ) { - flashVer = ControlVersion(); - } - - if(flashVer != -1) { - writeFlashTags(id); - } - - return flashVer; -} - - -function writeFlashTags(id) -{ - var swfFilename = "stats.swf"; - var swfUrlWithGetParameters = swfFilename + "?id=" + id; - - document.writeln("
"); - document.writeln(""); - document.writeln(""); - document.writeln(""); - document.writeln(""); - document.writeln(" "); - document.writeln("
"); -} \ No newline at end of file diff --git a/Admin/Templates/addABTroops.tpl b/Admin/Templates/addABTroops.tpl index caea46d3..7b130465 100644 --- a/Admin/Templates/addABTroops.tpl +++ b/Admin/Templates/addABTroops.tpl @@ -52,8 +52,8 @@ if(isset($id)) - - + + diff --git a/Admin/Templates/msg.tpl b/Admin/Templates/msg.tpl index 73127c79..c3072b84 100644 --- a/Admin/Templates/msg.tpl +++ b/Admin/Templates/msg.tpl @@ -12,7 +12,7 @@ include_once("../GameEngine/Generator.php"); include_once("../GameEngine/Technology.php"); include_once("../GameEngine/Message.php"); -if(isset($_GET['nid']) && is_numeric($_GET['nid'])) $msg = $database->getMessage($_GET['nid'], 3); +if(isset($_GET['nid']) && is_numeric($_GET['nid'])) $msg = $database->getMessage($_GET['nid'], 3, $session->access, $session->uid); else { $sql = "SELECT * FROM " . TB_PREFIX . "mdata ORDER BY time DESC "; diff --git a/Admin/Templates/report/0.tpl b/Admin/Templates/report/0.tpl index c02ac025..1e9a4d6e 100644 --- a/Admin/Templates/report/0.tpl +++ b/Admin/Templates/report/0.tpl @@ -122,7 +122,7 @@ error_reporting(0); Bounty
- Lumber | Clay | Iron | Crop
carry + {$smarty.const.LUMBER} | {$smarty.const.CLAY} | {$smarty.const.IRON} | {$smarty.const.CROP}
carry
diff --git a/Admin/Templates/report/1.tpl b/Admin/Templates/report/1.tpl index 75444a84..f9d85130 100644 --- a/Admin/Templates/report/1.tpl +++ b/Admin/Templates/report/1.tpl @@ -82,7 +82,7 @@ if ($dataarray[143]!='' and $dataarray[144]!=''){ //chief Bounty -
Lumber | Clay | Iron | Crop
carry
+
{$smarty.const.LUMBER} | {$smarty.const.CLAY} | {$smarty.const.IRON} | {$smarty.const.CROP}
carry
Bounty
- Lumber | Clay | Iron | Crop
carry + {$smarty.const.LUMBER} | {$smarty.const.CLAY} | {$smarty.const.IRON} | {$smarty.const.CROP}
carry
diff --git a/GameEngine/Account.php b/GameEngine/Account.php deleted file mode 100755 index 3e66f78b..00000000 --- a/GameEngine/Account.php +++ /dev/null @@ -1,280 +0,0 @@ -Signup(); - break; - case "a2": - $this->Activate(); - break; - case "a3": - $this->Unreg(); - break; - case "a4": - $this->Login(); - break; - } - } if(isset($_GET['code'])) { - $_POST['id'] = $_GET['code']; $this->Activate(); - } - else { - if($session->logged_in && in_array("logout.php",explode("/",$_SERVER['PHP_SELF']))) { - $this->Logout(); - } - } - } - - private function Signup() { - global $database,$form,$mailer,$generator,$session; - if(!isset($_POST['name']) || trim($_POST['name']) == "") { - $form->addError("name",USRNM_EMPTY); - } - else { - if(strlen($_POST['name']) < USRNM_MIN_LENGTH) { - $form->addError("name",USRNM_SHORT); - } - else if(!USRNM_SPECIAL && preg_match('/[^0-9A-Za-z]/',$_POST['name'])) { - $form->addError("name",USRNM_CHAR); - } - else if(USRNM_SPECIAL && preg_match("/[:,\\. \\n\\r\\t\\s\\<\\>]+/", $_POST['name'])) { - $form->addError("name",USRNM_CHAR); - } - else if(strtolower($_POST['name']) == 'natars') { - $form->addError("name",USRNM_TAKEN); - } - else if(User::exists($database,$_POST['name'])) { - $form->addError("name",USRNM_TAKEN); - } - - } - if(!isset($_POST['pw']) || trim($_POST['pw']) == "") { - $form->addError("pw",PW_EMPTY); - } - else { - if(strlen($_POST['pw']) < PW_MIN_LENGTH) { - $form->addError("pw",PW_SHORT); - } - else if($_POST['pw'] == $_POST['name']) { - $form->addError("pw",PW_INSECURE); - - } - } - if(!isset($_POST['email'])) { - $form->addError("email",EMAIL_EMPTY); - } - else { - if(!$this->validEmail($_POST['email'])) { - $form->addError("email",EMAIL_INVALID); - } - else if(User::exists($database,$_POST['email'])) { - $form->addError("email",EMAIL_TAKEN); - } - } - if(!isset($_POST['vid']) || !in_array($_POST['vid'], [1, 2, 3])) { - $form->addError("tribe",TRIBE_EMPTY); - } - if(!isset($_POST['agb'])) { - $form->addError("agree",AGREE_ERROR); - } - if($form->returnErrors() > 0) { - $form->addError("invt",$_POST['invited']); - $_SESSION['errorarray'] = $form->getErrors(); - $_SESSION['valuearray'] = $_POST; - - - header("Location: anmelden.php"); - exit; - } - else { - if(AUTH_EMAIL){ - $act = $generator->generateRandStr(10); - $act2 = $generator->generateRandStr(5); - $uid = $database->activate($_POST['name'],password_hash($_POST['pw'], PASSWORD_BCRYPT,['cost' => 12]),$_POST['email'],$_POST['vid'],$_POST['kid'],$act,$act2); - if($uid) { - - $mailer->sendActivate($_POST['email'],$_POST['name'],$_POST['pw'],$act); - header("Location: activate.php?id=$uid&q=$act2"); - exit; - } - } - else { - $uid = $database->register($_POST['name'], password_hash($_POST['pw'], PASSWORD_BCRYPT, ['cost' => 12]), $_POST['email'], $_POST['vid'], $act); - if($uid) { - setcookie("COOKUSR" , $_POST['name'], time() + COOKIE_EXPIRE,COOKIE_PATH); - setcookie("COOKEMAIL" , $_POST['email'], time() + COOKIE_EXPIRE,COOKIE_PATH); - $database->updateUserField( - $uid, - ["act", "invited"], - ["", $_POST['invited']], - 1 - ); - - $this->generateBase($_POST['kid'], $uid, $_POST['name']); - header("Location: login.php"); - exit; - } - } - } - } - - private function Activate() { - global $database; - - if(START_DATE < date('d.m.Y') or START_DATE == date('d.m.Y') && START_TIME <= date('H:i')) - { - $q = "SELECT act, username, password, email, tribe, location FROM ".TB_PREFIX."activate where act = '".$database->escape($_POST['id'])."'"; - $result = mysqli_query($database->dblink,$q); - $dbarray = mysqli_fetch_array($result); - if($dbarray['act'] == $_POST['id']) { - $uid = $database->register($dbarray['username'], $dbarray['password'], $dbarray['email'], $dbarray['tribe'], ""); - if($uid) { - $database->unreg($dbarray['username']); - $this->generateBase($dbarray['location'],$uid,$dbarray['username']); - header("Location: activate.php?e=2"); - exit; - } - } - else - { - header("Location: activate.php?e=3"); - exit; - } - } - else - { - header("Location: activate.php"); - exit; - } - } - - private function Unreg() { - global $database; - - $q = "SELECT password, username FROM ".TB_PREFIX."activate where id = ".(int) $_POST['id']; - $result = mysqli_query($database->dblink,$q); - $dbarray = mysqli_fetch_array($result); - if(password_verify($_POST['pw'], $dbarray['password'])) { - $database->unreg($dbarray['username']); - header("Location: anmelden.php"); - exit; - } - else { - header("Location: activate.php?e=3"); - exit; - } - } - - private function Login() { - global $database, $session, $form; - - $user = $_POST['user']; - if(!isset($_POST['user']) || empty($_POST['user'])){ - $form->addError("user", $user); - }else if(!User::exists($database, $_POST['user'])){ - $form->addError("user", USR_NT_FOUND); - } - if(!isset($_POST['pw']) || empty($_POST['pw'])){ - $form->addError("pw", LOGIN_PASS_EMPTY); - }else if(!$database->login($_POST['user'], $_POST['pw']) && !$database->sitterLogin($_POST['user'], $_POST['pw'])){ - // try activation data if the user was not found - if(!$userData){ - $activateData = $database->getActivateField($_POST['user'], 'act', 1); - - if(!empty($activateData)) $form->addError("activate", $_POST['user']); - - else $form->addError("pw", LOGIN_PW_ERROR); - } - else $form->addError("pw", LOGIN_PW_ERROR); - } - - $userData = $database->getUserArray($_POST['user'], 0); - - // Vacation mode by Shadow - if($userData["vac_mode"] == 1 && $userData["vac_time"] > time()){ - $form->addError("vacation", "Vacation mode is still enabled"); - } - - // Vacation mode by Shadow - if($form->returnErrors() > 0){ - $_SESSION['errorarray'] = $form->getErrors(); - $_SESSION['valuearray'] = $_POST; - - header("Location: login.php"); - exit(); - }else{ - // Vacation mode by Shadow - $database->removevacationmode($userData['id']); - // Vacation mode by Shadow - if($database->login($_POST['user'], $_POST['pw'])){ - $database->UpdateOnline("login", $_POST['user'], time(), $userData['id']); - }else if($database->sitterLogin($_POST['user'], $_POST['pw'])){ - $database->UpdateOnline("sitter", $_POST['user'], time(), $userData['id']); - } - setcookie("COOKUSR", $_POST['user'], time() + COOKIE_EXPIRE, COOKIE_PATH); - $session->login($_POST['user']); - } - } - - private function Logout() { - global $session, $database; - - unset($_SESSION['wid']); - $database->activeModify(addslashes($session->username),1); - $database->UpdateOnline("logout") or die(mysqli_error($database->dblink)); - $session->Logout(); - } - - private function validEmail($email) { - $regexp="/^[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}$/i"; - return preg_match($regexp, $email); - } - - function generateBase($kid, $uid, $username) { - global $database; - $message = new Message(); - - if($kid == 0) $kid = rand(1,4); - else $kid = $_POST['kid']; - - $database->generateVillages([['wid' => 0, 'mode' => 0, 'type' => 3, 'kid' => $kid, 'capital' => 1, 'pop' => 2, 'name' => null, 'natar' => 0]], $uid, $username); - $message->sendWelcome($uid, $username); - } -}; -$account = new Account; -?> diff --git a/GameEngine/Admin/database.php b/GameEngine/Admin/database.php index 2c1919be..bf015d8a 100755 --- a/GameEngine/Admin/database.php +++ b/GameEngine/Admin/database.php @@ -629,9 +629,6 @@ class adm_DB { if($unitarray) { reset($unitarray); } $unitarray = $GLOBALS["u".$i]; $speeds[] = $unitarray['speed']; - //echo print_r(array_keys($speeds))."unitspd\n".$i."trib\n"; - - } else { $enforce['u'.$i]='0'; } @@ -662,7 +659,7 @@ class adm_DB { global $technology, $database; $isNatar = $database->getVillageField($wid, "natar"); - $upkeep = $technology->getUpkeep($this->getAllUnits($wid), 0, $wid); + $upkeep = $database->getUpkeep($this->getAllUnits($wid), 0, $wid); $production = []; $production['wood'] = $this->getWoodProd($fdata, $ocounter,$b1); $production['clay'] = $this->getClayProd($fdata, $ocounter,$b2); diff --git a/GameEngine/Admin/function.php b/GameEngine/Admin/function.php index 385629d1..66c65f3d 100755 --- a/GameEngine/Admin/function.php +++ b/GameEngine/Admin/function.php @@ -17,6 +17,8 @@ // # Source code: https://github.com/Shadowss/TravianZ ## // # ## // ################################################################################ +use TravianZ\Village\Units; + include_once("../GameEngine/Artifacts.php"); include_once("../GameEngine/Units.php"); include_once("../GameEngine/Generator.php"); @@ -74,7 +76,7 @@ class funct // add ban break; case "delOas": - $units->returnTroops($get['did'], 1); + Units::returnTroops($get['did'], 1); $database->removeOases($get['oid']); break; case "logout": diff --git a/GameEngine/Alliance.php b/GameEngine/Alliance.php deleted file mode 100755 index 5ee3dc77..00000000 --- a/GameEngine/Alliance.php +++ /dev/null @@ -1,622 +0,0 @@ -alliance > 0) { - $this->allianceArray = $database->getAlliance($session->alliance); - // Permissions Array - // [id] => id [uid] => uid [alliance] => alliance [opt1] => X [opt2] => X [opt3] => X [opt4] => X [opt5] => X [opt6] => X [opt7] => X [opt8] => X - $this->userPermArray = $database->getAlliPermissions($session->uid, $session->alliance); - } else { - $this->inviteArray = $database->getInvitation($session->uid); - $this->gotInvite = count($this->inviteArray) > 0; - } - - if(isset($get['a'])) { - switch($get['a']) { - case 2: - $this->rejectInvite($get); - break; - case 3: - $this->acceptInvite($get); - break; - } - } - if(isset($get['o'])) { - switch($get['o']) { - case 4: - $this->delInvite($get); - break; - } - } - } - - /** - * Determines if a forum is accessible or not - * - * @param int $forumID The forum ID - * @return bool Returns if the forum is accessible or not - */ - - public function isForumAccessible($forumID){ - global $session; - - //Loop through the shared forums and try to find the passed one - foreach($session->sharedForums as $forums){ - foreach($forums as $forum){ - if($forum['id'] == $forumID) return true; - } - } - return false; - } - - /** - * Determines if a player can act with the forum (edit/delete/create things, etc.) - * - * @param array $datas The array which contains: [aid, alliance, forum_perm, admin, owner, forum_owner] - * @return bool Returns true if you are able to act, false otherwise - */ - - public static function canAct($datas, $mode = 0){ - global $database, $session; - - $hasSwitchedToAdmin = isset($datas['admin']) && !empty($datas['admin']) && $datas['admin'] == "switch_admin"; - - return (/*$database->CheckEditRes($datas['aid']) == 1 && */($datas['alliance'] > 0 && (($database->isAllianceOwner($session->uid) == $datas['alliance'] || - ($datas['forum_perm'] == 1 && $session->alliance == $datas['alliance']))) || - ($datas['owner'] == $session->uid && $session->access != ADMIN)) || - ($session->access == ADMIN)) && - ($mode || $hasSwitchedToAdmin); - } - - /** - * Create two string, representing alliances ID and users ID which can see a specific forum - * - * @param int $alliancesID A list of alliances ID - * @param int $alliancesName A list of alliances Name - * @param int $usersID A list of users ID - * @param int $usersName A list of users name - * @return array Returns the two string, composed by alliances ID and users ID - */ - - public function createForumVisiblity($alliancesID, $alliancesName, $usersID, $usersName){ - global $database, $session; - - $alliances = $users = []; - //TODO: Reduce the code of this part and cache existing diplomacy relationship - //Deduplicate alliances - if(!empty($alliancesID)){ - foreach($alliancesID as $alliance){ - if(!empty($alliance) && is_numeric($alliance) && $database->aExist($alliance, 'id') && $alliance != $session->alliance && empty($database->diplomacyExistingRelationships($alliance))){ - $alliances[$alliance] = true; - } - } - } - if(!empty($alliancesName)){ - foreach($alliancesName as $alliance){ - if(!empty($alliance) && !empty($allianceID = $database->getAllianceID($alliance)) && $allianceID != $session->alliance && empty($database->diplomacyExistingRelationships($allianceID))){ - $alliances[$allianceID] = true; - } - } - } - - //Deduplicate users - if(!empty($usersID)){ - foreach($usersID as $user) { - if(!empty($user) && is_numeric($user) && ($userAlly = $database->getUserAllianceID($user)) > 0 && $userAlly != $session->alliance && $database->getUserField($user, 'username', 0) != "[?]" && $user != $session->uid && empty($database->diplomacyExistingRelationships($userAlly))) { - $users[$user] = true; - } - } - } - if(!empty($usersName)){ - foreach($usersName as $user){ - if(!empty($user) && !empty($userID = $database->getUserField($user, 'id', 1)) && $userID != $session->uid && ($userAlly = $database->getUserAllianceID($userID)) > 0 && $userAlly != $session->alliance && empty($database->diplomacyExistingRelationships($userAlly))) { - $users[$userID] = true; - } - } - } - - return ['alliances' => implode(',', array_keys($alliances)), 'users' => implode(',', array_keys($users))]; - } - - /** - * Redirects to the forum selection - * - * @param array $get Contains the values of a GET request - */ - - public function redirect($get = null) - { - header("Location: allianz.php?s=2".(isset($get['fid']) && !empty($get['fid']) && $get['admin'] != 'pos' ? "&fid=".$get['fid']."" : ""). - (isset($get['admin']) && !empty($get['admin']) ? "&admin=switch_admin" : "")); - exit; - } - - public function procAlliForm($post) { - if(isset($post['ft'])) { - switch($post['ft']) { - case "ali1": - $this->createAlliance($post); - break; - } - - } - - if(isset($post['dipl']) && isset($post['a_name'])) $this->changediplomacy($post); - - if(isset($post['s'])) { - if(isset($post['o'])) { - switch($post['o']) { - case 1: - if(isset($_POST['a'])) $this->changeUserPermissions($post); - break; - case 2: - if(isset($_POST['a_user'])) $this->kickAlliUser($post); - break; - case 4: - if(isset($_POST['a']) && $_POST['a'] == 4) $this->sendInvite($post); - break; - case 3: - $this->updateAlliProfile($post); - break; - case 11: - $this->quitally($post); - break; - case 100: - $this->changeAliName($post); - break; - } - } - } - } - - /***************************************** - Function to process of sending invitations - *****************************************/ - public function sendInvite($post) { - global $form, $database, $session; - - $UserData = $database->getUserArray(stripslashes($post['a_name']), 0); - if($this->userPermArray['opt4'] == 0) { - $form->addError("name", NO_PERMISSION); - }elseif(!isset($post['a_name']) || $post['a_name'] == "") { - $form->addError("name", NAME_EMPTY); - }elseif(!User::exists($database, $post['a_name'])) { - $form->addError("name", NAME_NO_EXIST."".stripslashes(stripslashes($post['a_name']))); - }elseif($UserData['id'] == $session->uid) { - $form->addError("name", SAME_NAME); - }elseif($database->getInvitation2($UserData['id'],$session->alliance)) { - $form->addError("name", $post['a_name'].ALREADY_INVITED); - }elseif($UserData['alliance'] == $session->alliance) { - $form->addError("name", $post['a_name'].ALREADY_IN_ALLY); - }elseif($UserData['alliance'] > 0) { - $form->addError("name", $post['a_name'].ALREADY_IN_AN_ALLY); - }else{ - // Obtenemos la informacion necesaria - $aid = $session->alliance; - // Insertamos invitacion - $database->sendInvitation($UserData['id'], $aid, $session->uid); - // Log the notice - $database->insertAlliNotice($session->alliance, '' . addslashes($session->username) . ' has invited ' . addslashes($UserData['username']) . ' into the alliance.'); - // send invitation via in-game messages - if(NEW_FUNCTIONS_ALLIANCE_INVITATION){ - $database->sendMessage( - $UserData['id'], - 4, - 'Invitation to Alliance', - $database->escape("Hi, ".$UserData['username']."!\n\nThis is to inform you that you have been invited to join an alliance. To accept this invitation, please visit your Embassy.\n\nYours sincerely,\nServer Robot :)"), - 0, - 0, - 0, - 0, - 0, - true); - } - } - } - - /***************************************** - Function to reject an invitation - *****************************************/ - private function rejectInvite($get) { - global $database, $session; - - foreach($this->inviteArray as $invite) { - if($invite['id'] == $get['d'] && $invite['uid'] == $session->uid) { - $database->removeInvitation($get['d']); - $database->insertAlliNotice($invite['alliance'], ''.addslashes($session->username).' has rejected the invitation.'); - } - } - header("Location: build.php?gid=18"); - exit; - } - - /***************************************** - Function to del an invitation - *****************************************/ - private function delInvite($get) { - global $database, $session; - - $inviteArray = $database->getAliInvitations($session->alliance); - foreach($inviteArray as $invite) { - if($invite['id'] == $get['d'] && $invite['alliance'] == $session->alliance && $this->userPermArray['opt4'] == 1) { - $invitename = $database->getUserArray($invite['uid'], 1); - $database->removeInvitation($get['d']); - $database->insertAlliNotice($session->alliance, ''.addslashes($session->username).' has deleted the invitation for '.addslashes($invitename['username']).'.'); - } - } - header("Location: allianz.php?delinvite"); - exit; - } - - /***************************************** - Function to accept an invitation - *****************************************/ - private function acceptInvite($get) { - global $form, $database, $session; - - foreach ($this->inviteArray as $invite) { - if ($session->alliance == 0) { - if ($invite['id'] == $get['d'] && $invite['uid'] == $session->uid) { - $memberlist = $database->getAllMember($invite['alliance']); - $alliance_info = $database->getAlliance($invite['alliance']); - if (count($memberlist) < $alliance_info['max']) { - $database->removeInvitation($get['d']); - $database->updateUserField($invite['uid'], "alliance", $invite['alliance'], 1); - $database->createAlliPermissions($invite['uid'], $invite['alliance'], '', 0, 0, 0, 0, 0, 0, 0, 0); - // Log the notice - $database->insertAlliNotice($invite['alliance'], ''.addslashes($session->username).' has joined the alliance.'); - } else { - $accept_error = 1; - $max = $alliance_info['max']; - } - } - } - } - - if($accept_error == 1) $form->addError("ally_accept", "The alliance can contain only ".$max." members at this moment."); - else - { - header("Location: build.php?gid=18"); - exit; - } - } - - /***************************************** - Function to create an alliance - *****************************************/ - private function createAlliance($post) { - global $form, $database, $session, $bid18, $building; - - if(!isset($post['ally1']) || $post['ally1'] == "") { - $form->addError("ally1", ATAG_EMPTY); - } - if(!isset($post['ally2']) || $post['ally2'] == "") { - $form->addError("ally2", ANAME_EMPTY); - } - if($database->aExist($post['ally1'], "tag")) { - $form->addError("ally1", ATAG_EXIST); - } - if($database->aExist($post['ally2'], "name")) { - $form->addError("ally2", ANAME_EXIST); - } - if($session->alliance != 0){ - $form->addError("ally3", ALREADY_ALLY_MEMBER); - } - if($building->getTypeLevel(18) < 3){ - $form->addError("ally4", ALLY_TOO_LOW); - } - if($form->returnErrors() != 0) { - $_SESSION['errorarray'] = $form->getErrors(); - $_SESSION['valuearray'] = $post; - if($building->getTypeLevel(18) > 0) header("Location: build.php?gid=18"); - else header("Location: dorf2.php"); - exit; - } else { - $max = $bid18[$building->getTypeLevel(18)]['attri']; - $aid = $database->createAlliance($post['ally1'], $post['ally2'], $session->uid, $max); - $database->updateUserField($session->uid, "alliance", $aid, 1); - $database->procAllyPop($aid); - // Asign Permissions - $database->createAlliPermissions($session->uid, $aid, 'Alliance founder', '1', '1', '1', '1', '1', '1', '1', '1'); - // log the notice - $database->insertAlliNotice($aid, 'The alliance has been founded by '.addslashes($session->username).'.'); - header("Location: build.php?gid=18"); - exit; - } - } - - /***************************************** - Function to change the alliance name - *****************************************/ - private function changeAliName($get) { - global $form, $database, $session; - - $userAlly = $database->getAlliance($session->alliance); - - if(!isset($get['ally1']) || $get['ally1'] == "") $form->addError("ally1", ATAG_EMPTY); - - if(!isset($get['ally2']) || $get['ally2'] == "") $form->addError("ally2", ANAME_EMPTY); - - if($get['ally1'] != $userAlly['tag'] && $database->aExist($get['ally1'], "tag")) $form->addError("ally1", ATAG_EXIST); - - if($get['ally2'] != $userAlly['name'] && $database->aExist($get['ally2'], "name")) $form->addError("ally2", ANAME_EXIST); - - if($this->userPermArray['opt3'] == 0) $form->addError("perm", NO_PERMISSION); - - if($form->returnErrors() == 0) { - $database->setAlliName($session->alliance, $get['ally2'], $get['ally1']); - // log the notice - $database->insertAlliNotice($session->alliance, ''.addslashes($session->username).' has changed the alliance name.'); - $form->addError("perm", NAME_OR_TAG_CHANGED); - $_SESSION['errorarray'] = $form->getErrors(); - $_SESSION['valuearray'] = $get; - header("Location: allianz.php?s=5"); - exit; - } - } - - /***************************************** - Function to create/change the alliance description - *****************************************/ - private function updateAlliProfile($post) { - global $database, $session, $form; - - if($this->userPermArray['opt3'] == 0) { - $form->addError("perm", NO_PERMISSION); - } - if($form->returnErrors() > 0) { - $_SESSION['errorarray'] = $form->getErrors(); - $_SESSION['valuearray'] = $post; - } else { - $database->submitAlliProfile($session->alliance, $post['be2'], $post['be1']); - // log the notice - $database->insertAlliNotice($session->alliance, ''.addslashes($session->username).' has changed the alliance description.'); - } - } - - /***************************************** - Function to change the user permissions - *****************************************/ - private function changeUserPermissions($post) - { - global $database, $session, $form; - - if($this->userPermArray['opt1'] == 0) $form->addError("perm", NO_PERMISSION); - elseif($database->getUserField($post['a_user'], "alliance", 0) != $session->alliance) $form->addError("perm", USER_NOT_IN_YOUR_ALLY); - elseif($post['a_user'] == $session->uid) $form->addError("perm", CANT_EDIT_YOUR_PERMISSIONS); - elseif($database->isAllianceOwner($_POST['a_user'])) $form->addError("perm", CANT_EDIT_LEADER_PERMISSIONS); - else - { - $database->updateAlliPermissions($post['a_user'], $session->alliance, $post['a_titel'], $post['e1'], $post['e2'], $post['e3'], $post['e4'], $post['e5'], $post['e6'], $post['e7']); - // log the notice - $database->insertAlliNotice($session->alliance, ''.addslashes($session->username).' has changed permissions of '.addslashes($database->getUserField($post['a_user'], "username", 0)).'.'); - $form->addError("perm", ALLY_PERMISSIONS_UPDATED); - } - - if($form->returnErrors() > 0) - { - $_SESSION['errorarray'] = $form->getErrors(); - $_SESSION['valuearray'] = $post; - header("Location: allianz.php?s=5"); - exit; - } - } - /***************************************** - Function to kick a user from alliance - *****************************************/ - private function kickAlliUser($post) { - global $database, $session, $form; - - $UserData = $database->getUserArray($post['a_user'], 1); - if($this->userPermArray['opt2'] == 0) { - $form->addError("perm", NO_PERMISSION); - } else if($database->getUserField($post['a_user'], "alliance", 0) != $session->alliance){ - $form->addError("perm", USER_NOT_IN_YOUR_ALLY); - } else if($UserData['id'] != $session->uid){ - $database->updateUserField($post['a_user'], 'alliance', 0, 1); - $database->deleteAlliPermissions($post['a_user']); - $database->deleteAlliance($session->alliance); - // log the notice - $database->insertAlliNotice($session->alliance, ''.($kickedUsername = addslashes($database->getUserField($post['a_user'], "username", 0))).' has been expelled from the alliance by '.addslashes($session->username).'.'); - if($session->alliance && $database->isAllianceOwner($UserData['id']) == $session->alliance){ - $newowner = $database->getAllMember2($session->alliance); - $newleader = $newowner['id']; - $q = "UPDATE " . TB_PREFIX . "alidata set leader = ".(int) $newleader." where id = ".(int) $session->alliance.""; - $database->query($q); - $database->updateAlliPermissions($newleader, 1, 1, 1, 1, 1, 1, 1, 1, 1); - Automation::updateMax($newleader); - } - $form->addError("perm", $kickedUsername.ALLY_USER_KICKED); - } - } - /***************************************** - Function to set forum link - *****************************************/ - public function setForumLink($post) { - global $database, $session, $form; - - if($this->userPermArray['opt5'] == 0) $form->addError("perm", NO_PERMISSION); - else - { - $database->setAlliForumdblink($session->alliance, $post['f_link']); - $form->addError("perm", ALLY_FORUM_LINK_UPDATED); - } - } - /***************************************** - Function to vote on forum survey - *****************************************/ - public function Vote($post) { - global $database, $session; - - if($database->checkSurvey($post['tid']) && !$database->checkVote($post['tid'], $session->uid)){ - $survey = $database->getSurvey($post['tid']); - $text = ''.$survey['voted'].','.$session->uid.','; - $database->Vote($post['tid'], $post['vote'], $text); - } - header("Location: allianz.php?s=2&fid2=".$post['fid2']."&tid=".$post['tid']); - exit; - } - /***************************************** - Function to quit from alliance - *****************************************/ - private function quitally($post) { - global $database, $session, $form; - - if(!isset($post['pw']) || $post['pw'] == "") { - $form->addError("pw", PW_EMPTY); - } elseif(!password_verify($post['pw'], $session->userinfo['password'])) { - $form->addError("pw", LOGIN_PW_ERROR); - } else { - // check whether this is not the founder leaving and if he is, see whether - // his replacement has been selected - if ( - $session->alliance && - $database->isAllianceOwner($session->uid) == $session->alliance && - $database->countAllianceMembers($session->alliance) > 1 - ) { - // check that we have a valid new founder - if (!isset($post['new_founder'])) { - $form->addError("founder", 'Founder was not selected.'); - return; - } else { - $post['new_founder'] = (int) $post['new_founder']; - } - - $members = $database->getAllMember($session->alliance); - $validMemberFound = false; - - foreach ($members as $member) { - if ($member['id'] == $post['new_founder']) { - $validMemberFound = true; - break; - } - } - - if (!$validMemberFound || $post['new_founder'] == $session->uid) { - $form->addError("founder", 'Invalid founder.'); - return; - } - - $newleader = (int) $post['new_founder']; - $q = "UPDATE " . TB_PREFIX . "alidata set leader = ".$newleader." where id = ".(int) $session->alliance; - $_SESSION['alliance_user'] = 0; - $database->query($q); - $database->createAlliPermissions($newleader, $session->alliance, 'Alliance Leader', 1, 1, 1, 1, 1, 1, 1, 1); - Automation::updateMax($newleader); - - // send the new founder an in-game message, notifying them of their election - $database->sendMessage( - $newleader, - 4, - 'You are now leader of your alliance', - "Hi!\n\nThis is to inform you that the former leader of your alliance - ".$database->escape($session->username).", has decided to quit and elected you as his replacement. You now gain full access, administration and responsibilities to your alliance.\n\nGood luck!\n\nYours sincerely,\nServer Robot :)", - 0, - 0, - 0, - 0, - 0, - true); - } - - $database->updateUserField($session->uid, 'alliance', 0, 1); - $database->deleteAlliPermissions($session->uid); - // log the notice - $database->deleteAlliance($session->alliance); - $database->insertAlliNotice($session->alliance, '' . addslashes($session->username) . ' has quit the alliance.'); - header("Location: spieler.php?uid=".$session->uid); - exit; - } - } - - private function changediplomacy($post) { - global $database, $session, $form; - - if($this->userPermArray['opt6'] == 1){ - if(!empty($post['a_name']) || !empty($post['dipl'])){ - $aName = $post['a_name']; - $aType = (int)intval($post['dipl']); - if($database->aExist($aName, "tag")) { - $allianceID = $database->getAllianceID($aName); - if($allianceID != $session->alliance) { - if($aType >= 1 and $aType <= 3) { - if(!$database->diplomacyInviteCheck2($session->alliance, $allianceID)) { - if($database->diplomacyCheckLimits($session->alliance, $aType)){ - $database->diplomacyInviteAdd($session->alliance, $allianceID, $aType); - if($aType == 1){ - $notice = OFFERED_CONFED_TO; - }else if($aType == 2){ - $notice = OFFERED_NON_AGGRESION_PACT_TO; - }else if($aType == 3){ - $notice = DECLARED_WAR_ON; - } - $database->insertAlliNotice($session->alliance, ''.$database->getAllianceName($session->alliance).' '.$notice.' '.$aName.'.'); - $database->insertAlliNotice($allianceID, ''.$database->getAllianceName($session->alliance).' '.$notice.' '.$aName.'.'); - $form->addError("name", INVITE_SENT); - - } - else $form->addError("name", ALLY_TOO_MUCH_PACTS); - } - else $form->addError("name", INVITE_ALREADY_SENT); - } - else $form->addError("name", WRONG_DIPLOMACY); - } - else $form->addError("name", CANNOT_INVITE_SAME_ALLY); - } - else $form->addError("name", ALLY_DOESNT_EXISTS); - } - else $form->addError("name", NAME_OR_DIPL_EMPTY); - } - else $form->addError("name", NO_PERMISSION); - } -} - -$alliance = new Alliance; - -?> diff --git a/GameEngine/Artifacts.php b/GameEngine/Artifacts.php deleted file mode 100644 index 035119ab..00000000 --- a/GameEngine/Artifacts.php +++ /dev/null @@ -1,519 +0,0 @@ - [["type" => 1, "size" => 1, "name" => ARCHITECTS_SMALL, "vname" => ARCHITECTS_SMALLVILLAGE, "effect" => "(4x)", "quantity" => 6, "img" => 2], - ["type" => 1, "size" => 2, "name" => ARCHITECTS_LARGE, "vname" => ARCHITECTS_LARGEVILLAGE, "effect" => "(3x)", "quantity" => 4, "img" => 2], - ["type" => 1, "size" => 3, "name" => ARCHITECTS_UNIQUE,"vname" => ARCHITECTS_UNIQUEVILLAGE, "effect" => "(5x)", "quantity" => 1, "img" => 2]], - - HASTE_DESC => [["type" => 2, "size" => 1, "name" => HASTE_SMALL, "vname" => HASTE_SMALLVILLAGE, "effect" => "(2x)", "quantity" => 6, "img" => 4], - ["type" => 2, "size" => 2, "name" => HASTE_LARGE, "vname" => HASTE_LARGEVILLAGE, "effect" => "(1.5x)", "quantity" => 4, "img" => 4], - ["type" => 2, "size" => 3, "name" => HASTE_UNIQUE, "vname" => HASTE_UNIQUEVILLAGE, "effect" => "(3x)", "quantity" => 1, "img" => 4]], - - EYESIGHT_DESC => [["type" => 3, "size" => 1, "name" => EYESIGHT_SMALL, "vname" => EYESIGHT_SMALLVILLAGE, "effect" => "(5x)", "quantity" => 6, "img" => 5], - ["type" => 3, "size" => 2, "name" => EYESIGHT_LARGE, "vname" => EYESIGHT_LARGEVILLAGE, "effect" => "(3x)", "quantity" => 4, "img" => 5], - ["type" => 3, "size" => 3, "name" => EYESIGHT_UNIQUE, "vname" => EYESIGHT_UNIQUEVILLAGE, "effect" => "(10x)", "quantity" => 1, "img" => 5]], - - DIET_DESC => [["type" => 4, "size" => 1, "name" => DIET_SMALL, "vname" => DIET_SMALLVILLAGE, "effect" => "(50%)", "quantity" => 6, "img" => 6], - ["type" => 4, "size" => 2, "name" => DIET_LARGE, "vname" => DIET_LARGEVILLAGE, "effect" => "(25%)", "quantity" => 4, "img" => 6], - ["type" => 4, "size" => 3, "name" => DIET_UNIQUE, "vname" => DIET_UNIQUEVILLAGE, "effect" => "(50%)", "quantity" => 1, "img" => 6]], - - ACADEMIC_DESC => [["type" => 5, "size" => 1, "name" => ACADEMIC_SMALL, "vname" => ACADEMIC_SMALLVILLAGE, "effect" => "(50%)", "quantity" => 6, "img" => 8], - ["type" => 5, "size" => 2, "name" => ACADEMIC_LARGE, "vname" => ACADEMIC_LARGEVILLAGE, "effect" => "(25%)", "quantity" => 4, "img" => 8], - ["type" => 5, "size" => 3, "name" => ACADEMIC_UNIQUE, "vname" => ACADEMIC_UNIQUEVILLAGE, "effect" => "(50%)", "quantity" => 1, "img" => 8]], - - STORAGE_DESC => [["type" => 6, "size" => 1, "name" => STORAGE_SMALL, "vname" => STORAGE_SMALLVILLAGE, "effect" => "(50%)", "quantity" => 6, "img" => 9], - ["type" => 6, "size" => 2, "name" => STORAGE_LARGE, "vname" => STORAGE_LARGEVILLAGE, "effect" => "(25%)", "quantity" => 4, "img" => 9]], - - CONFUSION_DESC => [["type" => 7, "size" => 1, "name" => CONFUSION_SMALL, "vname" => CONFUSION_SMALLVILLAGE, "effect" => "(200)", "quantity" => 6, "img" => 10], - ["type" => 7, "size" => 2, "name" => CONFUSION_LARGE, "vname" => CONFUSION_LARGEVILLAGE, "effect" => "(100)", "quantity" => 4, "img" => 10], - ["type" => 7, "size" => 3, "name" => CONFUSION_UNIQUE, "vname" => CONFUSION_UNIQUEVILLAGE, "effect" => "(500)", "quantity" => 1, "img" => 10]], - - FOOL_DESC => [["type" => 8, "size" => 1, "name" => FOOL_SMALL, "vname" => FOOL_SMALLVILLAGE, "effect" => "", "quantity" => 10, "img" => "fool"], - 2 => ["type" => 8, "size" => 3, "name" => FOOL_UNIQUE, "vname" => FOOL_UNIQUEVILLAGE, "effect" => "", "quantity" => 1, "img" => "fool"]]], - - /** - * @var array WW building plans Natars' artifacts - */ - - NATARS_WW_BUILDING_PLANS = [PLAN_DESC => [["type" => 11, "size" => 1, "name" => PLAN, "vname" => PLANVILLAGE, "effect" => "", "quantity" => 13, "img" => 1]]], - - /** - * @var array Natars' normal artifacts buildings - */ - - NATARS_ARTIFACTS_BUILDINGS = [ - //Treasury of the 20th level, Residence of the 10th level, Rally Point of the 1th level - "f22t" => 27, "f22" => 20, "f28t" => 25, "f28" => 10, "f39t" => 16, "f39" => 1, - //18 Cranny of the 10th level - "f19t" => 23, "f19" => 10, "f20t" => 23, "f20" => 10, "f21t" => 23, "f21" => 10, - "f23t" => 23, "f23" => 10, "f24t" => 23, "f24" => 10, "f25t" => 23, "f25" => 10, - "f26t" => 23, "f26" => 10, "f27t" => 23, "f27" => 10, "f29t" => 23, "f29" => 10, - "f30t" => 23, "f30" => 10, "f31t" => 23, "f31" => 10, "f32t" => 23, "f32" => 10, - "f33t" => 23, "f33" => 10, "f34t" => 23, "f34" => 10, "f35t" => 23, "f35" => 10, - "f36t" => 23, "f36" => 10, "f37t" => 23, "f37" => 10, "f38t" => 23, "f38" => 10], - - - /** - * @var array Natars' WW villages buildings - */ - - NATARS_WW_VILLAGES_BUILDINGS = [ - //WW of the 0th level, Main Building of the 10th level, Marketplace of the 1th level - "f99t" => 40, "f99" => 0, "f22t" => 15, "f22" => 10, "f34t" => 17, "f34" => 1, - //Warehouse of the 20th & 10th level, Granary of the 20th & 10th level - "f20t" => 10, "f20" => 20, "f19t" => 10, "f19" => 10, "f23t" => 11, "f23" => 20, "f27t" => 11, "f27" => 10, - //All Woodcutter of the 5th level - "f1" => 5, "f3" => 5, "f14" => 5, "f17" => 5, - //All Clay Pit of the 5th level - "f5" => 5, "f6" => 5, "f16" => 5, "f18" => 5, - //All Iron Mine of the 5th level - "f4" => 5, "f7" => 5, "f10" => 5, "f11" => 5, - //All Cropland of the 6th level - "f2" => 6, "f8" => 6, "f9" => 6, "f12" => 6, "f13" => 6, "f15" => 6], - - /** - * @var int The base amount of Natars' spying units, used when Natars account is created - */ - - NATARS_BASE_SPY = 1500, - - /** - * @var int the base amount of Natars' WW villages - */ - - NATARS_BASE_WW_VILLAGES = 13; - - public - - /** - * @var funct Natars' troops for normal artifact - */ - - $natarsArtifactsUnits, - - /** - * @var funct WW villages Natars' troops - */ - - $natarsWWVillagesUnits; - - public function __construct(){ - - $this->natarsArtifactsUnits = function($multiplier){ - return [41 => rand(1000 * $multiplier, 2000 * $multiplier) * NATARS_UNITS, - 42 => rand(1500 * $multiplier, 2000 * $multiplier) * NATARS_UNITS, - 43 => rand(2300 * $multiplier, 2800 * $multiplier) * NATARS_UNITS, - 44 => rand(25 * $multiplier, 75 * $multiplier) * NATARS_UNITS, - 45 => rand(1200 * $multiplier, 1900 * $multiplier) * NATARS_UNITS, - 46 => rand(1500 * $multiplier, 2000 * $multiplier) * NATARS_UNITS, - 47 => rand(500 * $multiplier, 900 * $multiplier) * NATARS_UNITS, - 48 => rand(100 * $multiplier, 300 * $multiplier) * NATARS_UNITS, - 49 => rand(1 * $multiplier, 5 * $multiplier) * NATARS_UNITS, - 50 => rand(1 * $multiplier, 5 * $multiplier) * NATARS_UNITS]; - }; - - $this->natarsWWVillagesUnits = function(){ - return [41 => rand(500, 12000) * NATARS_UNITS, - 42 => rand(1000 , 14000) * NATARS_UNITS, - 43 => rand(2000, 16000) * NATARS_UNITS, - 44 => rand(100, 500) * NATARS_UNITS, - 45 => rand(480, 17000) * NATARS_UNITS, - 46 => rand(600, 18000) * NATARS_UNITS, - 47 => rand(2000, 16000) * NATARS_UNITS, - 48 => rand(400, 2000) * NATARS_UNITS, - 49 => rand(40, 200) * NATARS_UNITS, - 50 => rand(50, 250) * NATARS_UNITS]; - }; - - } - - /** - * Called when Natars account needs to be created, creates his account and capital village - * - */ - - public function createNatars(){ - global $database; - - //Register the Natars account, the Natars' password is the same as the MH's one - $password = $database->getUserField(5, 'password', 0); - $database->register(TRIBE5, $password, self::NATARS_EMAIL, self::NATARS_TRIBE, null, self::NATARS_UID, self::NATARS_DESC); - - //Convert from coordinates to village IDs - $possibleWids = $database->getVilWrefs(self::NATARS_CAPITAL_COORDINATES); - - //Check if the villages aren't already taken - $wid = $database->getFreeVillage($possibleWids); - - //Generate the Natars' capital - $wid = $database->generateVillages([['wid' => $wid, 'mode' => 2, 'type' => 3, 'kid' => 0, 'capital' => 1, 'pop' => 834, 'name' => null, 'natar' => 0]], self::NATARS_UID, TRIBE5); - - //Scouts all players - $this->scoutAllPlayers($wid); - - //Add artifacts - $this->addArtifactVillages(self::NATARS_ARTIFACTS); - } - - /** - * Called when Natars account has been created - * - * @param int $wid The village ID of the Natars' capital - */ - - public function scoutAllPlayers($wid){ - global $database; - - $array = $database->getProfileVillages(0, 1); - $refs = []; - $vils = []; - - foreach($array as $vill){ - $refs[] = $database->addAttack($wid, 0, 0, 0, self::NATARS_BASE_SPY * NATARS_UNITS, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 20, 0, 0, 0, 0); - $vils[] = $vill['wref']; - } - - $type = []; - $from = []; - $to = []; - $ref = []; - $time = []; - $timeValue = time(); - $endtime = []; - $endtimeValue = $timeValue + round(10000 / SPEED); - $counter = 0; - - foreach ($refs as $index => $refID) { - $type[] = 3; - $from[] = $wid; - $to[] = $vils[$index]; - $ref[] = $refID; - $time[] = $timeValue; - $endtime[] = $endtimeValue; - - // limit the insert, so it can push through any reasonable network limits imposed - if (++$counter > 25) { - $database->addMovement($type, $from, $to, $ref, $time, $endtime); - - $type = []; - $from = []; - $to = []; - $ref = []; - $time = []; - $endtime = []; - $counter = 0; - } - } - - if ($counter > 0) $database->addMovement($type, $from, $to, $ref, $time, $endtime); - } - - /** - * Creates villages and puts the desired artifacts in it - * - * @param array $artifactArrays The array containing the artifacts to insert - * @param int $uid The owner's user ID (Natars) - * @param bool $addTroops Add troops to the village if true, and vice versa if false - */ - - public function addArtifactVillages($artifactArrays, $uid = self::NATARS_UID, $addTroops = true) { - global $database; - - //Variables initialization - $artifactNumber = 0; - $artifactVillages = $artifactTroops = $artifactBuildings = $artifactsToAdd = $wids = []; - - //Create the artifact villages array - foreach($artifactArrays as $desc => $artifactType){ - foreach($artifactType as $artifact){ - for($i = 0; $i < $artifact['quantity']; $i++){ - //Generate the villages array - $artifactVillages[] = ['wid' => 0, 'mode' => $artifact['size'] + 1, 'type' => 3, 'kid' => rand(1, 4), 'capital' => 0, 'pop' => 163, 'name' => $artifact['vname'], 'natar' => 0]; - - //Set the unit arrays (1, 2 or 4) - $multiplier = $artifact['size'] == 3 ? 4 : $artifact['size']; - $unitArrays = ($this->natarsArtifactsUnits)($multiplier); - - //Generate the unit arrays - if($addTroops) $artifactTroops[1][] = array_values($unitArrays); - $artifactBuildings[1][] = array_values(self::NATARS_ARTIFACTS_BUILDINGS); - - //Generate the artifacts array - $artifactsToAdd[] = ['owner' => $uid, 'type' => $artifact['type'], 'size' => $artifact['size'], - 'name' => $artifact['name'], 'desc' => $desc, 'effect' => $artifact['effect'], - 'img' => "type".$artifact['img'].".gif"]; - } - } - } - - //Set the unit types by using the last $unitArrays - if($addTroops) $artifactTroops[0] = array_keys($unitArrays); - $artifactBuildings[0] = array_keys(self::NATARS_ARTIFACTS_BUILDINGS); - - //Generate the wids - $wids = array_merge($wids, (array)$database->generateVillages($artifactVillages, $uid, TRIBE5, $addTroops ? $artifactTroops : null, $artifactBuildings)); - - //Create the artifacts for the generated wids - $database->addArtefacts($wids, $artifactsToAdd); - } - - /** - * Called when WW villages need to be created - * - * @param int $numberOfVillages The number of villages that have to be added - * @param int $uid The player ID - * @param bool $addTroops Add troops to the village if true, and vice versa if false - */ - - public function createWWVillages($numberOfVillages = self::NATARS_BASE_WW_VILLAGES, $uid = self::NATARS_UID, $addTroops = true){ - global $database; - - $villageArrays = $troopArrays = $buildingArrays = $wids = []; - for($i = 1; $i <= $numberOfVillages; $i++){ - $villageArrays[] = ['wid' => 0, 'mode' => 5, 'type' => 3, 'kid' => ($i == $numberOfVillages ? rand(1, 4) : ($i % 4) + 1), 'capital' => 0, 'pop' => 233, 'name' => WWVILLAGE, 'natar' => 1]; - if($addTroops) $troopArrays[1][] = array_values(($this->natarsWWVillagesUnits)()); - $buildingArrays[1][] = array_values(self::NATARS_WW_VILLAGES_BUILDINGS); - } - - if($addTroops) $troopArrays[0] = array_keys(($this->natarsWWVillagesUnits)()); - $buildingArrays[0] = array_keys(self::NATARS_WW_VILLAGES_BUILDINGS); - - $wids = $database->generateVillages($villageArrays, $uid, null, $addTroops ? $troopArrays : null, $buildingArrays); - } - - /** - * Called when WW building plans need to be created - * - */ - - public function createWWBuildingPlans(){ - - //Add the artifacts and villages - $this->addArtifactVillages(self::NATARS_WW_BUILDING_PLANS); - } - - /** - * Automatically activate all artifacts that need to be activated - * - */ - - public function activateArtifacts(){ - global $database; - - //Get all inactive artifacts that have to be activated --> (24 hours / Speed of the server) - $time = time(); - $artifacts = $database->getInactiveArtifacts(round($time - (86400 / (SPEED == 2 ? 1.5 : (SPEED == 3 ? 2 : SPEED))))); - - if(!empty($artifacts)){ - - //Cache inactive artifacts by owner - $inactiveArtifactsCache = []; - foreach($artifacts as $artifact) $inactiveArtifactsCache[$artifact['owner']][] = $artifact; - - foreach($inactiveArtifactsCache as $owner => $inactiveArtifacts){ - - //Initialize the array - $activeArtifacts = []; - - //Get cached active artifacts - $ownArtifacts = $database->getOwnArtifactsSum($owner, true); - - //Activate activable artifacts - foreach($inactiveArtifacts as $artifact){ - if($ownArtifacts['totals'] < 3){ - if($artifact['size'] == 1){ //Village effect - $database->activateArtifact($artifact['id']); - $ownArtifacts['totals']++; - $ownArtifacts['small']++; - }elseif($artifact['size'] == 2 && !$ownArtifacts['unique'] && !$ownArtifacts['great']){ //Account effect - $database->activateArtifact($artifact['id']); - $ownArtifacts['totals']++; - $ownArtifacts['great']++; - }elseif($artifact['size'] == 3 && !$ownArtifacts['unique'] && !$ownArtifacts['great']){ //Unique effect - $database->activateArtifact($artifact['id']); - $ownArtifacts['totals']++; - $ownArtifacts['unique']++; - } - }elseif($ownArtifacts['small'] == 3 && $artifact['size'] > 1){ - //If we've 3 village effect artifacts activated and at least one account/unique effect not activated - //then we need to deactivate the most recent village effect artifact and activate the oldest account - //or unique effect artifact - - //Deactivate the most recent village effect artifact - $database->activateArtifact($database->getNewestArtifactBySize($owner, 1)['id'], 0); - - //Activate the great/unique artifact - $database->activateArtifact($artifact['id']); - - $ownArtifacts['small']--; - $ownArtifacts['totals']++; - if($artifact['size'] == 2) $ownArtifacts['great']++; - else $ownArtifacts['unique']++; - } - } - } - } - } - /** - * Return the selected artifact, to the Natars account, by creating a new village and - * by moving the artifact into it - * - * @param array $artifact The artifact array - */ - - public function returnArtifactToNatars($artifactArray){ - global $database; - - //Set the village arrays - $artifactArrays = array_merge(self::NATARS_ARTIFACTS, self::NATARS_WW_BUILDING_PLANS); - $villageArrays = [['wid' => 0, 'mode' => $artifactArray['size'] + 1, 'type' => 3, - 'kid' => rand(1, 4), 'capital' => 0, 'pop' => 163, - 'name' => $artifactArrays[$artifactArray['desc']][$artifactArray['size'] - 1]['vname'], - 'natar' => 0]]; - - //Set the unit arrays - $multiplier = $artifactArray['size'] == 3 ? 4 : $artifactArray['size']; - $unitsArray = ($this->natarsArtifactsUnits)($multiplier); - - //Set the unit types - $artifactTroops[1][] = array_values($unitsArray); - $artifactTroops[0] = array_keys($unitsArray); - - //Set the buildings array - $artifactBuildings[1][] = array_values(self::NATARS_ARTIFACTS_BUILDINGS); - $artifactBuildings[0] = array_keys(self::NATARS_ARTIFACTS_BUILDINGS); - - //Generate the village - $wid = $database->generateVillages($villageArrays, self::NATARS_UID, TRIBE5, $artifactTroops, $artifactBuildings); - - //Update the artifact with the new village id and owner - $database->updateArtifactDetails($artifactArray['id'], ['vref' => $wid, 'owner' => self::NATARS_UID, 'active' => 0, 'del' => 0]); - } - - /** - * Gets the artifact informations in plain text - * - * @param int $artifact The artifact - * @return array Returns the information of the artifacts - */ - - public static function getArtifactInfo($artifact){ - - $activationTime = 86400 / (SPEED == 2 ? 1.5 : (SPEED == 3 ? 2 : SPEED)); - $time = time(); - $nextEffect = "-"; - - if($artifact['size'] == 1 && $artifact['type'] != 11){ - $requiredLevel = 10; - $effectInfluence = VILLAGE; - }else{ - $requiredLevel = $artifact['type'] != 11 ? 20 : 10; - $effectInfluence = ACCOUNT; - } - - if($artifact['owner'] == 3) $active = "-"; - elseif(!$artifact['active'] && $artifact['conquered'] < $time - $activationTime) $active = "Can't be activated"; - elseif (!$artifact['active']) $active = date("d.m.Y H:i:s", $artifact['conquered'] + $activationTime); - else - { - $active = "".ACTIVE.""; - $nextEffect = date("d.m.Y H:i:s", $artifact['lastupdate'] + (86400 / (SPEED == 2 ? 1.5 : (SPEED == 3 ? 2 : SPEED)))); - } - - //// Added by brainiac - thank you - if ($artifact['type'] == 8) - { - $kind = $artifact['kind']; - $effect = $artifact['effect2']; - }else{ - $kind = $artifact['type']; - $effect = $artifact['effect']; - } - - $artifactBadEffect = $artifact['type'] == 8 && $artifact['bad_effect'] == 1; - switch($kind){ - case 1: - $betterorbadder = $artifactBadEffect ? BUILDING_WEAKER : BUILDING_STRONGER; - break; - case 2: - $betterorbadder = $artifactBadEffect ? TROOPS_SLOWEST : TROOPS_FASTER; - break; - case 3: - $betterorbadder = $artifactBadEffect ? SPIES_DECRESE : SPIES_INCREASE; - break; - case 4: - $betterorbadder = $artifactBadEffect ? CONSUME_HIGH : CONSUME_LESS; - break; - case 5: - $betterorbadder = $artifactBadEffect ? TROOPS_MAKE_SLOWEST : TROOPS_MAKE_FASTER; - break; - case 6: - $betterorbadder = $artifactBadEffect ? YOU_CONSTRUCT : YOU_CONSTRUCT; - break; - case 7: - $betterorbadder = $artifactBadEffect ? CRANNY_DECRESE : CRANNY_INCREASED; - break; - case 8: - $betterorbadder = $artifactBadEffect ? SPIES_INCREASE : SPIES_DECRESE; - break; - } - $bonus = isset($betterorbadder) ? $betterorbadder." (".str_replace(["(", ")"], "" , $effect).")" : (($kind == 11 && $artifact['active']) ? "".WW_BUILDING_PLAN."" : "Not yet active"); - - return ["requiredLevel" => $requiredLevel, "active" => $active, - "bonus" => $bonus, "effectInfluence" => $effectInfluence, - "nextEffect" => $nextEffect]; - } -} - -?> \ No newline at end of file diff --git a/GameEngine/Automation.php b/GameEngine/Automation.php deleted file mode 100644 index bc0fb714..00000000 --- a/GameEngine/Automation.php +++ /dev/null @@ -1,4649 +0,0 @@ -artifacts = new Artifacts(); - - $autoprefix = ""; - for ($i = 0; $i < 5; $i++) { - $autoprefix = str_repeat('../', $i); - if (file_exists($autoprefix.'autoloader.php')) { - // we have our path, let's leave - break; - } - } - - $this->procNewClimbers(); - $this->ClearUser(); - $this->ClearInactive(); - $this->pruneResource(); - $this->pruneOResource(); - $this->checkWWAttacks(); - $this->delTradeRoute(); - $this->TradeRoute(); - - $methodsArrays = ["culturePoints", "updateHero", "clearDeleting", "buildComplete", - "demolitionComplete", "marketComplete", "researchComplete", - "trainingComplete", "starvation", "celebrationComplete", - "sendUnitsComplete", "loyaltyRegeneration", "sendreinfunitsComplete", - "returnunitsComplete", "sendSettlersComplete", "spawnNatars", - "spawnWWVillages", "spawnWWBuildingPlans", "activateArtifacts"]; - - foreach($methodsArrays as $method){ - $file = fopen($autoprefix."GameEngine/Prevention/".$method.".txt", "w"); - if(flock($file, LOCK_EX)) { - call_user_func(array($this, $method)); - flock($file, LOCK_UN); - } - fclose($file); - } - - $this->MasterBuilder(); - $this->updateGeneralAttack(); - $this->checkInvitedPlayes(); - $this->updateStore(); - $this->CheckBan(); - $this->regenerateOasisTroops(); - $this->medals(); - $this->artefactOfTheFool(); - } - - public function procResType($ref, $mode = 0) { - //Capital or only 1 village left = cannot be destroyed - return addslashes(empty($build = Building::procResType($ref)) && !$mode ? "Village can't be" : $build); - } - - function recountPop($vid, $use_cache = true){ - global $database; - - $vid = (int) $vid; - $fdata = $database->getResourceLevel($vid, $use_cache); - $popTot = 0; - - for ($i = 1; $i <= 40; $i++) { - $lvl = $fdata["f".$i]; - $building = $fdata["f".$i."t"]; - if($building) $popTot += $this->buildingPOP($building, $lvl); - } - - $this->recountCP($vid); - $q = "UPDATE ".TB_PREFIX."vdata set pop = $popTot where wref = $vid"; - mysqli_query($database->dblink, $q); - $owner = $database->getVillageField($vid, "owner"); - $this->procClimbers($owner); - - return $popTot; - } - - function recountCP($vid){ - global $database; - - $vid = (int) $vid; - $fdata = $database->getResourceLevel($vid); - $popTot = 0; - - for ($i = 1; $i <= 40; $i++) { - $lvl = $fdata["f".$i]; - $building = $fdata["f".$i."t"]; - if($building){ - $popTot += $this->buildingCP($building,$lvl); - } - } - - $q = "UPDATE ".TB_PREFIX."vdata set cp = $popTot where wref = $vid"; - mysqli_query($database->dblink,$q); - - return $popTot; - } - - function buildingPOP($f, $lvl){ - $name = "bid".$f; - global $$name; - - $popT = 0; - $dataarray = $$name; - - for ($i = 0; $i <= $lvl; $i++) { - $popT += ((isset($dataarray[$i]) && isset($dataarray[$i]['pop'])) ? $dataarray[$i]['pop'] : 0); - } - return $popT; - } - - function buildingCP($f, $lvl){ - $name = "bid".$f; - global $$name; - - $popT = 0; - $dataarray = $$name; - - for ($i = 0; $i <= $lvl; $i++) { - $popT += ((isset($dataarray[$i]) && isset($dataarray[$i]['cp'])) ? $dataarray[$i]['cp'] : 0); - } - return $popT; - } - - private function loyaltyRegeneration() { - global $database; - - $array = []; - $array = $database->getProfileVillages(0, 6); - if(!empty($array)) { - foreach($array as $loyalty) { - if (($t25_level = $this->getTypeLevel(25, $loyalty['wref'])) >= 1) { - $value = $t25_level; - }elseif(($t26_level = $this->getTypeLevel(26, $loyalty['wref'])) >= 1){ - $value = $t26_level; - } - else $value = 0; - - if($value > 0){ - $newloyalty = min(100, $loyalty['loyalty'] + $value * (time() - $loyalty['lastupdate2']) / 3600); - $q = "UPDATE ".TB_PREFIX."vdata SET loyalty = $newloyalty, lastupdate2=".time()." WHERE wref = '".$loyalty['wref']."'"; - $database->query($q); - } - } - } - - $array = []; - $q = "SELECT conqured, loyalty, lastupdated, wref FROM ".TB_PREFIX."odata WHERE loyalty < 100"; - $array = $database->query_return($q); - if(!empty($array)) { - foreach($array as $loyalty) { - $value = $this->getTypeLevel(37, $loyalty['conqured']); - - if($value > 0){ - $newloyalty = min(100, $loyalty['loyalty'] + $value * (time() - $loyalty['lastupdated']) / 3600); - $q = "UPDATE ".TB_PREFIX."odata SET loyalty = $newloyalty, lastupdated=".time()." WHERE wref = '".$loyalty['wref']."'"; - $database->query($q); - } - } - } - } - - public function getTypeLevel($tid, $vid) { - global $database; - - $keyholder = []; - - $resourcearray = $database->getResourceLevel($vid); - foreach(array_keys($resourcearray, $tid) as $key) { - if(strpos($key,'t')) { - $key = preg_replace("/[^0-9]/", '', $key); - array_push($keyholder, $key); - } - } - - $element = count($keyholder); - if($element >= 2) { - if($tid <= 4) { - $temparray = []; - for($i = 0; $i <= $element - 1; $i++) { - array_push($temparray,$resourcearray['f'.$keyholder[$i]]); - } - foreach ($temparray as $key => $val) { - if ($val == max($temparray)) $target = $key; - } - } - else { - $target = 0; - for($i = 1; $i <= $element - 1; $i++) { - if($resourcearray['f'.$keyholder[$i]] > $resourcearray['f'.$keyholder[$target]]) { - $target = $i; - } - } - } - } - else if($element == 1) $target = 0; - else return 0; - - if(!empty($keyholder[$target])) return $resourcearray['f'.$keyholder[$target]]; - else return 0; - } - - private function clearDeleting() { - global $database; - - $needDelete = $database->getNeedDelete(); - if(count($needDelete) > 0) { - - //Remove the time limit, otherwise deleting players with 80 or more villages couldn't be deleted in one run - @set_time_limit(0); - - foreach($needDelete as $need) { - $need['uid'] = (int) $need['uid']; - - //Get the villages which have to be deleted - $needVillages = $database->getVillagesID($need['uid']); - - //Delete all villages - $database->DelVillage($needVillages); - - for($i = 0;$i < 20; $i++){ - $q = "SELECT id FROM ".TB_PREFIX."users where friend".$i." = ".$need['uid']." or friend".$i."wait = ".$need['uid'].""; - $array = $database->query_return($q); - foreach($array as $friend){ - $database->deleteFriend($friend['id'],"friend".$i); - $database->deleteFriend($friend['id'],"friend".$i."wait"); - } - } - - $database->updateUserField($need['uid'], 'alliance', 0, 1); - - if($database->isAllianceOwner($need['uid'])){ - $alliance = $database->getUserAllianceID($need['uid']); - $newowner = $database->getAllMember2($alliance); - $newleader = $newowner['id']; - $q = "UPDATE " . TB_PREFIX . "alidata set leader = ".(int) $newleader." where id = ".(int) $alliance.""; - $database->query($q); - $database->updateAlliPermissions($newleader, $alliance, "Leader", 1, 1, 1, 1, 1, 1, 1); - Automation::updateMax($newleader); - } - - if (isset($alliance)) $database->deleteAlliance($alliance); - - $q = "DELETE FROM ".TB_PREFIX."hero where uid = ".$need['uid']; - $database->query($q); - - $q = "DELETE FROM ".TB_PREFIX."mdata where target = ".$need['uid']." or owner = ".$need['uid']; - $database->query($q); - - $q = "DELETE FROM ".TB_PREFIX."ndata where uid = ".$need['uid']; - $database->query($q); - - $q = "DELETE FROM ".TB_PREFIX."users where id = ".$need['uid']; - $database->query($q); - - $q = "DELETE FROM ".TB_PREFIX."deleting where uid = ".$need['uid']; - $database->query($q); - } - } - } - - private function ClearUser() { - global $database; - - if(AUTO_DEL_INACTIVE) { - $time = time() - UN_ACT_TIME; - - $q = "INSERT INTO ".TB_PREFIX."deleting SELECT id, UNIX_TIMESTAMP() FROM ".TB_PREFIX."users WHERE timestamp < $time AND tribe IN(1, 2, 3)"; - $database->query($q); - } - } - - private function ClearInactive() { - global $database; - - if(TRACK_USR) { - $timeout = time()-USER_TIMEOUT * 60; - $q = "DELETE FROM ".TB_PREFIX."active WHERE timestamp < $timeout"; - $database->query($q); - } - } - - private function pruneOResource() { - global $database; - - if(!ALLOW_BURST) { - $database->query("UPDATE - ".TB_PREFIX."odata - SET - wood = IF(wood < 0, 0, wood), - clay = IF(clay < 0, 0, clay), - iron = IF(iron < 0, 0, iron), - crop = IF(crop < 0, 0, crop), - maxstore = IF(maxstore < ".STORAGE_BASE.", ".STORAGE_BASE.", maxstore), - maxcrop = IF(maxcrop < ".STORAGE_BASE.", ".STORAGE_BASE.", maxcrop) - WHERE - maxstore < ".STORAGE_BASE." OR - maxcrop < ".STORAGE_BASE." OR - wood < 0 OR - clay < 0 OR - iron < 0 OR - crop < 0"); - } - } - private function pruneResource() { - global $database; - - if(!ALLOW_BURST) { - $database->query("UPDATE - ".TB_PREFIX."vdata - SET - wood = IF(wood < 0, 0, wood), - clay = IF(clay < 0, 0, clay), - iron = IF(iron < 0, 0, iron), - crop = IF(crop < 0, 0, crop), - maxstore = IF(maxstore < ".STORAGE_BASE.", ".STORAGE_BASE.", maxstore), - maxcrop = IF(maxcrop < ".STORAGE_BASE.", ".STORAGE_BASE.", maxcrop) - WHERE - maxstore < ".STORAGE_BASE." OR - maxcrop < ".STORAGE_BASE." OR - wood < 0 OR - clay < 0 OR - iron < 0 OR - crop < 0"); - - $database->query("UPDATE - ".TB_PREFIX."vdata - SET - wood = IF(wood > maxstore, maxstore, wood), - clay = IF(clay > maxstore, maxstore, clay), - iron = IF(iron > maxstore, maxstore, iron), - crop = IF(crop > maxcrop, maxcrop, crop) - WHERE - wood > maxstore OR - clay > maxstore OR - iron > maxstore OR - crop > maxcrop"); - } - } - - private function culturePoints() { - global $database; - - $database->updateVSumField('cp'); - } - - private function buildComplete() { - global $database, $technology, $bid18, $bid10, $bid11, $bid38, $bid39; - - $time = time(); - // IDs of villages that were affected by this building completion update, - // used to calculate statistical data at the end - $villagesAffected = []; - // holds additional conditions when updating loopcon records in the bdata table - $loopconUpdates = []; - // this will hold IDs of bdata table records to delete - $dbIdsToDelete = []; - - // get all pending builds that should be complete by now - $res = $database->query_return( - "SELECT - id, wid, field, level, type, timestamp - FROM - ".TB_PREFIX."bdata - WHERE - timestamp < $time and master = 0" - ); - - // preload village data - $vilIDs = []; - foreach($res as $indi) { - $vilIDs[$indi['wid']] = true; - } - $vilIDs = array_keys($vilIDs); - $database->getProfileVillages($vilIDs, 5); - $database->getEnforceVillage($vilIDs, 0); - - // complete buildings - foreach($res as $indi) { - // store village ID for later for statistical updates - $villageData = $database->getVillageFields($indi['wid'],'owner, maxcrop, maxstore, starv, pop'); - $villageOwner = $villageData['owner']; - $villagesAffected[] = (int) $indi['wid']; - $fieldsToSet = []; - - $q = "UPDATE ".TB_PREFIX."fdata SET f".$indi['field']." = ".$indi['level'].", f".$indi['field']."t = ".$indi['type']." WHERE vref = ".(int) $indi['wid']; - - if($database->query($q)) { - // this will be the level we brought the building to now - $level = $indi['level']; - - // TODO: magic numbers into constants (for building types below) - - // update capacity if we updated a warehouse or a granary - if (in_array($indi['type'], [10, 11, 38, 39])) { - $fieldDbName = (in_array($indi['type'], [10, 38]) ? 'maxstore' : 'maxcrop'); - $max = $villageData[$fieldDbName]; - - if($level == 1 && $max == STORAGE_BASE) $max = STORAGE_BASE; - - if ($level != 1) $max -= ${'bid'.$indi['type']}[$level - 1]['attri'] * STORAGE_MULTIPLIER; - - $max += ${'bid'.$indi['type']}[$level]['attri'] * STORAGE_MULTIPLIER; - - $fieldsToSet[$fieldDbName] = $max; - } - - // if we updated Embassy, update maximum members that the alliance can take - if($indi['type'] == 18) Automation::updateMax($villageOwner); - - // by SlimShady95 aka Manuel Mannhardt < manuel_mannhardt@web.de > - if ($indi['type'] == 40 && ($indi['level'] % 5 == 0 || $indi['level'] > 95) && $indi['level'] != 100) { - $this->startNatarAttack($indi['level'], $indi['wid'], $indi['timestamp']); - } - - //now can't be more than one winner if ww to level 100 is build by 2 users or more on same time - if ($indi['type'] == 40 && $indi['level'] == 100) { - mysqli_query($database->dblink,"TRUNCATE ".TB_PREFIX."bdata"); - } - - // TODO: find out what exactly these conditions are for - // no special military conditioning for Teutons and Gauls - if ($database->getUserField($villageOwner, "tribe", 0) != 1) $loopconUpdates[$indi['wid']] = ''; - else - { - // special condition for Roman military buildings - if ($indi['field'] > 18) $loopconUpdates[$indi['wid']] = ' AND field > 18'; - else $loopconUpdates[$indi['wid']] = ' AND field < 19'; - } - - // Update ww last finish upgrade - if ($indi['type'] == 40) { - $qW = "UPDATE ".TB_PREFIX."fdata set ww_lastupdate = ".time()." where vref = ".(int) $indi['wid']; - $database->query($qW); - } - - $dbIdsToDelete[] = (int) $indi['id']; - } - - //Update starvation data - $database->addStarvationData($indi['wid']); - - // update the requested fields, all at once - $database->setVillageFields($indi['wid'], array_keys($fieldsToSet), array_values($fieldsToSet)); - } - - // update statistical data for affected villages - foreach ($villagesAffected as $affected_id) $this->recountPop($affected_id, false); - - // update data that can be done in one swoop instead of using multiple update queries - // no special checks for Romans - foreach ($loopconUpdates as $villageId => $updateCondition) { - $database->query( - "UPDATE - ".TB_PREFIX."bdata - SET - loopcon = 0 - WHERE - loopcon = 1 AND - master = 0 AND - wid = ".$villageId.$updateCondition); - } - - // delete all processed entries - if (count($dbIdsToDelete)) { - $database->query( "DELETE FROM " . TB_PREFIX . "bdata WHERE id IN(" . implode( ',', $dbIdsToDelete ) . ")" ); - } - } - - // by SlimShady95 aka Manuel Mannhardt < manuel_mannhardt@web.de > - private function startNatarAttack($level, $vid, $time) { - global $database; - - // bad, but should work :D - // I took the data from my first ww (first .org world) - // TODO: get the algo from the real travian with the 100 biggest offs - - $troops = [5 => [[3412, 2814, 4156, 3553, 9, 0], [35, 0, 77, 33, 17, 10]], - 10 => [[4314, 3688, 5265, 4621, 13, 0], [65, 0, 175, 77, 28, 17]], - 15 => [[4645, 4267, 5659, 5272, 15, 0], [99, 0, 305, 134, 40, 25]], - 20 => [[6207, 5881, 7625, 7225, 22, 0], [144, 0, 456, 201, 56, 36]], - 25 => [[6004, 5977, 7400, 7277, 23, 0], [152, 0, 499, 220, 58, 37]], - 30 => [[7073, 7181, 8730, 8713, 27, 0], [183, 0, 607, 268, 69, 45]], - 35 => [[7090, 7320, 8762, 8856, 28, 0], [186, 0, 620, 278, 70, 45]], - 40 => [[7852, 6967, 9606, 8667, 25, 0], [146, 0, 431, 190, 60, 37]], - 45 => [[8480, 8883, 10490, 10719, 35, 0], [223, 0, 750, 331, 83, 54]], - 50 => [[8522, 9038, 10551, 10883, 35, 0], [224, 0, 757, 335, 83, 54]], - 55 => [[8931, 8690, 10992, 10624, 32, 0], [219, 0, 707, 312, 84, 54]], - 60 => [[12138, 13013, 15040, 15642, 51, 0], [318, 0, 1079, 477, 118, 76]], - 65 => [[13397, 14619, 16622, 17521, 58, 0], [345, 0, 1182, 522, 127, 83]], - 70 => [[16323, 17665, 20240, 21201, 70, 0], [424, 0, 1447, 640, 157, 102]], - 75 => [[20739, 22796, 25746, 27288, 91, 0], [529, 0, 1816, 803, 194, 127]], - 80 => [[21857, 24180, 27147, 28914, 97, 0], [551, 0, 1898, 839, 202, 132]], - 85 => [[22476, 25007, 27928, 29876, 100, 0], [560, 0, 1933, 855, 205, 134]], - 90 => [[31345, 35053, 38963, 41843, 141, 0], [771, 0, 2668, 1180, 281, 184]], - 95 => [[31720, 35635, 39443, 42506, 144, 0], [771, 0, 2671, 1181, 281, 184]], - 96 => [[32885, 37007, 40897, 44130, 150, 0], [795, 0, 2757, 1219, 289, 190]], - 97 => [[32940, 37099, 40968, 44235, 150, 0], [794, 0, 2755, 1219, 289, 190]], - 98 => [[33521, 37691, 41686, 44953, 152, 0], [812, 0, 2816, 1246, 296, 194]], - 99 => [[36251, 40861, 45089, 48714, 165, 0], [872, 0, 3025, 1338, 317, 208]]]; - - // select the troops^^ - if (isset($troops[$level])) $units = $troops[$level]; - else return false; - - // get the capital village from the natars - $query = mysqli_query($database->dblink,'SELECT `wref` FROM `' . TB_PREFIX . 'vdata` WHERE `owner` = 3 and `capital` = 1 LIMIT 1') or die(mysqli_error($database->dblink)); - $row = mysqli_fetch_assoc($query); - - // start the attacks - $endtime = $time + round(86400 / INCREASE_SPEED); - - // -.- - $vid = (int) $vid; - mysqli_query($database->dblink,'INSERT INTO `' . TB_PREFIX . 'ww_attacks` (`vid`, `attack_time`) VALUES (' . $vid . ', ' . $endtime . ')'); - mysqli_query($database->dblink,'INSERT INTO `' . TB_PREFIX . 'ww_attacks` (`vid`, `attack_time`) VALUES (' . $vid . ', ' . ($endtime + 1) . ')'); - - // wave 1 - $ref = $database->addAttack($row['wref'], 0, $units[0][0], $units[0][1], 0, $units[0][2], $units[0][3], $units[0][4], $units[0][5], 0, 0, 0, 3, 0, 0, 0, 0, 20, 20, 0, 20, 20, 20, 20); - $database->addMovement(3, $row['wref'], $vid, $ref, $time, $endtime); - - // wave 2 - $ref2 = $database->addAttack($row['wref'], 0, $units[1][0], $units[1][1], 0, $units[1][2], $units[1][3], $units[1][4], $units[1][5], 0, 0, 0, 3, 40, 0, 0, 0, 20, 20, 0, 20, 20, 20, 20, ['vid' => $vid, 'endtime' => ($endtime + 1)]); - $database->addMovement(3, $row['wref'], $vid, $ref2, $time, $endtime + 1); - } - - private function checkWWAttacks() { - global $database; - - $query = mysqli_query($database->dblink,'SELECT vid, attack_time FROM `' . TB_PREFIX . 'ww_attacks` WHERE `attack_time` <= ' . time()); - while ($row = mysqli_fetch_assoc($query)) - { - // delete the attack - $query3 = mysqli_query($database->dblink,'DELETE FROM `' . TB_PREFIX . 'ww_attacks` WHERE `vid` = ' . (int) $row['vid'] . ' AND `attack_time` = ' . (int) $row['attack_time']); - } - } - - private function getPop($tid, $level) { - $name = "bid".$tid; - global $$name; - - $dataarray = $$name; - $pop = $dataarray[($level + 1)]['pop']; - $cp = $dataarray[($level + 1)]['cp']; - return [$pop, $cp]; - } - - private function delTradeRoute() { - global $database; - - $database->delTradeRoute(); - } - - private function TradeRoute() { - global $database; - $time = time(); - $q = "SELECT `from`, wood, clay, iron, crop, wid, deliveries, id FROM ".TB_PREFIX."route where timestamp < $time"; - $dataarray = $database->query_return($q); - - $vilIDs = []; - foreach($dataarray as $data) { - $vilIDs[$data['to']] = true; - $vilIDs[$data['from']] = true; - } - $vilIDs = array_keys($vilIDs); - $database->getVillageByWorldID($vilIDs); - - foreach($dataarray as $data) { - $targettribe = $database->getUserField($database->getVillageField($data['from'], "owner"), "tribe", 0); - $this->sendResource2($data['wood'], $data['clay'], $data['iron'], $data['crop'], $data['from'], $data['wid'], $targettribe, $data['deliveries']); - $database->editTradeRoute($data['id'], "timestamp", 86400, 1); - } - } - - private function marketComplete() { - global $database, $units; - - $time = microtime(true); - $q = "SELECT s.wood, s.clay, s.iron, s.crop, `to`, `from`, endtime, merchant, send, moveid FROM ".TB_PREFIX."movement m, ".TB_PREFIX."send s WHERE m.ref = s.id AND m.proc = 0 AND sort_type = 0 AND endtime < $time"; - $dataarray = $database->query_return($q); - - foreach($dataarray as $data) { - $userData_from = $database->getUserFields($database->getVillageField($data['from'], "owner"), "alliance, tribe", 0); - $userData_to = $database->getUserFields($database->getVillageField($data['to'], "owner"), "alliance, tribe", 0); - - if($data['wood'] >= $data['clay'] && $data['wood'] >= $data['iron'] && $data['wood'] >= $data['crop']) $sort_type = 10; - elseif($data['clay'] >= $data['wood'] && $data['clay'] >= $data['iron'] && $data['clay'] >= $data['crop']) $sort_type = 11; - elseif($data['iron'] >= $data['wood'] && $data['iron'] >= $data['clay'] && $data['iron'] >= $data['crop']) $sort_type = 12; - elseif($data['crop'] >= $data['wood'] && $data['crop'] >= $data['clay'] && $data['crop'] >= $data['iron']) $sort_type = 13; - - $to = $database->getMInfo($data['to']); - $from = $database->getMInfo($data['from']); - - $ownally = $userData_from['alliance']; - $targetally = $userData_to['alliance']; - - $database->addNotice($to['owner'],$to['wref'],$targetally,$sort_type,''.addslashes($from['name']).' send resources to '.addslashes($to['name']).'',''.$from['owner'].','.$from['wref'].','.$data['wood'].','.$data['clay'].','.$data['iron'].','.$data['crop'].'',$data['endtime']); - if($from['owner'] != $to['owner']) { - $database->addNotice($from['owner'],$to['wref'],$ownally,$sort_type,''.addslashes($from['name']).' send resources to '.addslashes($to['name']).'',''.$from['owner'].','.$from['wref'].','.$data['wood'].','.$data['clay'].','.$data['iron'].','.$data['crop'].'',$data['endtime']); - } - $database->modifyResource($data['to'],$data['wood'],$data['clay'],$data['iron'],$data['crop'],1); - $targettribe = $userData_to["tribe"]; - $endtime = $units->getWalkingTroopsTime($data['from'], $data['to'], 0, 0, [$targettribe], 0) + $data['endtime']; - $database->addMovement(2, $data['to'], $data['from'], $data['merchant'], time(), $endtime, $data['send'], $data['wood'], $data['clay'], $data['iron'], $data['crop']); - $database->setMovementProc($data['moveid']); - } - - $q1 = "SELECT send, moveid, `to`, wood, clay, iron, crop, `from` FROM ".TB_PREFIX."movement WHERE proc = 0 and sort_type = 2 and endtime < $time"; - $dataarray1 = $database->query_return($q1); - - $vilIDs = []; - foreach($dataarray1 as $data1) { - $vilIDs[$data1['to']] = true; - $vilIDs[$data1['from']] = true; - } - $vilIDs = array_keys($vilIDs); - $database->getVillageByWorldID($vilIDs); - - foreach($dataarray1 as $data1) { - $database->setMovementProc($data1['moveid']); - if($data1['send'] > 1){ - $targettribe1 = $database->getUserFields($database->getVillageField($data1['to'],"owner"),"alliance, tribe",0)['tribe']; - $send = $data1['send']-1; - $this->sendResource2($data1['wood'],$data1['clay'],$data1['iron'],$data1['crop'],$data1['to'],$data1['from'],$targettribe1,$send); - } - } - } - - private function sendResource2($wtrans, $ctrans, $itrans, $crtrans, $from, $to, $tribe, $send) { - global $bid17, $bid28, $database, $units; - - $availableWood = $database->getWoodAvailable($from); - $availableClay = $database->getClayAvailable($from); - $availableIron = $database->getIronAvailable($from); - $availableCrop = $database->getCropAvailable($from); - - if($availableWood + $availableClay + $availableIron + $availableCrop > 0) - { - if($availableWood < $wtrans) $wtrans = $availableWood; - if($availableClay < $ctrans) $ctrans = $availableClay; - if($availableIron < $itrans) $itrans = $availableIron; - if($availableCrop < $crtrans) $crtrans = $availableCrop; - - $merchant2 = ($this->getTypeLevel(17, $from) > 0)? $this->getTypeLevel(17, $from) : 0; - $used2 = $database->totalMerchantUsed($from, false); - $merchantAvail2 = $merchant2 - $used2; - $maxcarry2 = ($tribe == 1)? 500 : (($tribe == 2)? 1000 : 750); - $maxcarry2 *= TRADER_CAPACITY; - - if($this->getTypeLevel(28, $from) != 0) { - $maxcarry2 *= $bid28[$this->getTypeLevel(28, $from)]['attri'] / 100; - } - - $resource = [$wtrans, $ctrans, $itrans, $crtrans]; - $reqMerc = ceil((array_sum($resource) - 0.1) / $maxcarry2); - - if($merchantAvail2 > 0 && $reqMerc <= $merchantAvail2) { - if($database->getVillageState($to)) { - $timetaken = $units->getWalkingTroopsTime($from, $to, 0, 0, [$tribe], 0); - $res = $resource[0] + $resource[1] + $resource[2] + $resource[3]; - if($res > 0){ - $reference = $database->sendResource($resource[0], $resource[1], $resource[2], $resource[3], $reqMerc, 0); - $database->modifyResource($from, $resource[0], $resource[1], $resource[2], $resource[3], 0); - $database->addMovement(0, $from, $to, $reference, microtime(true), microtime(true) + $timetaken, $send); - } - } - } - } - } - - private function resolveCatapultsDestruction(&$bdo, &$battlepart, &$info_cat, &$data, $catapultTarget, $twoRowsCatapultSetup, $isSecondRow, $catp_pic, $can_destroy, $isoasis, &$village_destroyed, $tribe) { - global $battle, $database, $bid34; - - if(isset($catapultTarget)) - { - //Currently targeted building/field level - $tblevel = (int) $bdo['f'.$catapultTarget]; - //Currently targetet building/field GID (ID of the building/field type - woodcutter, cropland, embassy...) - $tbgid = (int) $bdo['f'.$catapultTarget.'t']; - //Currently targeted building/field ID in the database (fdata, the fID field, e.g. f1, f2, f3...) - $tbid = (int) $catapultTarget; - - //If we're targeting the WW - if($catapultTarget == 40){ - $battlepart['catapults']['strongerBuildings'] = 1; - $battlepart['catapults']['moraleBonus'] = 1; - } - - $catapultsDamage = $battle->calculateCatapultsDamage($data['t8'], - $battlepart['catapults']['upgrades'], - $battlepart['catapults']['durability'], - $battlepart['catapults']['attackDefenseRatio'], - $battlepart['catapults']['strongerBuildings'], - $battlepart['catapults']['moraleBonus']); - - $newLevel = $battle->calculateNewBuildingLevel($tblevel, $catapultsDamage / ($twoRowsCatapultSetup ? 2 : 1)); - - //If that building was present in the building queue, we have to modify his level or remove it - $database->modifyBData($data['to'], $tbid, [$newLevel, $tblevel], $tribe); - - // building/field destroyed - if ($newLevel == 0){ - // prepare data to be updated - $fieldsToSet = ["f".$tbid]; - $fieldValuesToSet = [0]; - - // update $bdo, so we don't have to reselect later - $bdo['f'.$catapultTarget] = 0; - - if ($tbid >= 19 && $tbid != 99) { - $fieldsToSet[] = "f".$tbid."t"; - $fieldValuesToSet[] = 0; - $bdo['f'.$catapultTarget."t"] = 0; - } - - // update all that needs updating - $database->setVillageLevel($data['to'], $fieldsToSet, $fieldValuesToSet); - - $buildarray = $GLOBALS["bid".$tbgid]; - - // (great) warehouse level was changed - if ($tbgid == 10 || $tbgid == 38) { - $database->setMaxStoreForVillage($data['to'], $buildarray[$newLevel]['attri']); - } - - // (great) granary level was changed - if ($tbgid == 11 || $tbgid == 39) { - $database->setMaxCropForVillage($data['to'], $buildarray[$newLevel]['attri']); - } - - // oasis cannot be destroyed - $pop = $this->recountPop($data['to'], false); - if ($isoasis == 0 && $pop == 0 && $can_destroy == 1) $village_destroyed = 1; - - if ($isSecondRow) { - if ($tbid > 0) { - $info_cat .= "Information - \"Catapult\" ".$this->procResType($tbgid, $can_destroy)." destroyed."; - } - - // embassy level was changed - if ($tbgid == 18){ - $info_cat .= $database->checkEmbassiesAfterBattle($data['to'], $bdo['f'.$catapultTarget], false); - } - - $info_cat .= ""; - } else { - $info_cat = "".$catp_pic.", ".$this->procResType($tbgid, $can_destroy)." destroyed."; - - // embassy level was changed - if ($tbgid == 18){ - $info_cat .= $database->checkEmbassiesAfterBattle($data['to'], $bdo['f'.$catapultTarget], false); - } - } - } - // building/field not damaged - elseif($newLevel == $tblevel){ - if($isSecondRow) { - if ($tbid > 0) { - $info_cat .= "Information - \"Catapult\" ".$this->procResType($tbgid, $can_destroy)." was not damaged."; - } - } else { - $info_cat = "".$catp_pic.",".$this->procResType($tbgid, $can_destroy)." was not damaged."; - } - } - // building/field was damaged, let's calculate the actual damage - else - { - // update $bdo, so we don't have to reselect later - $bdo['f'.$catapultTarget] = $newLevel; - - // building was damaged to a lower level - $info_cata = " damaged from level ".$tblevel." to level ".$newLevel."."; - - $buildarray = $GLOBALS["bid".$tbgid]; - - // (great) warehouse level was changed - if ($tbgid == 10 || $tbgid == 38) { - $database->setMaxStoreForVillage($data['to'], $buildarray[$newLevel]['attri']); - } - - // (great) granary level was changed - if ($tbgid == 11 || $tbgid == 39) { - $database->setMaxCropForVillage($data['to'], $buildarray[$newLevel]['attri']); - } - - $fieldsToSet = ["f".$tbid]; - $fieldValuesToSet = [$newLevel]; - - $database->setVillageLevel($data['to'], $fieldsToSet, $fieldValuesToSet); - - // recalculate population and check if the village shouldn't be destroyed at this point - $pop = $this->recountPop($data['to'], false); - if ($isoasis == 0) { - if($pop == 0 && $can_destroy == 1) $village_destroyed = 1; - } - - if ($isSecondRow) { - $info_cat .= "Information - \"Catapult\" ".$this->procResType($tbgid, $can_destroy).$info_cata; - - // embassy level was changed - if ($tbgid == 18) { - $info_cat .= $database->checkEmbassiesAfterBattle($data['to'], $bdo['f'.$catapultTarget], false); - } - - $info_cat .= ""; - } else { - $info_cat = "" . $catp_pic . "," . $this->procResType($tbgid, $can_destroy).$info_cata; - - // embassy level was changed - if ($tbgid == 18) { - $info_cat .= $database->checkEmbassiesAfterBattle($data['to'], $bdo['f'.$catapultTarget], false); - } - } - } - }else{ - if(!isset($info_cat) || empty($info_cat) || $info_cat == ","){ - $info_cat = "".$catp_pic.", There are no buildings left to destroy"; - }else if(strpos($info_cat, "There are no buildings left") === false){ - $info_cat .= "Information - \"Catapult\" There are no buildings left to destroy."; - } - } - } - - private function sendunitsComplete() { - global $bid19, $bid23, $bid34, $u99, $database, $battle, $technology, $units; - - $time = time(); - $q = " - SELECT - `from`, `to`, endtime, ref, ctar1, ctar2, spy, moveid, attack_type, - t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, (SELECT oasistype FROM ".TB_PREFIX."wdata WHERE id = `to`) as oasistype - FROM - ".TB_PREFIX."movement, - ".TB_PREFIX."attacks - WHERE - ".TB_PREFIX."movement.ref = ".TB_PREFIX."attacks.id - AND - ".TB_PREFIX."movement.proc = 0 - AND - ".TB_PREFIX."movement.sort_type = 3 - AND - ".TB_PREFIX."attacks.attack_type != 2 - AND - endtime < $time - ORDER BY endtime ASC"; - $dataarray = $database->query_return($q); - $totalattackdead = $data_num = 0; - - if ($dataarray && count($dataarray)) { - // preload village data - $vilIDs = []; - foreach($dataarray as $data) { - $vilIDs[$data['from']] = true; - $vilIDs[$data['to']] = true; - } - $vilIDs = array_keys($vilIDs); - $database->getProfileVillages($vilIDs, 5); - $database->getUnit($vilIDs); - $database->getEnforceVillage($vilIDs, 0); - $database->getMovement(34, $vilIDs, 1); - $database->getABTech($vilIDs); - - // calculate battles - foreach($dataarray as $data) { - //set base things - $isoasis = $data['oasistype']; - $AttackArrivalTime = $data['endtime']; - $AttackerWref = $data['from']; - $DefenderWref = $data['to']; - $NatarCapital = false; - - $Attacker['id'] = $database->getUserArray($database->getVillageField($data['from'],"owner"), 1)["id"]; - $AttackerID = $Attacker['id']; - $owntribe = $database->getUserArray($database->getVillageField($data['from'],"owner"), 1)["tribe"]; - $ownally = $database->getUserArray($database->getVillageField($data['from'],"owner"), 1)["alliance"]; - $from = $database->getMInfo($data['from']); - $fromF = $database->getVillage($data['from']); - - //It's a village - if ($isoasis == 0){ - $DefenderUserData = $database->getUserArray($database->getVillageField($data['to'],"owner"), 1); - $Defender['id'] = $DefenderUserData["id"]; - $DefenderID = $Defender['id']; - $targettribe = $DefenderUserData["tribe"]; - $targetally = $DefenderUserData["alliance"]; - $to = $database->getMInfo($data['to']); - $toF = $database->getVillage($data['to']); - $conqureby = 0; - $NatarCapital = ($toF['owner'] == 3 && $toF['capital'] == 1); - if(!isset($to['name']) || empty($to['name'])) $to['name'] = "[?]"; - - $DefenderUnit = []; - $DefenderUnit = $database->getUnit($data['to']); - $evasion = $toF["evasion"]; - $maxevasion = $DefenderUserData["maxevasion"]; - $gold = $DefenderUserData["gold"]; - $playerunit = (($targettribe - 1) * 10); - $cannotsend = false; - - $movements = $database->getMovement(34, $data['to'], 1); - for($y = 0; $y < count($movements); $y++){ - if(property_exists($units, $y)){ - $returntime = $units->$y['endtime'] - time(); - if($units->$y['sort_type'] == 4 && $units->$y['from'] != 0 && $returntime <= 10){ - $cannotsend = true; - } - } - } - - if($evasion == 1 && $maxevasion > 0 && $gold > 1 && !$cannotsend && $dataarray[$data_num]['attack_type'] > 2){ - $evaded = true; - $totaltroops = 0; - $evasionUnitModifications_units = []; - $evasionUnitModifications_amounts = []; - $evasionUnitModifications_modes = []; - for($i = 1; $i <= 10; $i++){ - $playerunit += $i; - $data['u' . $i] = $DefenderUnit['u' . $playerunit]; - $evasionUnitModifications_units[] = $playerunit; - $evasionUnitModifications_amounts[] = $DefenderUnit['u' . $playerunit]; - $evasionUnitModifications_modes[] = 0; - $playerunit -= $i; - $totaltroops += $data['u' . $i]; - } - - $data['u11'] = $DefenderUnit['hero']; - $totaltroops += $data['u11']; - if($totaltroops > 0){ - $evasionUnitModifications_units[] = 'hero'; - $evasionUnitModifications_amounts[] = $DefenderUnit['hero']; - $evasionUnitModifications_modes[] = 0; - - $attackid = $database->addAttack($data['to'], $data['u1'], $data['u2'], $data['u3'], $data['u4'], $data['u5'], $data['u6'], $data['u7'], $data['u8'], $data['u9'], $data['u10'], $data['u11'], 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); - $database->addMovement(4, 0, $data['to'], $attackid, microtime(true), microtime(true) + (180 / EVASION_SPEED)); - $newgold = $gold - 2; - $newmaxevasion = $maxevasion - 1; - $database->updateUserField($DefenderID, ["gold", "maxevasion"], [$newgold, $newmaxevasion], 1); - } - - // modify units in DB - $database->modifyUnit($data['to'], $evasionUnitModifications_units, $evasionUnitModifications_amounts, $evasionUnitModifications_modes); - } - - //get defence units - $enforDefender = []; - $rom = $ger = $gal = $nat = $natar = 0; - $Defender = $database->getUnit($data['to'], false); - $enforcementarray = $database->getEnforceVillage($data['to'], 0); - - if(count($enforcementarray) > 0) { - foreach($enforcementarray as $enforce) { - for($i = 1; $i <= 50; $i++){ - if(!isset($enforDefender['u'.$i])){ - $enforDefender['u'.$i] = 0; - } - $enforDefender['u'.$i] += $enforce['u'.$i]; - } - - if (!isset($enforDefender['hero'])) { - $enforDefender['hero'] = 0; - } - $enforDefender['hero'] += $enforce['hero']; - } - } - - for($i = 1; $i <= 50; $i++){ - $def_ab[$i] = 0; - if(!isset($Defender['u'.$i]) || empty($Defender['u'.$i]) || $Defender['u'.$i] < 0) { - $Defender['u'.$i] = 0; - } - } - - if(!isset($Defender['hero']) || empty($Defender['hero']) || $Defender['hero'] < 0) { - $Defender['hero'] = 0; - } - - //get attack units - $Attacker = []; - $start = ($owntribe - 1) * 10 + 1; - $end = $owntribe * 10; - $u = ($owntribe - 1) * 10; - $catapult = [8, 18, 28, 48]; - $ram = [7, 17, 27, 47]; - $chief = [9, 19, 29, 49]; - $spys = [4, 14, 23, 44]; - for($i = $start; $i <= $end; $i++) { - $y = $i - $u; - $Attacker['u'.$i] = $dataarray[$data_num]['t'.$y]; - //there are catas - if(in_array($i, $catapult)) $catp_pic = $i; - if(in_array($i, $ram)) $ram_pic = $i; - if(in_array($i, $chief)) $chief_pic = $i; - if(in_array($i, $spys)) $spy_pic = $i; - } - $Attacker['uhero'] = $dataarray[$data_num]['t11']; - $hero_pic = "hero"; - - //need to set these variables. - $def_wall = $database->getFieldLevel($data['to'], 40, false); - $att_tribe = $owntribe; - $def_tribe = $targettribe; - $attpop = $defpop = $residence = 0; - $def_ab = []; - - //get level of palace or residence - $residence = $database->getFieldLevelInVillage($data['to'], '25, 26', false); - - //type of attack - $type = $dataarray[$data_num]['attack_type']; - if($type == 1) $scout = 1; - - $ud = ($def_tribe - 1) * 10; - $att_ab = $database->getABTech($data['from']); // Blacksmith level - $att_ab1 = $att_ab['b1']; - $att_ab2 = $att_ab['b2']; - $att_ab3 = $att_ab['b3']; - $att_ab4 = $att_ab['b4']; - $att_ab5 = $att_ab['b5']; - $att_ab6 = $att_ab['b6']; - $att_ab7 = $att_ab['b7']; - $att_ab8 = $att_ab['b8']; - $armory = $database->getABTech($data['to']); // Armory level - $def_ab[$ud + 1] = $armory['a1']; - $def_ab[$ud + 2] = $armory['a2']; - $def_ab[$ud + 3] = $armory['a3']; - $def_ab[$ud + 4] = $armory['a4']; - $def_ab[$ud + 5] = $armory['a5']; - $def_ab[$ud + 6] = $armory['a6']; - $def_ab[$ud + 7] = $armory['a7']; - $def_ab[$ud + 8] = $armory['a8']; - - //rams attack - if (($data['t7']) > 0 && $type == 3) { - $basearraywall = $to; - if (($walllevel = $database->getFieldLevel($basearraywall['wref'], 40, false)) > 0){ - $wallgid = $database->getFieldLevel($basearraywall['wref'],"40t"); - $wallid = 40; - $w = 4; - } - } - - $tblevel = 1; - $stonemason = $database->getFieldLevelInVillage($data['to'], 34); - - }else{ //It's an oasis - - $DefenderUserData = $database->getUserArray($database->getOasisField($data['to'], "owner"), 1); - $Defender['id'] = $DefenderUserData["id"]; - $DefenderID = $Defender['id']; - $targettribe = $DefenderUserData["tribe"]; - $targetally = $DefenderUserData["alliance"]; - $to = $database->getOMInfo($data['to']); - $toF = $database->getOasisV($data['to']); - $conqureby = $toF['conqured']; - //get defence units - $enforDefender = []; - $rom = $ger = $gal = $nat = $natar = 0; - $Defender = $database->getUnit($data['to'], false); - $enforcementarray = $database->getEnforceVillage($data['to'],0); - - if(count($enforcementarray) > 0) { - foreach($enforcementarray as $enforce) { - for($i = 1;$i <= 50; $i++) { - $enforDefender['u'.$i] += $enforce['u'.$i]; - } - $enforDefender['hero'] += $enforce['hero']; - } - } - - for($i = 1; $i <= 50; $i++){ - if(!isset($Defender['u'.$i]) || empty($Defender['u'.$i]) || $Defender['u'.$i] < 0) { - $Defender['u'.$i] = 0; - } - } - - if(!isset($Defender['hero']) || empty($Defender['hero']) || $Defender['hero'] < 0) { - $Defender['hero'] = 0; - } - - //get attack units - $Attacker = []; - $start = ($owntribe - 1) * 10 + 1; - $end = $owntribe * 10; - $u = ($owntribe - 1) * 10; - $catapult = [8, 18, 28, 38, 48]; - $ram = [7, 17, 27, 37, 47]; - $chief = [9, 19, 29, 39, 49]; - $spys = [4, 14, 23, 44]; - for($i = $start; $i <= $end; $i++) { - $y = $i - $u; - $Attacker['u'.$i] = $dataarray[$data_num]['t'.$y]; - //there are catas - if(in_array($i, $catapult)) $catp_pic = $i; - if(in_array($i, $ram)) $ram_pic = $i; - if(in_array($i, $chief)) $chief_pic = $i; - if(in_array($i, $spys)) $spy_pic = $i; - } - $Attacker['uhero'] = $dataarray[$data_num]['t11']; - $hero_pic = "hero"; - - //need to set these variables. - $def_wall = $residence = $attpop = 0; - $att_tribe = $owntribe; - $def_tribe = $targettribe; - $defpop = 500; - - //type of attack - $type = $dataarray[$data_num]['attack_type']; - if($type == 1) $scout = 1; - - $att_ab1 = $att_ab2 = $att_ab3 = $att_ab4 = $att_ab5 = $att_ab6 = $att_ab7 = $att_ab8 = 0; - $def_ab[31] = $def_ab[32] = $def_ab[33] = $def_ab[34] = $def_ab[35] = $def_ab[36] = $def_ab[37] = $def_ab[38] = 0; - - $walllevel = $tblevel = $stonemason = 0; - } - - $varray = $database->getProfileVillages($to['owner'], 0, false); - - if ($to['owner'] == $from['owner']) $varray1 = $varray; - else $varray1 = $database->getProfileVillages($from['owner'], 0, false); - - // total population of the defender - if($isoasis == 0){ - foreach($varray as $defenderVillage) $defpop += $defenderVillage['pop']; - } - - // total population of the attacker - foreach($varray1 as $attackerVillage) $attpop += $attackerVillage['pop']; - - //fix by ronix - for ($i = 1; $i <= 50; $i++) { - if (!isset($enforDefender['u'.$i])) { - $enforDefender['u'.$i] = 0; - } - $enforDefender['u'.$i] += (isset($Defender['u'.$i]) ? $Defender['u'.$i] : 0); - } - - $defspy = $enforDefender['u4'] > 0 || $enforDefender['u14'] > 0 || $enforDefender['u23'] > 0 || $enforDefender['u44'] > 0; - - if(PEACE == 0 || $targettribe == 4 || $targettribe == 5 || $scout){ - if($targettribe == 1) $def_spy = $enforDefender['u4']; - elseif($targettribe == 2) $def_spy = $enforDefender['u14']; - elseif($targettribe == 3) $def_spy = $enforDefender['u23']; - elseif($targettribe == 5) $def_spy = $enforDefender['u44']; - - //impossible to attack or scout NATAR Capital Village - if ($NatarCapital){ - for($i = 1; $i <= 11; $i++) ${'traped'.$i} = $data['t'.$i]; - } - elseif(empty($scout)) - { - $traps = max($Defender['u99'] - $Defender['u99o'], 0); - - $totalTroops = 0; - for($i = 1; $i <= 11; $i++) $totalTroops += $data['t'.$i]; - - if($traps >= $totalTroops){ - for($i = 1; $i <= 11; $i++) ${'traped'.$i} = $data['t'.$i]; - } - else - { - $multiplier = $traps / $totalTroops; - - //The hero is excluded, because it can be only trapped if traps > totalTroops - for($i = 1; $i <= 10; $i++){ - $trappedUnits = intval($data['t'.$i] * $multiplier); - ${'traped'.$i} = $trappedUnits; - $traps -= $trappedUnits; - } - - while($traps > 0){ - //There are some traps left, let's distribute them - for($i = 1; $i <= 10 && $traps > 0; $i++){ - if($data['t'.$i] != 0){ - ${'traped'.$i}++; - $traps--; - } - } - } - } - } - - if(empty($scout) || $NatarCapital){ - for ($i = 1; $i <= 11; $i++){ - if (!isset(${'traped'.$i})) ${'traped'.$i} = 0; - $totaltraped_att += ${'traped'.$i}; - } - - $database->modifyUnit($data['to'], ["99o"], [$totaltraped_att], [1]); - - for($i = $start; $i <= $end; $i++){ - $j = $i-$start+1; - $Attacker['u'.$i] -= ${'traped'.$j}; - } - $Attacker['uhero'] -= $traped11; - - if($totaltraped_att > 0){ - $prisoners2 = $database->getPrisoners2($data['to'], $data['from'], false); - if(empty($prisoners2)){ - $database->addPrisoners($data['to'],$data['from'],$traped1,$traped2,$traped3,$traped4,$traped5,$traped6,$traped7,$traped8,$traped9,$traped10,$traped11); - }else{ - $database->updatePrisoners($data['to'],$data['from'],$traped1,$traped2,$traped3,$traped4,$traped5,$traped6,$traped7,$traped8,$traped9,$traped10,$traped11); - } - } - } - - // we need to save the attacker heroid before the battle - if(isset($Attacker['uhero']) && $Attacker['uhero'] > 0){ - $AttackerHeroID = $database->getHeroField($from['owner'], "heroid"); - } - - // and the defender(s) heroid - $DefendersHeroID = []; - $herosend_def = 0; - - // check if our hero is defending the village, if so, add it to the list - if (isset($Defender['hero']) && $Defender['hero'] > 0) { - $DefendersHeroID[] = $database->getHeroField($DefenderID, "heroid"); - - // collecting information for the battle report - $herosend_def += $Defender['hero']; - } - - // check if there are other heroes defending the village - if(count($enforcementarray) > 0){ - foreach($enforcementarray as $enforcement){ - if($enforcement['hero'] > 0){ - $heroOwner = $database->getVillageField($enforcement['from'], "owner"); - $DefendersHeroID[] = $database->getHeroField($heroOwner, "heroid"); - } - } - } - - //fix by ronix - if (!isset($walllevel)) $walllevel = 0; - - $battlepart = $battle->calculateBattle($Attacker, $Defender, $def_wall, $att_tribe, $def_tribe, $residence, $attpop, $defpop, $type, $def_ab, $att_ab1, $att_ab2, $att_ab3, $att_ab4, $att_ab5, $att_ab6, $att_ab7, $att_ab8, $tblevel, $stonemason, $walllevel, 0, 0, 0, $AttackerID, $DefenderID, $AttackerWref, $DefenderWref, $conqureby, $enforcementarray); - - //Data for when troops return. - //catapults look :D - $info_cat = $info_chief = $info_ram = $info_hero = ","; - - //check to see if can destroy village - if (count($varray) > 1 && !$database->villageHasArtefact($DefenderWref)) { - $can_destroy = 1; - } - else $can_destroy = 0; - - //Catapults and rams management - //TODO: Move this in Battle.php - if($isoasis == 0){ - if ($type == 3){ - if (($data['t7'] - $traped7) > 0){ - if($walllevel > 0){ - $ramsDamage = $battle->calculateCatapultsDamage($data['t7'], - $battlepart['rams']['upgrades'], - $battlepart['rams']['durability'], - $battlepart['rams']['attackDefenseRatio'], - $battlepart['rams']['strongerBuildings'], - $battlepart['rams']['moraleBonus']); - $newLevel = $battle->calculateNewBuildingLevel($walllevel, $ramsDamage); - - if ($newLevel == 0){ - $info_ram = "".$ram_pic.",Wall destroyed."; - $database->setVillageLevel($data['to'], ["f".$wallid, "f".$wallid."t"], [0, 0]); - $pop = $this->recountPop($data['to']); - }elseif ($newLevel == $walllevel){ - $info_ram = "".$ram_pic.",Wall was not damaged."; - }else{ - $info_ram = "".$ram_pic.",Wall damaged from level ".$walllevel." to level ".$newLevel."."; - $database->setVillageLevel($data['to'],"f".$wallid."",$newLevel); - } - - //If the wall got damaged/destroyed during the attack - //we need to recalculate the whole battle - if($newLevel != $walllevel){ - $battlepart = $battle->calculateBattle($Attacker, $Defender, $newLevel, $att_tribe, $def_tribe, $residence, $attpop, $defpop, $type, $def_ab, $att_ab1, $att_ab2, $att_ab3, $att_ab4, $att_ab5, $att_ab6, $att_ab7, $att_ab8, $tblevel, $stonemason, $newLevel, 0, 0, 0, $AttackerID, $DefenderID, $AttackerWref, $DefenderWref, $conqureby, $enforcementarray); - } - } - else $info_ram = "".$ram_pic.",There is no wall to destroy."; - } - - if (($data['t8'] - $traped8) > 0) - { - $pop = $this->recountPop($data['to']); - - // village has been destroyed - if ($pop <= 0) { - if ($can_destroy == 1) $info_cat = "".$catp_pic.", Village already destroyed."; - else $info_cat = "".$catp_pic.", Village can\'t be destroyed."; - } - else - { - // village stands, let's do the damage - /** - * FIRST CATAPULTS ROW - */ - - $basearray = $data['to']; - $bdo = $database->getResourceLevel($basearray, false); - $catapultTarget = $data['ctar1']; - $catapultTarget2 = (isset($data['ctar2']) ? $data['ctar2'] : 0); - - $catapults1TargetRandom = ($catapultTarget == 0); - $catapults2WillNotShoot = ($catapultTarget2 == 0); - $catapults2TargetRandom = ($catapults2WillNotShoot || $catapultTarget2 == 99); - - // we're manually targetting 1st and/or 2nd row of catapults - if (!$catapults1TargetRandom) - { - $_catapultsTarget1Levels = []; - $__catapultsTarget1AltTargets = []; - - // calculate targets for 1st rows of catapults - $j = 0; - for ($i = 1; $i <= 41; $i++) - { - if ($i == 41) $i = 99; - - // 1st row of catapults pre-selected target calculations, if needed - if (!$catapults1TargetRandom && $bdo['f'.$i.'t'] == $catapultTarget && $bdo['f'.$i] > 0 && $i != 40) - { - $j++; - $_catapultsTarget1Levels[$j]=$bdo['f'.$i]; - $__catapultsTarget1AltTargets[$j]=$i; - } - } - - // if we couldn't find a suitable target for 1st row of catapults, - // select a random target instead - if (!$catapults1TargetRandom) { - if ( count( $_catapultsTarget1Levels ) > 0 ) { - if ( max( $_catapultsTarget1Levels ) <= 0 ) { - $catapultTarget = 0; - } else { - $catapultTarget = $__catapultsTarget1AltTargets[rand( 1, $j )]; - } - } else { - $catapultTarget = 0; - $catapults1TargetRandom = true; - } - } - } - - // 1st row of catapults set to target randomly - if ($catapults1TargetRandom) - { - $list = []; - for ($i = 1; $i <= 41; $i++) - { - if ($i == 41) $i = 99; - if ($bdo['f'.$i] > 0 && $i != 40) $list[] = $i; - } - $catapultTarget = $list[rand(0, count($list) - 1)]; - } - - /** - * resolve 1st row of catapults - */ - $village_destroyed = 0; - $this->resolveCatapultsDestruction($bdo, $battlepart, $info_cat, $data, $catapultTarget, !$catapults2WillNotShoot, false, $catp_pic, $can_destroy, $isoasis, $village_destroyed, $targettribe); - - /** - * SECOND CATAPULTS ROW - */ - - // we're manually targetting 2nd row of catapults - if (!$catapults2TargetRandom) - { - $_catapultsTarget2Levels = []; - $__catapultsTarget2AltTargets = []; - - // calculate targets for 2nd rows of catapults - $j = 0; - for ($i = 1; $i <= 41; $i++) - { - if ($i == 41) $i = 99; - - // 2nd row of catapults pre-selected target calculations, if needed - if (!$catapults2TargetRandom && !$catapults2WillNotShoot && $bdo['f'.$i.'t'] == $catapultTarget2 && $bdo['f'.$i] > 0 && $i != 40) - { - $j++; - $_catapultsTarget2Levels[$j] = $bdo['f'.$i]; - $__catapultsTarget2AltTargets[$j] = $i; - } - } - - // if we couldn't find a suitable target for 2nd row of catapults, - // select a random target instead - if (!$catapults2TargetRandom) { - if (count($_catapultsTarget2Levels) > 0 ) { - if (max($_catapultsTarget2Levels) <= 0 ) { - $catapultTarget2 = 99; - } - else $catapultTarget2 = $__catapultsTarget2AltTargets[rand( 1, $j )]; - } else { - $catapultTarget2 = 99; - $catapults2TargetRandom = true; - } - } - } - - // 2nd row of catapults set to target randomly - if ($catapults2TargetRandom && !$catapults2WillNotShoot) - { - $list = []; - for ($i = 1; $i <= 41; $i++) - { - if ($i == 41) $i = 99; - if ($bdo['f'.$i] > 0 && $i != 40) $list[] = $i; - } - $catapultTarget2 = $list[ rand(0, count($list) - 1) ]; - } - - /** - * resolve 2nd row of catapults - */ - if (!$catapults2WillNotShoot) { - $this->resolveCatapultsDestruction($bdo, $battlepart, $info_cat, $data, $catapultTarget2, true, true, $catp_pic, $can_destroy, $isoasis, $village_destroyed, $targettribe); - } - - // clear resource levels cache, since we might have destroyed buildings/fields by now - call_user_func(get_class($database).'::clearResourseLevelsCache'); - } - } - } elseif (($data['t7'] - $traped7) > 0) { - $info_ram = "".$ram_pic.",Hint: The ram does not work during a raid."; - } - } - else $can_destroy = 0; - - //units attack string for battleraport - $unitssend_att = ''.$data['t1'].','.$data['t2'].','.$data['t3'].','.$data['t4'].','.$data['t5'].','.$data['t6'].','.$data['t7'].','.$data['t8'].','.$data['t9'].','.$data['t10'].''; - $herosend_att = $data['t11']; - - if ($herosend_att > 0) $unitssend_att_check = $unitssend_att.','.$data['t11']; - else $unitssend_att_check = $unitssend_att; - - //Resetting the enforcement arrays - for($i = 1; $i <= 50; $i++) { - $DefenderEnf['u'.$i] = 0; - if($i <= 5){ - $DefenderHeroesTotArray[$i] = 0; - $DefenderHeroesDeadArray[$i] = 0; - } - } - - // our reinforcements count could have changed at this point, thus the re-select - $enforcementarray2 = $database->getEnforceVillage($data['to'], 0); - if(count($enforcementarray2) > 0) { - foreach($enforcementarray2 as $enforce2) { - for($i = 1; $i <= 50; $i++) { - $DefenderEnf['u'.$i] += $enforce2['u'.$i]; - } - - //Divide heroes by tribe - if($enforce2['hero'] > 0) { - $reinfTribe = ($enforce2['from'] == 0) ? 4 : $database->getUserField($database->getVillageField($enforce2['from'], "owner"), "tribe", 0); - $DefenderHeroesTotArray[$reinfTribe] += $enforce2['hero']; - $Defender['hero'] += $enforce2['hero']; - } - } - } - - $totalsend_alldef = 0; - $unitssend_def = []; - - //Own troops - $ownTroops = array_slice($Defender, ($targettribe - 1) * 10 + 1, 10); - $totalsend_alldef = array_sum($ownTroops); - - //Collecting informations for the report - $unitssend_def[0] = implode(",", $ownTroops); - $unitssend_deff[0] = '?,?,?,?,?,?,?,?,?,?,'; - - for($i = 1; $i <= 5; $i++){ - //Reinforcements - $reinfTroops = array_slice($DefenderEnf, ($i - 1) * 10, 10); - $totalsend_alldef += array_sum($reinfTroops); - - //Collecting informations for the report - $unitssend_def[$i] = implode(",", $reinfTroops); - $unitssend_deff[$i] = $unitssend_deff[0]; - } - $totalsend_alldef += $Defender['hero']; - - ################################################# - ################FIXED BY SONGER################ - ################################################# - - for($i = 1; $i <= 11; $i++){ - //MUST TO BE FIX : This is only for defender and still not properly coded - if (isset($battlepart['casualties_attacker']) && isset($battlepart['casualties_attacker'][$i]) && $battlepart['casualties_attacker'][$i] <= 0) { - ${'dead'.$i} = 0; - } else if (isset($data['t'.$i]) && isset($battlepart['casualties_attacker']) && isset($battlepart['casualties_attacker'][$i]) && $battlepart['casualties_attacker'][$i] > $data['t'.$i]) { - ${'dead'.$i} = $data['t'.$i]; - } else { - ${'dead'.$i} = (isset($battlepart['casualties_attacker']) && isset($battlepart['casualties_attacker'][$i]) ? $battlepart['casualties_attacker'][$i] : 0); - } - } - - ################################################# - - $dead = []; - $owndead = []; - $alldead = []; - - for($i = 1; $i <= 50; $i++) $alldead[$i] = 0; - $heroAttackDead = $dead11; - - //kill own defence - $unitlist = $database->getUnit($data['to'], false); - $start = ($targettribe-1)*10+1; - $end = ($targettribe*10); - - if ($targettribe == 1) $u = ""; - else $u = $targettribe - 1; - - $unitModifications_units = []; - $unitModifications_amounts = []; - $unitModifications_modes = []; - for ($i = $start; $i <= $end; $i++) { - if($i == $end) { - $u = $targettribe; - } - - if($unitlist){ - $owndead[$i] = round($battlepart[2] * $unitlist['u'.$i]); - $unitModifications_units[] = $i; - $unitModifications_amounts[] = $owndead[$i]; - $unitModifications_modes[] = 0; - } - } - - $owndead['hero'] = 0; - - if($unitlist){ - $owndead['hero'] = (isset($battlepart['deadherodef']) ? $battlepart['deadherodef'] : ''); - - $unitModifications_units[] = 'hero'; - $unitModifications_amounts[] = $owndead['hero']; - $unitModifications_modes[] = 0; - } - - // modify units in DB - $database->modifyUnit($data['to'], $unitModifications_units, $unitModifications_amounts, $unitModifications_modes); - - //kill other defence in village - // ... once again, units could have changed, so we need to reselect - $enforcementarray3 = $database->getEnforceVillage($data['to'],0); - foreach ($enforcementarray3 as $enforce) { - $life=''; $notlife=''; $wrong = false; - if($enforce['from'] != 0){ - $tribe = $database->getUserArray($database->getVillageField($enforce['from'],"owner"), 1)["tribe"]; - } - else $tribe = 4; - - $start = ($tribe - 1) * 10 + 1; - $end = ($tribe * 10); - unset($dead); - - switch($tribe) - { - case 1: $rom = 1; break; - case 2: $ger = 1; break; - case 3: $gal = 1; break; - case 4: $nat = 1; break; - case 5: - default: $natar = 1; break; - } - - $enforceModificationsById = []; - for ($i = $start; $i <= $end; $i++){ - if($enforce['u'.$i]>'0'){ - if (!isset($enforceModificationsById[$enforce['id']])) { - $enforceModificationsById[$enforce['id']] = [ - 'units' => [], - 'amounts' => [], - 'modes' => [] - ]; - } - $enforceModificationsById[$enforce['id']]['units'][] = $i; - $enforceModificationsById[$enforce['id']]['amounts'][] = (isset($battlepart[2]) ? round($battlepart[2]*$enforce['u'.$i]) : 0); - $enforceModificationsById[$enforce['id']]['modes'][] = 0; - $dead[$i] = (isset($battlepart[2]) ? round($battlepart[2]*$enforce['u'.$i]) : 0); - $checkpoint = (isset($battlepart[2]) ? round($battlepart[2]*$enforce['u'.$i]) : 0); - - if (!isset($enforce['u'.$i])) $enforce['u'.$i] = 0; - - $alldead[$i] += $dead[$i]; - - $wrong = $checkpoint != $enforce['u'.$i]; - } - else $dead[$i] = 0; - } - - if($enforce['hero'] > 0) { - $enforceModificationsById[$enforce['id']]['units'][] = 'hero'; - $enforceModificationsById[$enforce['id']]['amounts'][] = $battlepart['deadheroref'][$enforce['id']]; - $enforceModificationsById[$enforce['id']]['modes'][] = 0; - - $dead['hero'] = $battlepart['deadheroref'][$enforce['id']]; - $alldead['hero'] += $dead['hero']; - $wrong = $dead['hero'] != $enforce['hero']; - - //Collecting information for the report - $reinfTribe = ($enforce['from'] == 0) ? 4 : $database->getUserField($database->getVillageField($enforce['from'], "owner"), "tribe", 0); - $DefenderHeroesDeadArray[$reinfTribe] += $dead['hero']; - } - - // modify enforce in DB - foreach ($enforceModificationsById as $enforceId => $enforceArray) { - $database->modifyEnforce( $enforceId, $enforceArray['units'], $enforceArray['amounts'], $enforceArray['modes']); - } - - $notlife= ''.$dead[$start].','.$dead[$start+1].','.$dead[$start+2].','.$dead[$start+3].','.$dead[$start+4].','.$dead[$start+5].','.$dead[$start+6].','.$dead[$start+7].','.$dead[$start+8].','.$dead[$start+9].''; - $notlife1 = $dead[$start]+$dead[$start+1]+$dead[$start+2]+$dead[$start+3]+$dead[$start+4]+$dead[$start+5]+$dead[$start+6]+$dead[$start+7]+$dead[$start+8]+$dead[$start+9]; - $life= ''.$enforce['u'.$start.''].','.$enforce['u'.($start+1).''].','.$enforce['u'.($start+2).''].','.$enforce['u'.($start+3).''].','.$enforce['u'.($start+4).''].','.$enforce['u'.($start+5).''].','.$enforce['u'.($start+6).''].','.$enforce['u'.($start+7).''].','.$enforce['u'.($start+8).''].','.$enforce['u'.($start+9).''].''; - $life1 = $enforce['u'.$start.'']+$enforce['u'.($start+1).'']+$enforce['u'.($start+2).'']+$enforce['u'.($start+3).'']+$enforce['u'.($start+4).'']+$enforce['u'.($start+5).'']+$enforce['u'.($start+6).'']+$enforce['u'.($start+7).'']+$enforce['u'.($start+8).'']+$enforce['u'.($start+9).'']; - $lifehero = (isset($enforce['hero']) ? $enforce['hero'] : 0); - $notlifehero = (isset($dead['hero']) ? $dead['hero'] : 0); - $totallife = (isset($enforce['hero']) ? $enforce['hero'] : 0)+$life1; - $totalnotlife = (isset($dead['hero']) ? $dead['hero'] : 0)+$notlife1; - $totalsend_att = $data['t1']+$data['t2']+$data['t3']+$data['t4']+$data['t5']+$data['t6']+$data['t7']+$data['t8']+$data['t9']+$data['t10']+$data['t11']; - $totaldead_att = $dead1+$dead2+$dead3+$dead4+$dead5+$dead6+$dead7+$dead8+$dead9+$dead10+$dead11; - //NEED TO SEND A RAPPORTAGE!!! - $data2 = ''.$database->getVillageField( $enforce['from'], "owner" ).','.$to['wref'].','.addslashes($to['name']).','.$tribe.','.$life.','.$notlife.','.$lifehero.','.$notlifehero.','.$enforce['from'].''; - if(empty($scout)) { - if($totalnotlife == 0){ - $database->addNotice($database->getVillageField( $enforce['from'], "owner" ),$from['wref'],$ownally,15,'Reinforcement in '.addslashes($to['name']).' was attacked',$data2,$AttackArrivalTime); - }else if($totallife > $totalnotlife){ - $database->addNotice($database->getVillageField( $enforce['from'], "owner" ),$from['wref'],$ownally,16,'Reinforcement in '.addslashes($to['name']).' was attacked',$data2,$AttackArrivalTime); - }else{ - $database->addNotice($database->getVillageField( $enforce['from'], "owner" ),$from['wref'],$ownally,17,'Reinforcement in '.addslashes($to['name']).' was attacked',$data2,$AttackArrivalTime); - } - //delete reinf sting when its killed all. - if(!$wrong) $database->deleteReinf($enforce['id']); - } - } - $totalsend_att = $data['t1']+$data['t2']+$data['t3']+$data['t4']+$data['t5']+$data['t6']+$data['t7']+$data['t8']+$data['t9']+$data['t10']+$data['t11']; - - $DefenderHeroesTot = implode(",", $DefenderHeroesTotArray); - $DefenderHeroesDead = implode(",", $DefenderHeroesDeadArray); - - if (empty($alldead['hero'])) $alldead['hero'] = 0; - if (empty($owndead['hero'])) $owndead['hero'] = 0; - $deadhero = $owndead['hero']; - - //Counting own total dead troops - $ownDeadTroops = array_slice($owndead, 0, 10); - $totaldead_alldef = array_sum($ownDeadTroops); - - //Collecting informations for the report - $unitsdead_def[0] = implode(",", $ownDeadTroops); - $unitsdead_deff[0] = '?,?,?,?,?,?,?,?,?,?,'; - for($i = 1; $i <= 5; $i++){ - //Counting reinforcements total dead troops - $deadTroops = array_slice($alldead, ($i - 1) * 10, 10); - $totaldead_alldef += array_sum($deadTroops); - //Collecting informations for the report - $unitsdead_def[$i] = implode(",", $deadTroops); - $unitsdead_deff[$i] = $unitsdead_deff[0]; - } - $totaldead_alldef += ($deadhero + $alldead['hero']); - - if (!isset($totalattackdead)) $totalattackdead = 0; - $totalattackdead += $totaldead_alldef; - - // Set units returning from attack - - $p_units = []; - for ($i = 1; $i <= 11; $i++) { - if (!isset(${'dead'.$i})) ${'dead'.$i} = 0; - if (!isset(${'traped'.$i})) ${'traped'.$i} = 0; - $p_units[] = "t".$i." = t".$i." - ".(${'dead'.$i} + ${'traped'.$i}); - } - - $database->modifyAttack3($data['ref'],implode(', ', $p_units)); - - $unitsdead_att = $dead1.','.$dead2.','.$dead3.','.$dead4.','.$dead5.','.$dead6.','.$dead7.','.$dead8.','.$dead9.','.$dead10; - $unitstraped_att = $traped1.','.$traped2.','.$traped3.','.$traped4.','.$traped5.','.$traped6.','.$traped7.','.$traped8.','.$traped9.','.$traped10.','.$traped11; - - if($herosend_att > 0) $unitsdead_att_check = $unitsdead_att.','.$dead11; - else $unitsdead_att_check = $unitsdead_att; - - - //top 10 attack and defence update - $totaldead_att = $dead1 + $dead2 + $dead3 + $dead4 + $dead5 + $dead6 + $dead7 + $dead8 + $dead9 + $dead10 + $dead11; - $totalattackdead += $totaldead_att; - $troopsdead1 = $dead1; - $troopsdead2 = $dead2; - $troopsdead3 = $dead3; - $troopsdead4 = $dead4; - $troopsdead5 = $dead5; - $troopsdead6 = $dead6; - $troopsdead7 = $dead7; - $troopsdead8 = $dead8; - $troopsdead9 = $dead9 + 1; - $troopsdead10 = $dead10; - $troopsdead11 = $dead11; - - $totaldead_def = 0; - $totalpoint_att = 0; - - for($i = 1 ;$i <= 50; $i++) { - $unitarray = $GLOBALS["u".$i]; - - //Reinforcements dead troops - $totaldead_def += $alldead[$i]; - $totalpoint_att += ($alldead[$i] * $unitarray['pop']); - - //Own dead troops - if($i >= ($targettribe - 1) * 10 + 1 && $i <= $targettribe * 10){ - $totaldead_def += $owndead[$i]; - $totalpoint_att += ($owndead[$i] * $unitarray['pop']); - } - } - $totalpoint_att += ((isset($alldead['hero']) ? $alldead['hero'] : 0) * 6); - $totalpoint_att += ((isset($owndead['hero']) ? $owndead['hero'] : 0) * 6); - - if ($Attacker['uhero'] > 0){ - $heroxp = $totalpoint_att; - $database->modifyHeroXp("experience", $heroxp, $AttackerHeroID); - } - - for($i = 1; $i <= 10; $i++){ - $unitarray = $GLOBALS["u".(($att_tribe - 1) * 10 + $i)]; - $totalpoint_def += (${'dead'.$i}*$unitarray['pop']); - } - - $totalpoint_def += $dead11 * 6; - - if($Defender['hero'] > 0){ - //counting heroxp - $defheroxp = intval($totalpoint_def / count($DefendersHeroID)); - foreach($DefendersHeroID as $HeroID){ - $database->modifyHeroXp("experience",$defheroxp,$HeroID); - } - } - - // we don't need these two variables anymore - unset($AttackerHeroID, $DefendersHeroID); - - $database->modifyPoints( - $toF['owner'], - ['dpall', 'dp'], - [$totalpoint_def, $totalpoint_def] - ); - - $database->modifyPoints( - $from['owner'], - ['apall', 'ap'], - [$totalpoint_att, $totalpoint_att] - ); - - $database->modifyPointsAlly( - $targetally, - ['Adp', 'dp'], - [$totalpoint_def, $totalpoint_def] - ); - - $database->modifyPointsAlly( - $ownally, - ['Aap', 'ap'], - [$totalpoint_att, $totalpoint_att] - ); - - if ($isoasis == 0){ - // get total cranny value: - $buildarray = $database->getResourceLevel($data['to']); - $cranny = 0; - for($i = 19; $i < 39;$i++){ - if($buildarray['f'.$i.'t'] == 23){ - $cranny += $bid23[$buildarray['f'.$i]]['attri'] * CRANNY_CAPACITY; - } - } - - //cranny efficiency - $atk_bonus = ($owntribe == 2) ? (4 / 5) : 1; - $def_bonus = ($targettribe == 3) ? 2 : 1; - $to_owner = $database->getVillageField($data['to'], "owner"); - - $crannySpy = $database->getArtifactsValueInfluence($to_owner, $data['to'], 7, $cranny * $def_bonus); - $cranny_eff = $crannySpy * $atk_bonus; - - // work out available resources. - $this->updateRes($data['to']); - $this->pruneResource(); - - $villageData = $database->getVillageFields($data['to'], 'clay, iron, wood, crop', false); - $totclay = $villageData['clay']; - $totiron = $villageData['iron']; - $totwood = $villageData['wood']; - $totcrop = $villageData['crop']; - }else{ - $cranny_eff = 0; - - if ($conqureby > 0) { //10% from owner proc village owner - fix by ronix - exploit fixed by iopietro - $this->updateRes($conqureby); - $this->pruneResource(); - - $villageData = $database->getVillageFields($conqureby, 'clay, iron, wood, crop', false); - $totclay = intval($villageData['clay'] / 10); - $totiron = intval($villageData['iron'] / 10); - $totwood = intval($villageData['wood'] / 10); - $totcrop = intval($villageData['crop'] / 10); - }else{ - // work out available resources. - $this->updateORes($data['to']); - $this->pruneOResource(); - - $oasisData = $database->getOasisFields($data['to'], false); - $totclay = $oasisData['clay']; - $totiron = $oasisData['iron']; - $totwood = $oasisData['wood']; - $totcrop = $oasisData['crop']; - } - } - - $avclay = floor($totclay - $cranny_eff); - $aviron = floor($totiron - $cranny_eff); - $avwood = floor($totwood - $cranny_eff); - $avcrop = floor($totcrop - $cranny_eff); - - $avclay = ($avclay < 0) ? 0 : $avclay; - $aviron = ($aviron < 0) ? 0 : $aviron; - $avwood = ($avwood < 0) ? 0 : $avwood; - $avcrop = ($avcrop < 0) ? 0 : $avcrop; - - $avtotal = [$avwood, $avclay, $aviron, $avcrop]; - $av = $avtotal; - - // resources (wood,clay,iron,crop) - $steal = [0, 0, 0, 0]; - - //bounty variables - $btotal = $battlepart['bounty']; - $bmod = 0; - - for($i = 0; $i < 5; $i++) - { - for($j = 0; $j < 4; $j++) - { - if(isset($avtotal[$j])) - { - if($avtotal[$j] < 1) unset($avtotal[$j]); - } - } - - //No resources left to take - if(empty($avtotal) || ($btotal < 1 && $bmod < 1)) break; - - if($btotal < 1) - { - while($bmod) - { - //random select - $rs = array_rand($avtotal); - if(isset($avtotal[$rs])) - { - $avtotal[$rs] -= 1; - $steal[$rs] += 1; - $bmod -= 1; - } - } - } - - // handle unbalanced amounts. - $btotal += $bmod; - $bmod = $btotal % count($avtotal); - $btotal -= $bmod; - $bsplit = $btotal / count($avtotal); - - $max_steal = (min($avtotal) < $bsplit) ? min($avtotal) : $bsplit; - - for($j = 0; $j < 4; $j++) - { - if(isset($avtotal[$j])) - { - $avtotal[$j] -= $max_steal; - $steal[$j] += $max_steal; - $btotal -= $max_steal; - } - } - } - - //chiefing village - //there are senators - if(($data['t9'] - $dead9 - $traped9) > 0 && $isoasis == 0){ - if ($type == 3) { - $palacelevel = $database->getResourceLevel($from['wref']); - - for($i = 1; $i <= 40; $i++) { - if($palacelevel['f'.$i.'t'] == 26) $plevel = $i; - elseif($palacelevel['f'.$i.'t'] == 25) $plevel = $i; - } - - if($palacelevel['f'.$plevel.'t'] == 26){ - if($palacelevel['f'.$plevel] < 10) $canconquer = 0; - elseif($palacelevel['f'.$plevel] < 15) $canconquer = 1; - elseif($palacelevel['f'.$plevel] < 20) $canconquer = 2; - else $canconquer = 3; - }else if($palacelevel['f'.$plevel.'t'] == 25){ - if($palacelevel['f'.$plevel] < 10) $canconquer = 0; - elseif($palacelevel['f'.$plevel] < 20) $canconquer = 1; - else $canconquer = 2; - } - - $expArray = $database->getVillageFields($from['wref'], 'exp1, exp2, exp3'); - $exp1 = $expArray['exp1']; - $exp2 = $expArray['exp2']; - $exp3 = $expArray['exp3']; - - if($exp1 == 0) $villexp = 0; - elseif($exp2 == 0) $villexp = 1; - elseif($exp3 == 0) $villexp = 2; - else $villexp = 3; - - $mode = CP; - $cp_mode = $GLOBALS['cp'.$mode]; - $need_cps = $cp_mode[count($varray1) + 1]; - $user_cps = $database->getUserArray($from['owner'], 1)['cp']; - - //check for last village or capital - if($user_cps >= $need_cps){ - if(count($varray) > 1 && $to['capital'] != 1 && $villexp < $canconquer){ - if($to['owner'] != 3 || $to['name'] != 'WW Buildingplan'){ - // check for standing Palace or Residence - // note: at this point, we can use cache, since we've cleared it above - if ($database->getFieldLevelInVillage($data['to'], '25, 26')) { - $nochiefing = 1; - $info_chief = "".$chief_pic.",The Palace/Residence isn\'t destroyed!"; - } - - // we can conquer this village - if(!isset($nochiefing)){ - //$info_chief = "".$chief_pic.",You don't have enought CP to chief a village."; - // note: at this point, we can use cache, since we've cleared it above - $time = time(); - $reducedLoyaltyTotal = $reducedLoyalty = 0; - for ($i = 0; $i < ($data['t9'] - $dead9 - $traped9); $i++){ - - //Random factor, which depends on the attacking tribe - if($owntribe == 1) $reducedLoyalty = rand(20, 30); - else $reducedLoyalty = rand(20, 25); - - //If a Big Party is active in the attacking village - if($from['celebration'] > $time && $from['type'] == 2) $reducedLoyalty += 5; - - //If a Big Party is active in the target village - if($to['celebration'] > $time && $to['type'] == 2) $reducedLoyalty -= 5; - - //Moral bonus - $reducedLoyalty /= $battlepart['moralBonus']; - - //If the brewery is built (Teutons only) - if($owntribe == 2 && $this->getTypeLevel(35, $data['from']) > 0) $reducedLoyalty /= 2; - - $reducedLoyaltyTotal += $reducedLoyalty; - } - - // loyalty is more than 0 - if (($toF['loyalty'] - $reducedLoyaltyTotal) > 0) { - $info_chief = "".$chief_pic.",The loyalty was lowered from ".floor($toF['loyalty'])." to ".floor($toF['loyalty'] - $reducedLoyaltyTotal)."."; - $database->setVillageField($data['to'], 'loyalty', ($toF['loyalty'] - $reducedLoyaltyTotal)); - } else if (!$village_destroyed) { - // you took over the village - $villname = addslashes($database->getVillageField($data['to'],"name")); - $artifact = reset($database->getOwnArtefactInfo($data['to'])); - - $info_chief = "".$chief_pic.",Inhabitants of ".$villname." village decided to join your empire."; - - if ($artifact['vref'] == $data['to']){ - $database->claimArtefact($data['to'], $data['to'], $database->getVillageField($data['from'], "owner")); - } - - $database->setVillageFields( - $data['to'], - ['loyalty', 'owner'], - [0, $database->getVillageField($data['from'],"owner")] - ); - - //delete upgrades in armory and blacksmith - $q = "DELETE FROM ".TB_PREFIX."abdata WHERE vref = ".(int) $data['to']; - $database->query($q); - $database->addABTech($data['to']); - - //delete researches in academy - $q = "DELETE FROM ".TB_PREFIX."tdata WHERE vref = ".(int) $data['to']; - $database->query($q); - $database->addTech($data['to']); - - //delete reinforcement - $q = "DELETE FROM ".TB_PREFIX."enforcement WHERE `from` = ".(int) $data['to']; - $database->query($q); - - //delete trade routes - $q = "DELETE FROM ".TB_PREFIX."route where wid = ".(int) $data['to']." OR `from` =".(int) $data['to']; - $database->query($q); - - //no units can stay in the village itself - $units2reset = []; - for ($u = 1; $u <= 50; $u++) $units2reset[] = 'u'.$u.' = 0'; - - $units2reset[] = 'u99 = 0'; - $units2reset[] = 'u99o = 0'; - $units2reset[] = 'hero = 0'; - $q = "UPDATE ".TB_PREFIX."units SET ".implode(',', $units2reset)." WHERE vref = ".(int) $data['to']; - $database->query($q); - - // check buildings - $newLevels_fieldNames = []; - $newLevels_fieldValues = []; - - $poparray = $database->getVSumField([$AttackerID, $DefenderID] ,"pop"); - $pop1 = $poparray[0]['Total']; - $pop2 = $poparray[1]['Total']; - if($pop1 > $pop2 && $targettribe != 5){ - $buildlevel = $database->getResourceLevel($data['to']); - for ($i = 1; $i <= 39; $i++){ - if($buildlevel['f'.$i]!=0){ - if($buildlevel['f'.$i."t"] != 35 && $buildlevel['f'.$i."t"] != 36 && $buildlevel['f'.$i."t"] != 41){ - $leveldown = $buildlevel['f'.$i]-1; - $newLevels_fieldNames[] = "f".$i; - $newLevels_fieldValues[] = $leveldown; - - // building at level 0, remove it completely - if (!$leveldown > 0) { - $newLevels_fieldNames[] = "f".$i."t"; - $newLevels_fieldValues[] = 0; - } - }else{ - $newLevels_fieldNames[] = "f".$i; - $newLevels_fieldValues[] = 0; - - $newLevels_fieldNames[] = "f".$i."t"; - $newLevels_fieldValues[] = 0; - } - } - } - - if ($buildlevel['f99'] != 0) { - $leveldown = $buildlevel['f99'] - 1; - $newLevels_fieldNames[] = "f99"; - $newLevels_fieldValues[] = $leveldown; - } - } - - //destroy wall - $newLevels_fieldNames[] = "f40"; - $newLevels_fieldValues[] = 0; - - $newLevels_fieldNames[] = "f40t"; - $newLevels_fieldValues[] = 0; - - //clear expansion slot in the village which founded the conquered one - $database->clearExpansionSlot($data['to'], 1); - - $expArray = $database->getVillageFields($data['from'], 'exp1, exp2, exp3'); - $exp1 = $expArray['exp1']; - $exp2 = $expArray['exp2']; - $exp3 = $expArray['exp3']; - - if($exp1 == 0){ - $exp = 'exp1'; - $value = $data['to']; - }elseif($exp2 == 0){ - $exp = 'exp2'; - $value = $data['to']; - }else{ - $exp = 'exp3'; - $value = $data['to']; - } - - $database->setVillageField($data['from'], $exp, $value); - - //Remove oasis related to village - $units->returnTroops($data['to'], 1); - $chiefing_village = 1; - - //Remove trade routes related to village - $database->deleteTradeRoutesByVillage($data['to']); - - //Update data in the database - $database->setVillageLevel($data['to'], $newLevels_fieldNames, $newLevels_fieldValues); - - //Recount the population - $pop = $this->recountPop($data['to'], false); - - //Kill and reassign the hero to the capital village, if registered in the conquered one - $database->reassignHero($data['to']); - } - } - } - else $info_chief = "".$chief_pic.",You cant take over this village."; - } - else $info_chief = "".$chief_pic.",You cant take over this village."; - } - else $info_chief = "".$chief_pic.",Not enough culture points."; - unset($plevel); - } - else - $info_chief = "".$chief_pic.",Could not reduce cultural points during raid"; - } - - if(($data['t11'] - $dead11 - $traped11) > 0){ //hero - if ($heroxp == 0) { - $xp = ""; - $info_hero = $hero_pic.",Your hero had nothing to kill therefore gains no XP at all."; - } else { - $xp = " and gained ".$heroxp." XP from the battle."; - $info_hero = $hero_pic.",Your hero gained ".$heroxp." XP."; - } - - if ($isoasis != 0) { //oasis fix by ronix - if ($to['owner'] != $from['owner']) { - $troopcount = $database->countOasisTroops($data['to'], false); - $canqured = $database->canConquerOasis($data['from'], $data['to'], false); - if ($canqured == 1 && $troopcount == 0) { - $database->conquerOasis($data['from'], $data['to']); - $info_hero = $hero_pic.",Your hero has conquered this oasis".$xp; - }else{ - if ($canqured == 3 && $troopcount == 0) { - if ($type == 3) { - $Oloyaltybefore = intval($to['loyalty']); - //$database->modifyOasisLoyalty($data['to']); - //$OasisInfo = $database->getOasisInfo($data['to']); - $Oloyaltynow = intval($database->modifyOasisLoyalty($data['to']));//intval($OasisInfo['loyalty']); - $info_hero = $hero_pic.",Your hero has reduced oasis loyalty to ".$Oloyaltynow." from ".$Oloyaltybefore.$xp; - } - else $info_hero = $hero_pic.",Could not reduce loyalty during raid".$xp; - } - } - } - } else { - if ($heroxp == 0) $xp=" no XP from the battle."; - else $xp=" gained ".$heroxp." XP from the battle."; - - $artifact = reset($database->getOwnArtefactInfo($data['to'])); - if (!empty($artifact)) { - if ($type == 3) { - if (empty($artifactError = $database->canClaimArtifact($data['from'], $artifact['vref'], $artifact['size'], $artifact['type']))) { - $database->claimArtefact($data['from'], $data['to'], $database->getVillageField($data['from'], "owner")); - $info_hero = $hero_pic.",Your hero is carrying home the artifact ".$artifact['name']." and".$xp; - - // if the defender pop is 0 with no artefact, then destroy the village - if($database->getVillageField($data['to'], "pop") == 0 || $targettribe == 5){ - $can_destroy = $village_destroyed = 1; - if(strpos($info_cat, "The village has") === false) $info_hero .= " The village has been destroyed."; - } - } - else $info_hero = $hero_pic.",".$artifactError.$xp; - } - else $info_hero = $hero_pic.",Your hero could not claim an artifact during raid".$xp; - } - } - }elseif($data['t11'] > 0) { - if ($heroxp == 0) $xp = ""; - else $xp = " but gained ".$heroxp." XP from the battle."; - - if ($traped11 > 0) $info_hero = $hero_pic.",Your hero was trapped".$xp; - else $info_hero = $hero_pic.",Your hero died".$xp; - } - - if ($DefenderID == 0) $natar = 0; - - if(!empty($scout)) { - if ($data['spy'] == 1){ - $info_spy = "".$spy_pic.",
\"Lumber\"".round($totwood)." | - \"Clay\"".round($totclay)." | - \"Iron\"".round($totiron)." | - \"Crop\"".round($totcrop)."
-
\"carry\"Total Resources: ".round($totwood+$totclay+$totiron+$totcrop)."
- "; - }else if($data['spy'] == 2){ - if ($isoasis == 0){ - $walllevel = $database->getFieldLevelInVillage($data['to'], '31, 32, 33'); - $residencelevel = $database->getFieldLevelInVillage($data['to'], 25); - $palacelevel = $database->getFieldLevelInVillage($data['to'], 26); - $residenceimg = "\"Residence\""; - $palaceimg = "\"Palace\""; - $crannyimg = "\"Cranny\""; - $wallimg = "\"Wall\""; - $info_spy = "".$spy_pic.","; - if($residencelevel > 0) $info_spy .= $residenceimg." Residence level:".$residencelevel."
"; - elseif($palacelevel > 0) $info_spy .= $palaceimg." Palace level: ".$palacelevel."
"; - - if($walllevel > 0) $info_spy .= $wallimg." Wall level: ".$walllevel."
"; - $info_spy .= $crannyimg." Total crannies capacity: ".$crannySpy.""; - } - else $info_spy = "".$spy_pic.", There are no informations to show"; - } - - $data2 = ''.$from['owner'].','.$from['wref'].','.$owntribe.','.$unitssend_att.','.$unitsdead_att.',0,0,0,0,0,'.$to['owner'].','.$to['wref'].','.addslashes($to['name']).',,,,'.$targettribe.','.$unitssend_def[0].','.$unitsdead_def[0].','.$rom.','.$unitssend_def[1].','.$unitsdead_def[1].','.$ger.','.$unitssend_def[2].','.$unitsdead_def[2].','.$gal.','.$unitssend_def[3].','.$unitsdead_def[3].','.$nat.','.$unitssend_def[4].','.$unitsdead_def[4].','.$natar.','.$unitssend_def[5].','.$unitsdead_def[5].','.$DefenderHeroesTot.','.$DefenderHeroesDead.','.$info_ram.','.$info_cat.','.$info_chief.','.$info_spy.','.$data['t11'].','.$dead11.','.$herosend_def.','.$deadhero.',,'.$unitstraped_att; - }else{ - if(isset($village_destroyed) && $village_destroyed == 1 && $can_destroy==1){ - //check if village pop=0 and no info destroy - if (strpos($info_cat, "The village has") === false) { - $info_cat .= "Information - \"Catapult\" The village has been destroyed."; - } - } - $data2 = ''.$from['owner'].','.$from['wref'].','.$owntribe.','.$unitssend_att.','.$unitsdead_att.','.$steal[0].','.$steal[1].','.$steal[2].','.$steal[3].','.$battlepart['bounty'].','.$to['owner'].','.$to['wref'].','.addslashes($to['name']).',,,,'.$targettribe.','.$unitssend_def[0].','.$unitsdead_def[0].','.$rom.','.$unitssend_def[1].','.$unitsdead_def[1].','.$ger.','.$unitssend_def[2].','.$unitsdead_def[2].','.$gal.','.$unitssend_def[3].','.$unitsdead_def[3].','.$nat.','.$unitssend_def[4].','.$unitsdead_def[4].','.$natar.','.$unitssend_def[5].','.$unitsdead_def[5].','.$DefenderHeroesTot.','.$DefenderHeroesDead.','.$info_ram.','.$info_cat.','.$info_chief.','.(isset($info_spy) ? $info_spy : '').',,'.$data['t11'].','.$dead11.','.$herosend_def.','.$deadhero.','.$unitstraped_att; - } - - if($totalsend_att - ($totaldead_att + (isset($totaltraped_att) ? $totaltraped_att : 0)) <= 0){ - $info_troop = "None of your soldiers returned."; - } - else $info_troop = ""; - - //When all of the attacker's troops die, send no informations - $data_fail = ''.$from['owner'].','.$from['wref'].','.$owntribe.','.$unitssend_att.','.$unitsdead_att.','.$steal[0].','.$steal[1].','.$steal[2].','.$steal[3].','.$battlepart['bounty'].','.$to['owner'].','.$to['wref'].','.addslashes($to['name']).',,,,'.$targettribe.','.$unitssend_deff[0].','.$unitsdead_deff[0].','.$rom.','.$unitssend_deff[1].','.$unitsdead_deff[1].','.$ger.','.$unitssend_deff[2].','.$unitsdead_deff[2].','.$gal.','.$unitssend_deff[3].','.$unitsdead_deff[3].','.$nat.','.$unitssend_deff[4].','.$unitsdead_deff[4].','.$natar.','.$unitssend_deff[5].','.$unitsdead_deff[5].','.$DefenderHeroesTot.','.$DefenderHeroesDead.',,,'.$data['t11'].','.$dead11.','.$unitstraped_att.',,'.$info_ram.','.$info_cat.','.$info_chief.','.$info_troop.','.$info_hero; - - //Undetected and detected in here. - if(!empty($scout)){ - for($i = 1; $i <= 10; $i++){ - if($battlepart['casualties_attacker'][$i]){ - if($from['owner'] == 3){ - $database->addNotice($to['owner'],$to['wref'],$targetally,20,''.addslashes($from['name']).' scouts '.addslashes($to['name']).'',$data2,$AttackArrivalTime); - break; - }else if($unitsdead_att == $unitssend_att && $defspy){ //fix by ronix - $database->addNotice($to['owner'],$to['wref'],$targetally,20,''.addslashes($from['name']).' scouts '.addslashes($to['name']).'',$data2.',,'.$info_troop,$AttackArrivalTime); - break; - }else if($defspy){ //fix by ronix - $database->addNotice($to['owner'],$to['wref'],$targetally,21,''.addslashes($from['name']).' scouts '.addslashes($to['name']).'',$data2,$AttackArrivalTime); - break; - } - } - } - }else{ - if($type == 3 && $totalsend_att - ($totaldead_att + $totaltraped_att) > 0){ - $prisoners = $database->getPrisoners([$to['wref']], 0, false)[$to['wref'].'0']; - if(count($prisoners) > 0){ - $anothertroops = $mytroops = $ownDeads = $anotherDeads = 0; - $prisoners2delete = []; - $movementType = []; - $movementFrom = []; - $movementTo = []; - $movementRef = []; - $movementTime = []; - $movementEndtime = []; - $utime = microtime(true); - - foreach($prisoners as $prisoner) { - $p_owner = $database->getVillageField($prisoner['from'], "owner"); - - //If troops are coming from the same village, add it to the returing troops - if ($prisoner['from'] == $from['wref']) { - for($i = 1; $i <= 11; $i++){ - $deadPrisoners = round($prisoner['t'.$i] / 4); - $mytroops += $prisoner['t'.$i]; - $ownDeads += $deadPrisoners; - $prisoner['t'.$i] -= $deadPrisoners; - } - - $database->modifyAttack2( - $data['ref'], - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], - [$prisoner['t1'], $prisoner['t2'], $prisoner['t3'], $prisoner['t4'], $prisoner['t5'], $prisoner['t6'], $prisoner['t7'], $prisoner['t8'], $prisoner['t9'], $prisoner['t10'], $prisoner['t11']] - ); - $prisoners2delete[] = $prisoner['id']; - } else { - $p_alliance = $database->getUserField($p_owner, "alliance",0); - $friendarray = $database->getAllianceAlly($p_alliance, 1); - $neutralarray = $database->getAllianceAlly($p_alliance, 2); - $friend = ($friendarray[0]['alli1'] > 0 && $friendarray[0]['alli2'] > 0 && $p_alliance > 0) && ($friendarray[0]['alli1'] == $ownally || $friendarray[0]['alli2'] == $ownally) && ($ownally != $p_alliance && $ownally && $p_alliance); - $neutral = ($neutralarray[0]['alli1'] > 0 && $neutralarray[0]['alli2'] > 0 && $p_alliance > 0) && ($neutralarray[0]['alli1'] == $ownally || $neutralarray[0]['alli2'] == $ownally) && ($ownally != $p_alliance && $ownally && $p_alliance); - - if($p_alliance == $ownally || $friend || $neutral){ - $p_tribe = $database->getUserField($p_owner, "tribe", 0); - - for($i = 1; $i <= 11; $i++){ - $deadPrisoners = round($prisoner['t'.$i] / 4); - if($p_owner == $from['owner']){ - $mytroops += $prisoner['t'.$i]; - $ownDeads += $deadPrisoners; - }else{ - $anothertroops += $prisoner['t'.$i]; - $anotherDeads += $deadPrisoners; - } - $prisoner['t'.$i] -= $deadPrisoners; - } - - $troopsTime = $units->getWalkingTroopsTime($prisoner['from'], $prisoner['wref'], $p_owner, $p_tribe, $prisoner, 1, 't'); - $p_time = $database->getArtifactsValueInfluence($p_owner, $prisoner['from'], 2, $troopsTime); - - $p_reference = $database->addAttack($prisoner['from'], $prisoner['t1'], $prisoner['t2'], $prisoner['t3'], $prisoner['t4'], $prisoner['t5'], $prisoner['t6'], $prisoner['t7'], $prisoner['t8'], $prisoner['t9'], $prisoner['t10'], $prisoner['t11'], 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); - $movementType[] = 4; - $movementFrom[] = $prisoner['wref']; - $movementTo[] = $prisoner['from']; - $movementRef[] = $p_reference; - $movementTime[] = $utime; - $movementEndtime[] = $p_time + $utime; - $prisoners2delete[] = $prisoner['id']; - } - } - } - - if (count($movementType)) { - $database->addMovement($movementType, $movementFrom, $movementTo, $movementRef, $movementTime, $movementEndtime); - } - - $database->deletePrisoners($prisoners2delete); - - $ownDeadsText = ($ownAlive = $mytroops - $ownDeads) > 0 ? " of which ".$ownAlive." have been saved" : ""; - $anotherDeadsText = ($anotherAlive = $anothertroops - $anotherDeads) > 0 ? " of which ".$anotherAlive." have been saved" : ""; - - //Add dead troops to the "General attacks" tab - $database->addGeneralAttack($ownDeads + $anotherDeads); - - //Calculate new traps which have to be repaired - $newtraps = round(($mytroops + $anothertroops) / 3); - - //Reset traps - $database->modifyUnit($data['to'], ['99', '99o'], [$mytroops + $anothertroops, $mytroops + $anothertroops], [0, 0]); - - //Repair needed traps - if($newtraps > 0){ - $repairDuration = $database->getArtifactsValueInfluence($to['owner'], $to['wref'], 5, round(($bid19[max($this->getTypeLevel(36, $to['wref']), 1)]['attri'] / 100) * $u99['time'] / SPEED)); - $database->trainUnit($to['wref'], 99, $newtraps, $u99['pop'], $repairDuration, 0); - } - - $trapper_pic = "\"Trap\""; - $p_username = $database->getUserField($from['owner'], "username", 0); - - if($mytroops > 0 && $anothertroops > 0){ - $info_trap = "".$trapper_pic." ".$p_username." freed ".$mytroops." from his troops".$ownDeadsText." and ".$anothertroops." friendly troops".$anotherDeadsText."."; - }elseif($mytroops > 0){ - $info_trap = "".$trapper_pic." ".$p_username." freed ".$mytroops." from his troops".$ownDeadsText."."; - }elseif($anothertroops > 0){ - $info_trap = "".$trapper_pic." ".$p_username." freed ".$anothertroops." friendly troops".$anotherDeadsText."."; - } - } - } - - $data2 = $data2.','.(isset($info_trap) ? addslashes($info_trap) : '').',,'.$info_troop.','.$info_hero; - - if($totalsend_alldef == 0 && $totalsend_att - ($totaldead_att + (isset($totaltraped_att) ? $totaltraped_att : 0)) > 0){ - $database->addNotice($to['owner'],$to['wref'],$targetally,7,''.addslashes($from['name']).' attacks '.addslashes($to['name']).'',$data2,$AttackArrivalTime); - }else if($totaldead_alldef == 0){ - $database->addNotice($to['owner'],$to['wref'],$targetally,4,''.addslashes($from['name']).' attacks '.addslashes($to['name']).'',$data2,$AttackArrivalTime); - }else if($totalsend_alldef > $totaldead_alldef){ - $database->addNotice($to['owner'],$to['wref'],$targetally,5,''.addslashes($from['name']).' attacks '.addslashes($to['name']).'',$data2,$AttackArrivalTime); - }else if($totalsend_alldef == $totaldead_alldef){ - $database->addNotice($to['owner'],$to['wref'],$targetally,6,''.addslashes($from['name']).' attacks '.addslashes($to['name']).'',$data2,$AttackArrivalTime); - } - } - //to here - // If the dead units not equal the ammount sent they will return and report - if($totalsend_att - ($totaldead_att + (isset($totaltraped_att) ? $totaltraped_att : 0)) > 0) - { - $returningTroops = []; - for($i = 1; $i <= 11; $i++) $returningTroops['t'.$i] = $data['t'.$i] - ${'traped'.$i} - ${'dead'.$i}; - $troopsTime = $units->getWalkingTroopsTime($from['wref'], $to['wref'], $from['owner'], $owntribe, $returningTroops, 1, 't'); - $endtime = $database->getArtifactsValueInfluence($from['owner'], $from['wref'], 2, $troopsTime); - $endtime += $AttackArrivalTime; - if($type == 1){ - if($from['owner'] == 3){ // fix natar report by ronix - $database->addNotice($to['owner'], $to['wref'], $targetally, 20, '' . addslashes($from['name']) . ' scouts ' . addslashes($to['name']) . '', $data2, $AttackArrivalTime); - }elseif($totaldead_att == 0 && $totaltraped_att == 0){ - $database->addNotice($from['owner'], $to['wref'], $ownally, 18, '' . addslashes($from['name']) . ' scouts ' . addslashes($to['name']) . '', $data2, $AttackArrivalTime); - }else{ - $database->addNotice($from['owner'], $to['wref'], $ownally, 21, '' . addslashes($from['name']) . ' scouts ' . addslashes($to['name']) . '', $data2, $AttackArrivalTime); - } - }else{ - if((empty($totaldead_att) || $totaldead_att == 0) && (empty($totaltraped_att) || $totaltraped_att == 0)){ - $database->addNotice($from['owner'], $to['wref'], $ownally, 1, '' . addslashes($from['name']) . ' attacks ' . addslashes($to['name']) . '', $data2, $AttackArrivalTime); - }else{ - $database->addNotice($from['owner'], $to['wref'], $ownally, 2, '' . addslashes($from['name']) . ' attacks ' . addslashes($to['name']) . '', $data2, $AttackArrivalTime); - } - } - - $database->setMovementProc($data['moveid']); - - if (!isset($chiefing_village)) $chiefing_village = 0; - - if($chiefing_village != 1){ - $database->addMovement(4, $DefenderWref, $AttackerWref, $data['ref'], $AttackArrivalTime, $endtime, 1, $steal[0], $steal[1], $steal[2], $steal[3]); - if($type !== 1){ - if ($isoasis == 0) $database->modifyResource($DefenderWref, $steal[0], $steal[1], $steal[2], $steal[3], 0); - else - { - //if it's an oasis but it's conquered by someone, resources must be modified in the owner's village - if($conqureby > 0) $database->modifyResource($conqureby, $steal[0], $steal[1], $steal[2], $steal[3], 0); - else $database->modifyOasisResource($DefenderWref, $steal[0], $steal[1], $steal[2], $steal[3], 0); - } - $totalstolengain = $steal[0] + $steal[1] + $steal[2] + $steal[3]; - $totalstolentaken = ((isset($totalstolentaken) ? $totalstolentaken : 0) - ($steal[0] + $steal[1] + $steal[2] + $steal[3])); - $database->modifyPoints($from['owner'], 'RR', $totalstolengain); - $database->modifyPoints($to['owner'], 'RR', $totalstolentaken); - $database->modifyPointsAlly($targetally, 'RR', $totalstolentaken); - $database->modifyPointsAlly($ownally, 'RR', $totalstolengain); - } - }else{ //fix by ronix if only 1 chief left to conqured - don't add with zero enforces - if($totalsend_att - ($totaldead_att + (isset($totaltraped_att) ? $totaltraped_att : 0)) > 1){ - $database->addEnforce2($data, $owntribe, $troopsdead1, $troopsdead2, $troopsdead3, $troopsdead4, $troopsdead5, $troopsdead6, $troopsdead7, $troopsdead8, $troopsdead9, $troopsdead10, $troopsdead11); - } - } - } - else //else they die and don't return or report. - { - $database->setMovementProc($data['moveid']); - if($type == 1){ - $database->addNotice($from['owner'], $to['wref'], $ownally, 19, addslashes($from['name']) . ' scouts ' . addslashes($to['name']) . '', $data_fail, $AttackArrivalTime); - }else{ - $database->addNotice($from['owner'], $to['wref'], $ownally, 3, '' . addslashes($from['name']) . ' attacks ' . addslashes($to['name']) . '', $data_fail, $AttackArrivalTime); - } - } - if($type == 3 || $type == 4) $database->addGeneralAttack($totalattackdead); - - if (!isset($village_destroyed)) $village_destroyed = 0; - - if ($village_destroyed == 1 && $can_destroy == 1) - { - if($to['capital'] == 1){ - $mostPopulatedVillage = []; - //Search for the most populated village - foreach($varray as $village){ - if($village['wref'] != $data['to'] && (empty($mostPopulatedVillage) || $mostPopulatedVillage['pop'] < $village['pop'])){ - $mostPopulatedVillage = $village; - } - } - //Set the new capital - $database->changeCapital($mostPopulatedVillage['wref']); - } - - //Delete the village - $database->DelVillage($data['to']); - - //Reassign the hero, if dead and assigned to the deleted village - $database->reassignHero($data['to']); - } - }else{ - //units attack string for battleraport - $unitssend_att1 = ''.$data['t1'].','.$data['t2'].','.$data['t3'].','.$data['t4'].','.$data['t5'].','.$data['t6'].','.$data['t7'].','.$data['t8'].','.$data['t9'].','.$data['t10'].''; - $herosend_att = $data['t11']; - $unitssend_att= $unitssend_att1.','.$herosend_att; - - $troopsTime = $units->getWalkingTroopsTime($from['wref'], $to['wref'], $from['owner'], $owntribe, $data, 1, 't'); - $endtime = $database->getArtifactsValueInfluence($from['owner'], $from['wref'], 2, $troopsTime); - $endtime += $AttackArrivalTime; - - $database->setMovementProc($data['moveid']); - $database->addMovement(4, $to['wref'], $from['wref'], $data['ref'], $AttackArrivalTime, $endtime); - $peace = PEACE; - $data2 = $from['owner'].','.$from['wref'].','.$to['owner'].','.$owntribe.','.$unitssend_att.','.$peace; - $time = time(); - $database->addNotice($from['owner'], $to['wref'], $ownally, 22,''.addslashes($from['name']).' attacks '.addslashes($to['name']).'', $data2, $time); - $database->addNotice($to['owner'], $to['wref'], $targetally, 23,''.addslashes($from['name']).' attacks '.addslashes($to['name']).'', $data2, $time); - } - - //Update starvation data - $database->addStarvationData($to['wref']); - - //Returning units back to village is not necessary because it will be taken care when processing movement - // Fix by AL-Kateb - // if evasion was active, return units back to base - /* - if (isset($evaded)) { - foreach ($evasionUnitModifications_modes as $index => $mode) { - $evasionUnitModifications_modes[$index] = 1; - } - - $database->modifyUnit($data['to'], $evasionUnitModifications_units, $evasionUnitModifications_amounts, $evasionUnitModifications_modes); - } - */ - - ################################################# - ################FIXED BY SONGER################ - ################################################# - - ################################################################################ - ##############ISUE: Lag, fixed3#################################################### - #### PHP.NET manual: unset() destroy more than one variable unset($foo1, $foo2, $foo3);###### - ################################################################################ - $data_num++; - - unset( - $Attacker - ,$Defender - ,$DefenderEnf - ,$DefenderHeroesTotArray - ,$DefenderHeroesDeadArray - ,$DefenderHeroesTot - ,$DefenderHeroesDead - ,$enforce - ,$unitssend_att - ,$unitssend_def - ,$battlepart - ,$unitlist - ,$unitsdead_def - ,$dead - ,$steal - ,$from - ,$data - ,$data2 - ,$to - ,$artifact - ,$artifactBig - ,$canclaim - ,$data_fail - ,$owntribe - ,$unitsdead_att - ,$herosend_def - ,$deadhero - ,$heroxp - ,$AttackerID - ,$DefenderID - ,$totalsend_att - ,$totalsend_alldef - ,$totaldead_att - ,$totaltraped_att - ,$totaldead_def - ,$unitsdead_att_check - ,$totalattackdead - ,$enforce1 - ,$defheroowner - ,$enforceowner - ,$defheroxp - ,$reinfheroxp - ,$AttackerWref - ,$DefenderWref - ,$troopsdead1 - ,$troopsdead2 - ,$troopsdead3 - ,$troopsdead4 - ,$troopsdead5 - ,$troopsdead6 - ,$troopsdead7 - ,$troopsdead8 - ,$troopsdead9 - ,$troopsdead10 - ,$troopsdead11 - ,$DefenderUnit - ,$info_trap); - - ################################################# - - } - } - } - - private function sendreinfunitsComplete() { - global $bid23, $database, $technology, $battle; - - $time = time(); - $q = " - SELECT - `to`, `from`, moveid, - t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11 - FROM - ".TB_PREFIX."movement, - ".TB_PREFIX."attacks - WHERE - ".TB_PREFIX."movement.ref = ".TB_PREFIX."attacks.id - AND - ".TB_PREFIX."movement.proc = 0 - AND - ".TB_PREFIX."movement.sort_type = 3 - AND - ".TB_PREFIX."attacks.attack_type = 2 - AND - endtime < $time"; - $dataarray = $database->query_return($q); - - if ($dataarray && count($dataarray)) { - // preload village data - $vilIDs = []; - $tos = []; - $froms = []; - foreach($dataarray as $data) { - $vilIDs[$data['from']] = true; - $vilIDs[$data['to']] = true; - $tos[$data['to']] = true; - $froms[$data['from']] = true; - } - $vilIDs = array_keys($vilIDs); - $database->getProfileVillages($vilIDs, 5); - $database->getUnit($vilIDs); - $database->getEnforce(array_keys($tos), array_keys($froms)); - $database->getVillageByWorldID($vilIDs); - - // calculate reinforcements data - $movementProcIDs = []; - foreach($dataarray as $data) { - $isoasis = $database->isVillageOases($data['to']); - if($isoasis == 0){ - $to = $database->getMInfo($data['to']); - $toF = $database->getVillage($data['to']); - $DefenderID = $to['owner']; - $targettribe = $database->getUserField($DefenderID, "tribe", 0); - $conqureby = 0; - }else{ - $to = $database->getOMInfo($data['to']); - $toF = $database->getOasisV($data['to']); - $DefenderID = $to['owner']; - $targettribe = $database->getUserField($DefenderID, "tribe", 0); - $conqureby = $toF['conqured']; - } - - if($data['from'] == 0){ - $DefenderID = $database->getVillageField($data['to'], "owner"); - $database->addEnforce($data); - $reinf = $database->getEnforce($data['to'], $data['from']); - $database->modifyEnforce($reinf['id'], 31, 1, 1); - $data_fail = '0,0,4,1,0,0,0,0,0,0,0,0,0,0'; - $database->addNotice($to['owner'], $to['wref'], (isset($targetally) ? $targetally : 0), 8, 'village of the elders reinforcement ' . addslashes($to['name']), $data_fail, $AttackArrivalTime); - $movementProcIDs[] = $data['moveid']; - }else{ - //set base things - $from = $database->getMInfo($data['from']); - $fromF = $database->getVillage($data['from']); - $AttackerID = $from['owner']; - $owntribe = $database->getUserField($AttackerID,"tribe",0); - - $HeroTransfer = $troopsPresent = 0; - for($i = 1;$i <= 10; $i++) { - if($data['t'.$i] > 0) { - $troopsPresent = 1; - break; - } - } - - //check if the hero is present and we're not sending him to an occupied oasis - //only add hero if we're sending him alone - if($data['t11'] > 0 && !$isoasis && !$troopsPresent) { - //check if we're sending a hero between own villages - if($AttackerID == $DefenderID) { - //check if there's a Mansion at target village - if($this->getTypeLevel(37, $data['to']) > 0){ - //don't reinforce, addunit instead - $database->modifyUnit($data['to'], ["hero"], [1], [1]); - $heroid = $database->getHeroField($DefenderID, 'heroid'); - $database->modifyHero("wref", $data['to'], $heroid); - $HeroTransfer = 1; - } - } - } - - if($data['t11'] > 0 || $troopsPresent) { - $temphero = $data['t11']; - if ($HeroTransfer) $data['t11'] = 0; - //check if there is defence from town in to town - $check = $database->getEnforce($data['to'], $data['from']); - if (!isset($check['id'])) $database->addEnforce($data); - else - { - //yes - $start = ($owntribe - 1) * 10 + 1; - $end = ($owntribe * 10); - - //add unit. - $t_units = ''; - for($i = $start, $j = 1; $i <= $end; $i++, $j++) - { - $t_units .= "u".$i." = u".$i." + ".$data['t'.$j].(($j > 9) ? '' : ', '); - } - - $q = "UPDATE ".TB_PREFIX."enforcement set $t_units where id =".(int) $check['id']; - $database->query($q); - $database->modifyEnforce($check['id'], 'hero', $data['t11'], 1); - } - $data['t11'] = $temphero; - } - //send rapport - $unitssend_att = ''.$data['t1'].','.$data['t2'].','.$data['t3'].','.$data['t4'].','.$data['t5'].','.$data['t6'].','.$data['t7'].','.$data['t8'].','.$data['t9'].','.$data['t10'].','.$data['t11'].''; - $data_fail = ''.$from['wref'].','.$from['owner'].','.$owntribe.','.$unitssend_att.''; - - - if($isoasis == 0) $to_name = $to['name']; - else $to_name = "Oasis ".$database->getVillageField($to['conqured'],"name"); - - $database->addNotice($from['owner'],$from['wref'],(isset($ownally) ? $ownally : 0),8,''.addslashes($from['name']).' reinforcement '.addslashes($to_name).'',$data_fail,(isset($AttackArrivalTime) ? $AttackArrivalTime : time())); - if($from['owner'] != $to['owner']) { - $database->addNotice($to['owner'],$to['wref'],(isset($targetally) ? $targetally : 0),8,''.addslashes($from['name']).' reinforcement '.addslashes($to_name).'',$data_fail,(isset($AttackArrivalTime) ? $AttackArrivalTime : time())); - } - //update status - $movementProcIDs[] = $data['moveid']; - } - - //Update starvation data - $database->addStarvationData($data['to']); - - //check empty reinforcement in rally point - $e_units = ''; - for ($i = 1; $i <= 50; $i++) $e_units.= 'u'.$i.'= 0 AND '; - - $e_units.= 'hero = 0'; - $q = "DELETE FROM ".TB_PREFIX."enforcement WHERE ".$e_units." AND (vref=".(int) $data['to']." OR `from`=".(int) $data['to'].")"; - $database->query($q); - } - - $database->setMovementProc(implode(', ', $movementProcIDs)); - } - } - - private function returnunitsComplete() { - global $database, $technology; - - $time = time(); - $q = " - SELECT - `to`, `from`, moveid, starttime, endtime, wood, clay, iron, crop, - t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11 - FROM - ".TB_PREFIX."movement, - ".TB_PREFIX."attacks - WHERE - ".TB_PREFIX."movement.ref = ".TB_PREFIX."attacks.id - AND - ".TB_PREFIX."movement.proc = 0 - AND - ".TB_PREFIX."movement.sort_type = 4 - AND - endtime < $time"; - $dataarray = $database->query_return($q); - - if ($dataarray && count($dataarray)) { - // preload village data - $vilIDs = []; - foreach($dataarray as $data) { - $vilIDs[$data['from']] = true; - $vilIDs[$data['to']] = true; - } - $database->getProfileVillages(array_keys($vilIDs), 5); - $database->getOasisEnforce($vilIDs, 0); - $database->getOasisEnforce($vilIDs, 1); - - $movementProcIDs = []; - foreach($dataarray as $data) { - $tribe = $database->getUserField($database->getVillageField($data['to'], "owner"), "tribe", 0); - $u = $tribe == 1 ? "" : $tribe - 1; - $database->modifyUnit( - $data['to'], - [$u."1", $u."2", $u."3", $u."4", $u."5", $u."6", $u."7", $u."8", $u."9", $tribe."0", "hero"], - [$data['t1'], $data['t2'], $data['t3'], $data['t4'], $data['t5'], $data['t6'], $data['t7'], $data['t8'], $data['t9'], $data['t10'], $data['t11']], - [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] - ); - - //If there's at least 1 resource, add it to the village - if($data['wood'] + $data['clay'] + $data['iron'] + $data['crop'] > 0){ - $database->modifyResource($data['to'], $data['wood'], $data['clay'], $data['iron'], $data['crop'], 1); - } - - $movementProcIDs[] = $data['moveid']; - - //Update starvation data - $database->addStarvationData($data['to']); - } - - $database->setMovementProc(implode(', ', $movementProcIDs)); - $this->pruneResource(); - } - - // Settlers - $q = "SELECT `to`, moveid FROM ".TB_PREFIX."movement where ref = 0 and proc = '0' and sort_type = '4' and endtime < $time"; - $dataarray = $database->query_return($q); - $movementProcIDs = []; - - if ($dataarray && count($dataarray)) { - foreach($dataarray as $data) { - $tribe = $database->getUserField($database->getVillageField($data['to'], "owner"), "tribe", 0); - $database->modifyUnit($data['to'], [$tribe."0"], [3], [1]); - - //If a settling is canceled, add 750 for each resource type - $database->modifyResource($data['to'], 750, 750, 750, 750, 1); - $movementProcIDs[] = $data['moveid']; - } - $database->setMovementProc(implode(', ', $movementProcIDs)); - } - } - - private function sendSettlersComplete() { - global $database; - - $time = microtime(true); - $q = "SELECT `to`, `from`, moveid, starttime, ref FROM ".TB_PREFIX."movement where proc = 0 and sort_type = 5 and endtime < $time"; - - $dataarray = $database->query_return($q); - $movementProcIDs = []; - $fieldIDs = []; - $addUnitsWrefs = []; - $addTechWrefs = []; - $addABTechWrefs = []; - $time = microtime(true); - $types = []; - $froms = []; - $tos = []; - $refs = []; - $times = []; - $endtimes = []; - - // preload village data - $vilIDs = []; - foreach($dataarray as $data) { - $vilIDs[$data['from']] = true; - $vilIDs[$data['to']] = true; - } - $vilIDs = array_keys($vilIDs); - $database->getProfileVillages($vilIDs, 5); - $database->getVillageByWorldID($vilIDs); - - foreach($dataarray as $data) { - $ownerID = $database->getUserField($database->getVillageField($data['from'], "owner"), "id", 0); - $to = $database->getMInfo($data['from']); - $user = addslashes($database->getUserField($to['owner'], 'username', 0)); - $taken = $database->getVillageState($data['to']); - if($taken != 1){ - $fieldIDs[] = $data['to']; - $database->addVillage($data['to'], $to['owner'], $user, '0'); - $database->addResourceFields($data['to'], $database->getVillageType($data['to'])); - $addUnitsWrefs[] = $data['to']; - $addTechWrefs[] = $data['to']; - $addABTechWrefs[] = $data['to']; - $movementProcIDs[] = $data['moveid']; - - $exp1 = $database->getVillageField($data['from'], 'exp1'); - $exp2 = $database->getVillageField($data['from'], 'exp2'); - $exp3 = $database->getVillageField($data['from'], 'exp3'); - - if($exp1 == 0){ - $exp = 'exp1'; - $value = $data['to']; - }elseif($exp2 == 0){ - $exp = 'exp2'; - $value = $data['to']; - }else{ - $exp = 'exp3'; - $value = $data['to']; - } - - $database->setVillageField($data['from'], $exp, $value); - }else{ - // here must come movement from returning settlers - $types[] = 4; - $froms[] = $data['to']; - $tos[] = $data['from']; - $refs[] = $data['ref']; - $times[] = $time; - $endtimes[] = $time + ($time - $data['starttime']); - $movementProcIDs[] = $data['moveid']; - } - } - - $database->addMovement($types, $froms, $tos, $refs, $times, $endtimes); - $database->setMovementProc(implode(', ', $movementProcIDs)); - $database->setFieldTaken($fieldIDs); - $database->addUnits($addUnitsWrefs); - $database->addTech($addTechWrefs); - $database->addABTech($addABTechWrefs); - - } - - /** - * Create the Natars account and spawn artifacts - * - */ - - private function spawnNatars(){ - global $database; - - //Check if Natars account is already created and if the time - //is come and we have to create Natars and spawn their artifacts - if($database->areArtifactsSpawned() || strtotime(START_DATE) + (NATARS_SPAWN_TIME * 86400) > time()) return; - - //Create the Natars account and his capital - $this->artifacts->createNatars(); - - //Write the system message - $database->displaySystemMessage(ARTEFACT); - } - - /** - * Spawn WW Villages - * - */ - - private function spawnWWVillages(){ - global $database; - - //Check if Natars account has already been created, if WW villages have already been spawned - //and if it's the time to spawn them or not - if(!$database->areArtifactsSpawned() || $database->areWWVillagesSpawned() || strtotime(START_DATE) + (NATARS_WW_SPAWN_TIME * 86400) > time()) return; - - //Create WW villages - $this->artifacts->createWWVillages(); - - //Write the system message - $database->displaySystemMessage(WWVILLAGEMSG); - } - - /** - * Spawn WW Building plans - * - */ - - private function spawnWWBuildingPlans(){ - global $database; - - //Check if Natars account is already spawned, if WW building plans have already been spawned - //and if it's the time to spawn them or not - if(!$database->areArtifactsSpawned() || $database->areArtifactsSpawned(true) || strtotime(START_DATE) + (NATARS_WW_BUILDING_PLAN_SPAWN_TIME * 86400) > time()) return; - - //Create WW building plans - $this->artifacts->createWWBuildingPlans(); - - //Set the system message to contain the infos of the WW building plans - $database->displaySystemMessage(PLAN_INFO); - } - - /** - * Automatically activate all artifacts that need to be activated - * - */ - - private function activateArtifacts() { - global $database; - - //Check if there's at least one artifact, if not, return - if(!$database->areArtifactsSpawned()) return; - - //Activate the artifacts that need to be activated - $this->artifacts->activateArtifacts(); - } - - private function researchComplete() { - global $database; - - $time = time(); - $deleteIDs = []; - $tdata = []; - $abdata = []; - - $q = "SELECT tech, vref, id FROM ".TB_PREFIX."research where timestamp < $time"; - $dataarray = $database->query_return($q); - - foreach($dataarray as $data) { - $sort_type = substr($data['tech'],0,1); - switch($sort_type) { - case "t": - if (!isset($tdata[$data['vref']])) $tdata[$data['vref']] = []; - $tdata[$data['vref']][] = $data['tech'].' = 1'; - break; - case "a": - case "b": - if (!isset($abdata[$data['vref']])) $abdata[$data['vref']] = []; - $abdata[$data['vref']][] = $data['tech']." = ".$data['tech']." + 1"; - break; - } - $deleteIDs[] = (int) $data['id']; - } - - // execute queries with consolidated research data - if (count($tdata)) { - foreach ( $tdata as $vid => $preparedData ) { - $q = "UPDATE ".TB_PREFIX."tdata SET ".implode(', ', $preparedData)." WHERE vref = ".$vid; - $database->query($q); - } - } - - if (count($abdata)) { - foreach ( $abdata as $vid => $preparedData ) { - $q = "UPDATE ".TB_PREFIX."abdata SET ".implode(', ', $preparedData)." WHERE vref = ".$vid; - $database->query($q); - } - } - - if (count($deleteIDs)) { - $q = "DELETE FROM " . TB_PREFIX . "research where id IN(" . implode( ', ', $deleteIDs ) . ")"; - $database->query( $q ); - } - } - - private function updateORes($bountywid) { - global $database; - - $oasisInfoArray = $database->getOasisV($bountywid); - $timepast = time() - $oasisInfoArray['lastupdated']; - $nwood = (OASIS_WOOD_PRODUCTION / 3600) * $timepast; - $nclay = (OASIS_CLAY_PRODUCTION / 3600) * $timepast; - $niron = (OASIS_IRON_PRODUCTION / 3600) * $timepast; - $ncrop = (OASIS_CROP_PRODUCTION / 3600) * $timepast; - $database->modifyOasisResource($bountywid, $nwood, $nclay, $niron, $ncrop, 1); - $database->updateOasis($bountywid); - } - - private function updateRes($bountywid) { - global $database, $technology; - - //Get village infos - $villageInfoArray = $database->getVillage($bountywid); - - //Get building and resource fields array - $resArray = $database->getResourceLevel($bountywid, false); - - //Get oasis array - $oasisArray = $database->getOasis($bountywid); - - //Get an array with the numbers of the oasis - $numberOfOasis = $this->bountysortOasis($oasisArray); - - //Set the village population (if WW Villages, it's halved) - $villagePopulation = !$villageInfoArray['natar'] ? $villageInfoArray['pop'] : round($villageInfoArray['pop'] / 2); - - //Get the upkeep of the village - $upkeep = $technology->getUpkeep($this->getAllUnits($bountywid), 0, $bountywid); - - //Calculate the produced resources - $timepast = time() - $villageInfoArray['lastupdate']; - $nwood = ($this->bountyGetWoodProd($resArray, $numberOfOasis) / 3600) * $timepast; - $nclay = ($this->bountyGetClayProd($resArray, $numberOfOasis) / 3600) * $timepast; - $niron = ($this->bountyGetIronProd($resArray, $numberOfOasis) / 3600) * $timepast; - $ncrop = (($this->bountyGetCropProd($resArray, $numberOfOasis) - $villagePopulation - $upkeep) / 3600) * $timepast; - $database->modifyResource($bountywid, $nwood, $nclay, $niron, $ncrop, 1); - $database->updateVillage($bountywid); - } - - private function bountysortOasis($oasisArray) { - $crop = $clay = $wood = $iron = 0; - foreach ($oasisArray as $oasis) { - switch($oasis['type']) { - case 1: - case 2: - $wood++; - break; - case 3: - $wood++; - $crop++; - break; - case 4: - case 5: - $clay++; - break; - case 6: - $clay++; - $crop++; - break; - case 7: - case 8: - $iron++; - break; - case 9: - $iron++; - $crop++; - break; - case 10: - case 11: - $crop++; - break; - case 12: - $crop += 2; - break; - } - } - return [$wood, $clay, $iron, $crop]; - } - - function getAllUnits($base, $use_cache = true) { - global $database; - - $ownunit = $database->getUnit($base, $use_cache); - $enforcementarray = $database->getEnforceVillage($base, 0); - - if(count($enforcementarray) > 0){ - foreach($enforcementarray as $enforce){ - for($i = 1; $i <= 50; $i++){ - $ownunit['u'.$i] += $enforce['u'.$i]; - } - } - } - - $enforceoasis = $database->getOasisEnforce($base, 0, $use_cache); - if(count($enforceoasis) > 0){ - foreach($enforceoasis as $enforce){ - for($i = 1; $i <= 50; $i++){ - $ownunit['u'.$i] += $enforce['u'.$i]; - } - } - } - - $enforceoasis1 = $database->getOasisEnforce($base, 1, $use_cache); - if(count($enforceoasis1) > 0){ - foreach($enforceoasis1 as $enforce){ - for($i = 1; $i <= 50; $i++){ - $ownunit['u'.$i] += $enforce['u'.$i]; - } - } - } - - $movement = $database->getVillageMovement($base); - if(!empty($movement)){ - for($i = 1; $i <= 50; $i++){ - if(!isset($ownunit['u' . $i])){ - $ownunit['u'.$i] = 0; - } - - $ownunit['u'.$i] += (isset($movement['u'.$i]) ? $movement['u'.$i] : 0); - } - } - - $prisoners = $database->getPrisoners($base, 1); - if(!empty($prisoners)){ - foreach($prisoners as $prisoner){ - $owner = $database->getVillageField($base, "owner"); - $ownertribe = $database->getUserField($owner, "tribe", 0); - $start = ($ownertribe - 1) * 10 + 1; - $end = ($ownertribe * 10); - for($i = $start; $i <= $end; $i++){ - $j = $i - $start + 1; - $ownunit['u'.$i] += $prisoner['t'.$j]; - } - $ownunit['hero'] += $prisoner['t11']; - } - } - return $ownunit; - } - - private function bountyGetWoodProd($resArray, $oasisNumber) { - global $bid1, $bid5; - - $wood = $sawmill = 0; - $woodholder = []; - for($i = 1; $i <= 38; $i++) { - if($resArray['f'.$i.'t'] == 1) array_push($woodholder,'f'.$i); - if($resArray['f'.$i.'t'] == 5) $sawmill = $resArray['f'.$i]; - } - - for($i = 0; $i <= count($woodholder) - 1; $i++) $wood += $bid1[$resArray[$woodholder[$i]]]['prod']; - - if($sawmill >= 1) $wood += $wood / 100 * $bid5[$sawmill]['attri']; - if($oasisNumber[0] > 0) $wood += $wood * 0.25 * $oasisNumber[0]; - - return round($wood * SPEED); - } - - private function bountyGetClayProd($resArray, $oasisNumber) { - global $bid2, $bid6; - - $clay = $brick = 0; - $clayholder = []; - for($i = 1; $i <= 38; $i++) { - if($resArray['f'.$i.'t'] == 2) array_push($clayholder, 'f'.$i); - if($resArray['f'.$i.'t'] == 6) $brick = $resArray['f'.$i]; - } - - for($i = 0; $i <= count($clayholder) - 1; $i++) $clay += $bid2[$resArray[$clayholder[$i]]]['prod']; - - if($brick >= 1) $clay += $clay / 100 * $bid6[$brick]['attri']; - if($oasisNumber[1] > 0) $clay += $clay * 0.25 * $oasisNumber[1]; - - return round($clay * SPEED); - } - - private function bountyGetIronProd($resArray, $oasisNumber) { - global $bid3, $bid7; - - $iron = $foundry = 0; - $ironholder = []; - for($i = 1; $i <= 38; $i++) { - if($resArray['f'.$i.'t'] == 3) array_push($ironholder, 'f'.$i); - if($resArray['f'.$i.'t'] == 7) $foundry = $resArray['f'.$i]; - } - - for($i = 0; $i <= count($ironholder) - 1; $i++) $iron += $bid3[$resArray[$ironholder[$i]]]['prod']; - - if($foundry >= 1) $iron += $iron / 100 * $bid7[$foundry]['attri']; - if($oasisNumber[2] > 0) $iron += $iron * 0.25 * $oasisNumber[2]; - - return round($iron * SPEED); - } - - private function bountyGetCropProd($resArray, $oasisNumber) { - global $bid4, $bid8, $bid9, $database; - - $crop = $grainmill = $bakery = 0; - $cropholder = []; - for($i = 1; $i <= 38;$i++) { - if($resArray['f'.$i.'t'] == 4) array_push($cropholder, 'f'.$i); - if($resArray['f'.$i.'t'] == 8) $grainmill = $resArray['f'.$i]; - if($resArray['f'.$i.'t'] == 9) $bakery = $resArray['f'.$i]; - } - for($i = 0; $i <= count($cropholder) - 1; $i++) $crop += $bid4[$resArray[$cropholder[$i]]]['prod']; - - if($grainmill >= 1) $crop += $crop / 100 * (isset($bid8[$grainmill]['attri']) ? $bid8[$grainmill]['attri'] : 0); - if($bakery >= 1) $crop += $crop / 100 * (isset($bid9[$bakery]['attri']) ? $bid9[$bakery]['attri'] : 0); - if($oasisNumber[3] > 0) $crop += $crop * 0.25 * $oasisNumber[3]; - - if(!empty($resArray['vref']) && is_numeric($resArray['vref'])){ - $who = $database->getVillageField($resArray['vref'], "owner"); - $croptrue = $database->getUserField($who, "b4", 0); - if($croptrue > time()) $crop *= 1.25; - } - - return round($crop * SPEED); - } - - private function trainingComplete() { - global $database, $technology; - - $time = time(); - $trainlist = $database->getTrainingList(); - if(count($trainlist) > 0){ - // preload village data - $vilIDs = []; - foreach($trainlist as $train){ - $vilIDs[$train['vref']] = true; - } - $vilIDs = array_keys($vilIDs); - $database->getProfileVillages($vilIDs, 5); - $database->cacheResourceLevels($vilIDs); - $database->getUnit($vilIDs); - $database->getEnforceVillage($vilIDs, 0 ); - $database->getMovement(3, $vilIDs, 0); - $database->getMovement(4, $vilIDs, 1); - $database->getMovement(5, $vilIDs, 0); - $database->getOasisEnforce($vilIDs, 0); - $database->getOasisEnforce($vilIDs, 1); - $database->getPrisoners($vilIDs, 1); - - // calculate training updates - foreach($trainlist as $train){ - $timepast = $train['timestamp2'] - $time; - $pop = $train['pop']; - $valuesUpdated = false; - if($timepast <= 0 && $train['amt'] > 0) { - $valuesUpdated = true; - if($train['eachtime'] > 0){ - $timepast2 = $time - $train['timestamp2']; - $trained = 1; - while($timepast2 >= $train['eachtime']){ - $timepast2 -= $train['eachtime']; - $trained += 1; - } - - if($trained > $train['amt']) $trained = $train['amt']; - } - else $trained = $train['amt']; - - if($train['unit'] > 60 && $train['unit'] != 99){ - $database->modifyUnit($train['vref'], [$train['unit'] - 60], [$trained], [1]); - } - else $database->modifyUnit($train['vref'], [$train['unit']], [$trained], [1]); - - $database->updateTraining($train['id'], $trained, $trained * $train['eachtime']); - - if($train['amt'] - $trained <= 0) $database->trainUnit($train['id'], 0, 0, 0, 0, 1); - } - - if ($valuesUpdated) call_user_func(get_class($database).'::clearUnitsCache'); - - //Update starvation data - $database->addStarvationData($train['vref']); - } - } - } - - private function getsort_typeLevel($tid, $resarray) { - $keyholder = []; - - foreach(array_keys($resarray, $tid) as $key) { - if(strpos($key, 't')) { - $key = preg_replace("/[^0-9]/", '', $key); - array_push($keyholder, $key); - } - } - - $element = count($keyholder); - if($element >= 2) { - if($tid <= 4) { - $temparray = []; - - for($i = 0; $i <= $element - 1; $i++) { - array_push($temparray, $resarray['f'.$keyholder[$i]]); - } - - foreach ($temparray as $key => $val) { - if ($val == max($temparray)) $target = $key; - } - } - } - else if($element == 1) $target = 0; - else return 0; - - if(!empty($keyholder[$target])) return $resarray['f'.$keyholder[$target]]; - else return 0; - } - - private function celebrationComplete() { - global $database; - - $varray = $database->getCel(); - foreach($varray as $vil){ - $id = $vil['wref']; - $type = $vil['type']; - $user = $vil['owner']; - $cp = ($type == 1) ? 500 : 2000; - $database->clearCel($id); - $database->setCelCp($user, $cp); - } - } - - private function demolitionComplete() { - global $database; - - $varray = $database->getDemolition(); - foreach($varray as $vil) { - if ($vil['timetofinish'] <= time()) { - $type = $database->getFieldType($vil['vref'],$vil['buildnumber']); - $level = $database->getFieldLevel($vil['vref'],$vil['buildnumber']); - - if ($level < 0) $level = 0; - - $buildarray = $GLOBALS["bid".$type]; - - if ($type == 10 || $type == 38) { - $database->query(" - UPDATE ".TB_PREFIX."vdata - SET - `maxstore` = IF(`maxstore` - ".$buildarray[$level]['attri']." <= ".STORAGE_BASE.", ".STORAGE_BASE.", `maxstore` - ".$buildarray[$level]['attri']."), - WHERE - wref=".(int) $vil['vref']); - } - - if ($type == 11 || $type == 39) { - $database->query(" - UPDATE ".TB_PREFIX."vdata - SET - `maxcrop` = IF(`maxcrop` - ".$buildarray[$level]['attri']." <= ".STORAGE_BASE.", ".STORAGE_BASE.", `maxcrop` - ".$buildarray[$level]['attri']."), - WHERE - wref=".(int) $vil['vref']); - } - - if ($level == 1) $clear = ",f".$vil['buildnumber']."t=0"; - else $clear = ""; - - if ($database->getVillageField($vil['vref'], 'natar') == 1 && $type == 40) $clear = ""; //fix by ronix - fixed by iopietro - - $q = "UPDATE ".TB_PREFIX."fdata SET f".$vil['buildnumber']."=".(($level - 1 >= 0) ? $level - 1 : 0).$clear." WHERE vref=".(int) $vil['vref']; - $database->query($q); - - $pop = $this->getPop($type, $level - 1); - $database->modifyPop($vil['vref'], $pop[0], 1); - $this->procClimbers($database->getVillageField($vil['vref'], 'owner')); - $database->delDemolition($vil['vref'], true); - - if ($type == 18) Automation::updateMax($database->getVillageField($vil['vref'], 'owner')); - } - } - - } - - private function updateHero() { - global $database, $hero_levels; - - $harray = $database->getHero(); - if(!empty($harray)){ - // first of all, prepare all unit data at once for these heroes - $heroVillageIDs = []; - foreach($harray as $hdata) { - $heroVillageIDs[] = $hdata['wref']; - } - - // load data for those prepared IDs - $unitData = $database->getUnit($heroVillageIDs); - - // now do the math - $lastUpdateIDs = []; - $timeNow = time(); - foreach($harray as $hdata){ - $columns = []; - $columnValues = []; - $modes = []; - $lastUpdateTime = $timeNow; - $newHealth = -1; - - if((time()-$hdata['lastupdate']) >= 1){ - if($hdata['health'] < 100 and $hdata['health'] > 0){ - if(SPEED <= 10) $speed = SPEED; - else if(SPEED <= 100) $speed = ceil(SPEED / 10); - else $speed = ceil(SPEED / 100); - - $reg = $hdata['health'] + $hdata['regeneration'] * 5 * $speed / 86400 * (time() - $hdata['lastupdate']); - - if($reg <= 100) $newHealth = $reg; - else $newHealth = 100; - } - } - - $herolevel = $hdata['level']; - $newLevel = - 1; - $scorePoints = false; - for ($i = $herolevel + 1; $i < 100; $i++){ - if($hdata['experience'] >= $hero_levels[$i]){ - $newLevel = $i; - if ($i < 99) $scorePoints = true; - } - } - - // upgrade hero to a new level, if needed - if ($newLevel > -1) { - $columns[] = 'level'; - $columnValues[] = $newLevel; - $modes[] = null; - } - - // add as many points as needed, if we're below level 100 - if ($scorePoints) { - $columns[] = 'points'; - $columnValues[] = (5 * ($newLevel - $herolevel)); - $modes[] = 1; - } - - $villunits = $unitData[$hdata['wref']]; - if($hdata['trainingtime'] < time() && $hdata['inrevive'] == 1){ - mysqli_query($database->dblink,"UPDATE " . TB_PREFIX . "units SET hero = 1 WHERE vref = ".(int) $hdata['wref'].""); - - $columns[] = 'dead'; - $columnValues[] = 0; - $modes[] = null; - - $columns[] = 'inrevive'; - $columnValues[] = 0; - $modes[] = null; - - $columns[] = 'inrevive'; - $columnValues[] = 0; - $modes[] = null; - - $newHealth = 100; - $lastUpdateTime = (int) $hdata['trainingtime']; - } - - if($hdata['trainingtime'] < time() && $hdata['intraining'] == 1){ - mysqli_query($database->dblink,"UPDATE " . TB_PREFIX . "units SET hero = 1 WHERE vref = ".(int) $hdata['wref']); - - $columns[] = 'dead'; - $columnValues[] = 0; - $modes[] = null; - - $columns[] = 'intraining'; - $columnValues[] = 0; - $modes[] = null; - - $lastUpdateTime = (int) $hdata['trainingtime']; - } - - // update health, if needed - if ($newHealth > -1) { - $columns[] = 'health'; - $columnValues[] = $newHealth; - $modes[] = null; - } - - if ($lastUpdateTime != $timeNow) { - // last update timestamp - $columns[] = 'lastupdate'; - $columnValues[] = $lastUpdateTime; - $modes[] = null; - } else { - // leave same last update values for multiple heroes to the end - $lastUpdateIDs[] = $hdata['heroid']; - } - - if (count($columns)) $database->modifyHero($columns, $columnValues, $hdata['heroid'], $modes); - } - - if (count($lastUpdateIDs)) { - mysqli_query($database->dblink,"UPDATE " . TB_PREFIX . "hero SET lastupdate = $timeNow WHERE heroid IN(".implode(', ', $lastUpdateIDs).")"); - } - } - } - - // by SlimShady95, aka Manuel Mannhardt < manuel_mannhardt@web.de > UPDATED FROM songeriux < haroldas.snei@gmail.com > - private function updateStore() { - global $database, $bid10, $bid38, $bid11, $bid39; - - $result = mysqli_query($database->dblink, 'SELECT * FROM `' . TB_PREFIX . 'fdata`'); - - mysqli_begin_transaction($database->dblink); - while ($row = mysqli_fetch_assoc($result)) - { - $ress = $crop = 0; - for ($i = 19; $i < 40; ++$i) - { - //Warehouse - if ($row['f' . $i . 't'] == 10) - { - $ress += ((isset($bid10[$row['f' . $i]]) && isset($bid10[$row['f' . $i]]['attri'])) ? $bid10[$row['f' . $i]]['attri'] * STORAGE_MULTIPLIER : 0); - } - - //Great warehouse - if ($row['f' . $i . 't'] == 38) - { - $ress += ((isset($bid38[$row['f' . $i]]) && isset($bid38[$row['f' . $i]]['attri'])) ? $bid38[$row['f' . $i]]['attri'] * STORAGE_MULTIPLIER : 0); - } - - //Granary - if ($row['f' . $i . 't'] == 11) - { - $crop += ((isset($bid11[$row['f' . $i]]) && isset($bid11[$row['f' . $i]]['attri'])) ? $bid11[$row['f' . $i]]['attri'] * STORAGE_MULTIPLIER : 0); - } - - //Great granary - if ($row['f' . $i . 't'] == 39) - { - $crop += ((isset($bid39[$row['f' . $i]]) && isset($bid39[$row['f' . $i]]['attri'])) ? $bid39[$row['f' . $i]]['attri'] * STORAGE_MULTIPLIER : 0); - } - } - - // no need for update, since we didn't find any warehouses or granaries - // and maximums would have been set to correct values inside prune* functions already - if ($ress == 0 && $crop == 0) continue; - - // maxstore nor maxcrop can go below the minimum threshold - if ($ress < STORAGE_BASE) $ress = STORAGE_BASE; - if ($crop < STORAGE_BASE) $crop = STORAGE_BASE; - - mysqli_query($database->dblink,'UPDATE `' . TB_PREFIX . 'vdata` SET `maxstore` = ' . (int) $ress . ', `maxcrop` = ' . (int) $crop . ' WHERE `wref` = ' . (int) $row['vref']); - } - mysqli_commit($database->dblink); - } - - /*private function oasisResourcesProduce() { - global $database; - - $speedMultiplier = (8 * (SPEED/3600)); - $database->query(" - UPDATE " . TB_PREFIX . "odata - SET - lastupdated = UNIX_TIMESTAMP(), - wood = IF(wood + ($speedMultiplier * (UNIX_TIMESTAMP() - lastupdated)) > maxstore, maxstore, wood + ($speedMultiplier * (UNIX_TIMESTAMP() - lastupdated))), - clay = IF(clay + ($speedMultiplier * (UNIX_TIMESTAMP() - lastupdated)) > maxstore, maxstore, clay + ($speedMultiplier * (UNIX_TIMESTAMP() - lastupdated))), - iron = IF(iron + ($speedMultiplier * (UNIX_TIMESTAMP() - lastupdated)) > maxstore, maxstore, iron + ($speedMultiplier * (UNIX_TIMESTAMP() - lastupdated))), - crop = IF(crop + ($speedMultiplier * (UNIX_TIMESTAMP() - lastupdated)) > maxcrop, maxcrop, crop + ($speedMultiplier * (UNIX_TIMESTAMP() - lastupdated))) - WHERE - wood < 800 OR - clay < 800 OR - iron < 800 OR - crop < 800"); - }*/ - - private function checkInvitedPlayes() { - global $database; - - $q = "SELECT id, invited FROM ".TB_PREFIX."users WHERE invited > 0"; - $array = $database->query_return($q); - - // preload villages data - $userIDs = []; - foreach($array as $user) { - $userIDs[] = $user['id']; - } - $database->getProfileVillages($userIDs); - - // continue... - foreach($array as $user) { - $numusers = mysqli_fetch_array(mysqli_query($database->dblink,"SELECT Count(*) as Total FROM ".TB_PREFIX."users WHERE id = ".(int) $user['invited']), MYSQLI_ASSOC); - if($numusers['Total'] > 0){ - $varray = count($database->getProfileVillages($user['id'])); - if($varray > 1){ - $usergold = $database->getUserField($user['invited'],"gold",0); - $gold = $usergold+50; - $database->updateUserField($user['invited'],"gold",$gold,1); - $database->updateUserField($user['id'],"invited",0,1); - } - } - } - } - - private function updateGeneralAttack() { - global $database; - - mysqli_query($database->dblink, " - UPDATE ".TB_PREFIX."general - SET - shown = 0 - WHERE - shown = 1 AND - `time` < (UNIX_TIMESTAMP() - (86400 * 8))"); - } - - private function MasterBuilder() { - global $database; - - $q = "SELECT id, wid, type, level, field, timestamp FROM ".TB_PREFIX."bdata WHERE master = 1"; - $array = $database->query_return($q); - - foreach($array as $master) { - $owner = $database->getVillageField($master['wid'], 'owner'); - $tribe = $database->getUserField($owner, 'tribe', 0); - $villwood = $database->getVillageField($master['wid'], 'wood'); - $villclay = $database->getVillageField($master['wid'], 'clay'); - $villiron = $database->getVillageField($master['wid'], 'iron'); - $villcrop = $database->getVillageField($master['wid'], 'crop'); - $type = $master['type']; - $level = $master['level']; - $buildarray = $GLOBALS["bid".$type]; - $buildwood = $buildarray[$level]['wood']; - $buildclay = $buildarray[$level]['clay']; - $buildiron = $buildarray[$level]['iron']; - $buildcrop = $buildarray[$level]['crop']; - $ww = count($database->getBuildingByType($master['wid'], 40)); - - if($tribe == 1){ - if($master['field'] < 19){ - $bdata = $database->getDorf1Building($master['wid']); - $bdataTotal = count($bdata); - $bbdata = count($database->getDorf2Building($master['wid'])); - }else{ - $bdata = $database->getDorf2Building($master['wid']); - $bdataTotal = count($bdata); - $bbdata = count($database->getDorf1Building($master['wid'])); - } - }else{ - $bdata = array_merge($database->getDorf1Building($master['wid']), $database->getDorf2Building($master['wid'])); - $bdataTotal = $bbdata = count($bdata); - } - - if($database->getUserField($owner, 'plus', 0) > time() || $ww > 0){ - if($bbdata < 2) $inbuild = 2; - else $inbuild = 1; - } - else $inbuild = 1; - - $usergold = $database->getUserField($owner, 'gold', 0); - - if($bdataTotal < $inbuild && $buildwood <= $villwood && $buildclay <= $villclay && $buildiron <= $villiron && $buildcrop <= $villcrop && $usergold > 0){ - $time = $master['timestamp'] + time(); - - if(!empty($bdata)){ - foreach($bdata as $masterLoop) $time += ($masterLoop['timestamp'] - time()); - } - - if($bdataTotal == 0) $database->updateBuildingWithMaster($master['id'], $time, 0); - else $database->updateBuildingWithMaster($master['id'], $time, 1); - - $database->updateUserField($owner, 'gold', --$usergold, 1); - $database->modifyResource($master['wid'], $buildwood, $buildclay, $buildiron, $buildcrop, 0); - } - } - } - - /** - * Function for starvation - by brainiacX and Shadow - * Rework by ronix - * Refactored by iopietro - */ - - //TODO: This function needs to be splitted in many subfunctions (for TravianZ refactor) - private function starvation() { - global $database, $technology; - - //Starvation is disabled during Easter/Holidays/Christmas - if(PEACE) return; - - $time = time(); - - //Update starvation in every village - $starvarray = $database->getProfileVillages(0, 7); - foreach($starvarray as $starv) $database->addStarvationData($starv['wref']); - - //Load villages with minus prod - $starvarray = []; - $starvarray = $database->getStarvation(); - - $vilIDs = []; - foreach ($starvarray as $starv) $vilIDs[] = $starv['wref']; - - //Cache - $database->getEnforceVillage($vilIDs, 0); - $database->getOasisEnforce($vilIDs, 2); - $database->getOasisEnforce($vilIDs, 3); - $database->getPrisoners($vilIDs, 1); - $database->getMovement(3, $vilIDs, 0); - $database->getMovement(4, $vilIDs, 1); - - foreach ($starvarray as $starv) - { - $unitarrays = $this->getAllUnits($starv['wref']); - - $upkeep = $starv['pop'] + $technology->getUpkeep($unitarrays, 0, $starv['wref']); - - $enforceArrays = $prisonerArrays = $unitArrays = $attackArrays = $allTroopsArray = $starvingTroops = $killedUnits = []; - - $enforceArrays = [$database->getOasisEnforce($starv['wref'], 2), - $database->getOasisEnforce($starv['wref'], 3), - $database->getEnforceVillage($starv['wref'], 2), - $database->getEnforceVillage($starv['wref'], 3)]; - - $prisonerArrays = [$database->getPrisoners($starv['wref'], 1)]; - - $unitArrays = ($database->getUnitsNumber($starv['wref'], 0) > 0) ? [[$database->getUnit($starv['wref'])]] : []; - - $attackArrays = [$database->getMovement(3, $starv['wref'], 0), - $database->getMovement(4, $starv['wref'], 1)]; - - $allTroopsArray = [$enforceArrays, $prisonerArrays, $unitArrays, $attackArrays]; - - //Find the first not-empty array - foreach($allTroopsArray as $type => $allTroops) - { - if(!empty($allTroops)){ - foreach($allTroops as $subtype => $troops){ - if(!empty($troops)){ - $starvingTroops = reset($troops); - break 2; - } - } - } - } - - //If the player has no troops, then skip the next instructions - if(empty($starvingTroops)) continue; - - //Counting - $timedif = $time - $starv['starvupdate']; - $cropProd = $database->getCropProdstarv($starv['wref']) - $starv['starv']; - if($cropProd < 0){ - $starvsec = (abs($cropProd) / 3600); - $difcrop = ($timedif * $starvsec); //crop eat up over time - $newcrop = 0; - $oldcrop = $database->getVillageField($starv['wref'], 'crop'); - - //If the grain is then tries to send all - if ($oldcrop > 100){ - $difcrop = $difcrop - $oldcrop; - if($difcrop < 0){ - $difcrop = 0; - $newcrop = $oldcrop - $difcrop; - $database->setVillageField($starv['wref'], 'crop', $newcrop); - } - } - - if($difcrop > 0 && $oldcrop <= 0){ - $tribe = $database->getUserField(($type == 2) ? $starv['owner'] : $database->getVillageField($starvingTroops['from'], "owner"), "tribe", 0); - $start = ($special = in_array($type, [1, 3])) ? 1 : ($tribe - 1) * 10 + 1; - $end = ($special) ? 10 : $tribe * 10 ; - $utype = ($special) ? 't' : 'u'; - $heroType = ($special) ? 't11' : 'hero'; - - $totalUnits = 0; - $counting = true; - while($difcrop > 0) - { - //S earch the highest troop - $maxcount = $maxtype = 0; - for($i = $start ; $i <= $end ; $i++) - { - $units = (isset($starvingTroops[$utype.$i]) ? $starvingTroops[$utype.$i] : 0); - if($counting) $totalUnits += $units; - if($units > $maxcount){ - $maxcount = $units; - $maxtype = $i; - } - } - if($counting) $counting = false; - - if($maxtype > 0){ - $starvingTroops[$utype.$maxtype]--; - $killedUnits[$maxtype]++; - $difcrop -= $GLOBALS['u'.(($special) ? $maxtype + ($tribe - 1) * 10 : $maxtype)]['crop']; - } - else break; - } - - $totalKilledUnits = array_sum($killedUnits); - if($starvingTroops[$heroType] > 0 && ($totalUnits == 0 || $totalUnits == $totalKilledUnits)){ - $totalKilledUnits += $starvingTroops[$heroType]; - $totalUnits += $starvingTroops[$heroType]; - $starvingTroops['heroinfo'] = $database->getHero(($type == 2) ? $starv['owner'] : $database->getVillageField(($type == 3 && $subtype == 1) ? $starvingTroops['to'] : $starvingTroops['from'], "owner"))[0]; - $database->modifyHero("dead", 1, $starvingTroops['heroinfo']['heroid']); - $database->modifyHero("health", 0, $starvingTroops['heroinfo']['heroid']); - $newCrop = $GLOBALS['h'.$starvingTroops['heroinfo']['unit'].'_full'][min($starvingTroops['heroinfo']['level'], 60)]['crop'] + $difcrop; - } - else if($maxtype == 0) $newCrop = 0; - else $newCrop = $GLOBALS['u'.$maxtype]['crop']; - - if($totalKilledUnits > 0){ - switch($type){ - case 0: - if($totalKilledUnits < $totalUnits){ - $database->modifyEnforce($starvingTroops['id'], array_keys($killedUnits), array_values($killedUnits), 0); - } - else $database->deleteReinf($starvingTroops['id']); - break; - - case 1: - if($totalKilledUnits < $totalUnits){ - $database->modifyPrisoners($starvingTroops['id'], array_keys($killedUnits), array_values($killedUnits), 0); - $database->modifyUnit($starvingTroops['wref'], ["99o"], [$totalKilledUnits], [0]); - }else{ - $database->deletePrisoners($starvingTroops['id']); - $database->modifyUnit($starvingTroops['wref'], ["99o"], [$totalUnits], [0]); - } - break; - - case 2: - $database->modifyUnit($starv['wref'], array_keys($killedUnits), array_values($killedUnits), [0]); - break; - - case 3: - if($totalKilledUnits < $totalUnits){ - $database->modifyAttack2($starvingTroops['id'], array_keys($killedUnits), array_values($killedUnits), 0); - } - else $database->setMovementProc($starvingTroops['moveid']); - break; - } - - $database->modifyResource($starv['wref'], 0, 0, 0, max($newCrop, 0), 1); - $database->setVillageField($starv['wref'], ['starv', 'starvupdate'], [$upkeep, $time]); - } - } - } - - $crop = $database->getCropProdstarv($starv['wref'], false); - if ($crop > $upkeep) $database->setVillageFields($starv['wref'], ['starv', 'starvupdate'], [0, 0]); - - unset ($unitarrays, $type, $subtype); - } - } - - private function procNewClimbers() { - global $database, $ranking; - - $ranking->procRankArray(); - $climbers = $ranking->getRank(); - if(count($climbers) > 0){ - $q = "SELECT week FROM ".TB_PREFIX."medal order by week DESC LIMIT 0, 1"; - $result = mysqli_query($database->dblink,$q); - if(mysqli_num_rows($result)) { - $row = mysqli_fetch_assoc($result); - $week = $row['week'] + 1; - } - else $week = 1; - - $q = "SELECT id FROM ".TB_PREFIX."users where oldrank = 0 and id > 5"; - $array = $database->query_return($q); - foreach($array as $user){ - $newrank = $ranking->getUserRank($user['id']); - if($week > 1){ - for($i = $newrank + 1; $i < count($climbers); $i++) { - if(isset($climbers[$i]['userid'])){ - $oldrank = $ranking->getUserRank($climbers[$i]['userid']); - $totalpoints = $oldrank - $climbers[$i]['oldrank']; - $database->removeclimberrankpop($climbers[$i]['userid'], $totalpoints); - $database->updateoldrank($climbers[$i]['userid'], $oldrank); - } - } - $database->updateoldrank($user['id'], $newrank); - }else{ - $totalpoints = count($climbers) - $newrank; - $database->setclimberrankpop($user['id'], $totalpoints); - $database->updateoldrank($user['id'], $newrank); - for($i = 1; $i < $newrank; $i++){ - if(isset($climbers[$i]['userid'])){ - $oldrank = $ranking->getUserRank($climbers[$i]['userid']); - $totalpoints = count($climbers) - $oldrank; - $database->setclimberrankpop($climbers[$i]['userid'], $totalpoints); - $database->updateoldrank($climbers[$i]['userid'], $oldrank); - } - } - for($i = $newrank + 1; $i < count($climbers); $i++){ - if(isset($climbers[$i]['userid'])){ - $oldrank = $ranking->getUserRank($climbers[$i]['userid']); - $totalpoints = count($climbers) - $oldrank; - $database->setclimberrankpop($climbers[$i]['userid'], $totalpoints); - $database->updateoldrank($climbers[$i]['userid'], $oldrank); - } - } - } - } - } - } - - private function procClimbers($uid) { - global $database, $ranking; - - $ranking->procRankArray(); - $climbers = $ranking->getRank(); - if(count($ranking->getRank()) > 0){ - $q = "SELECT week FROM ".TB_PREFIX."medal order by week DESC LIMIT 0, 1"; - $result = mysqli_query($database->dblink,$q); - if(mysqli_num_rows($result)) { - $row = mysqli_fetch_assoc($result); - $week = $row['week'] + 1; - } - else $week = 1; - - $myrank = $ranking->getUserRank($uid); - if(isset($climbers[$myrank]['oldrank']) && $climbers[$myrank]['oldrank'] > $myrank){ - for($i = $myrank + 1; $i <= $climbers[$myrank]['oldrank']; $i++) { - if(isset($climbers[$i]['oldrank'])){ - $oldrank = $ranking->getUserRank($climbers[$i]['userid']); - if($week > 1){ - $totalpoints = $oldrank - $climbers[$i]['oldrank']; - $database->removeclimberrankpop($climbers[$i]['userid'], $totalpoints); - $database->updateoldrank($climbers[$i]['userid'], $oldrank); - }else{ - $totalpoints = count($ranking->getRank()) - $oldrank; - $database->setclimberrankpop($climbers[$i]['userid'], $totalpoints); - $database->updateoldrank($climbers[$i]['userid'], $oldrank); - } - } - } - if(isset($climbers[$myrank]['oldrank'])){ - if($week > 1){ - $totalpoints = $climbers[$myrank]['oldrank'] - $myrank; - $database->addclimberrankpop($climbers[$myrank]['userid'], $totalpoints); - $database->updateoldrank($climbers[$myrank]['userid'], $myrank); - }else{ - $totalpoints = count($ranking->getRank()) - $myrank; - $database->setclimberrankpop($climbers[$myrank]['userid'], $totalpoints); - $database->updateoldrank($climbers[$myrank]['userid'], $myrank); - } - } - }else if(isset($climbers[$myrank]['oldrank']) && $climbers[$myrank]['oldrank'] < $myrank){ - for($i = $climbers[$myrank]['oldrank']; $i < $myrank; $i++) { - if(isset($climbers[$i]['oldrank'])){ - $oldrank = $ranking->getUserRank($climbers[$i]['userid']); - if($week > 1){ - $totalpoints = $climbers[$i]['oldrank'] - $oldrank; - $database->addclimberrankpop($climbers[$i]['userid'], $totalpoints); - $database->updateoldrank($climbers[$i]['userid'], $oldrank); - }else{ - $totalpoints = count($ranking->getRank()) - $oldrank; - $database->setclimberrankpop($climbers[$i]['userid'], $totalpoints); - $database->updateoldrank($climbers[$i]['userid'], $oldrank); - } - } - } - if(isset($climbers[$myrank-1]['oldrank'])){ - if($week > 1){ - $totalpoints = $myrank - $climbers[$myrank-1]['oldrank']; - $database->removeclimberrankpop($climbers[$myrank-1]['userid'], $totalpoints); - $database->updateoldrank($climbers[$myrank-1]['userid'], $myrank); - }else{ - $totalpoints = count($ranking->getRank()) - $myrank; - $database->setclimberrankpop($climbers[$myrank-1]['userid'], $totalpoints); - $database->updateoldrank($climbers[$myrank-1]['userid'], $myrank); - } - } - } - } - $ranking->procARankArray(); - $aid = $database->getUserField($uid,"alliance",0); - if(count($ranking->getRank()) > 0 && $aid != 0){ - $ally = $database->getAlliance($aid); - $memberlist = $database->getAllMember($ally['id']); - $oldrank = 0; - - $memberIDs = []; - foreach($memberlist as $member) { - $memberIDs[] = $member['id']; - } - $data = $database->getVSumField($memberIDs,"pop"); - - if (count($data)) { - foreach ($data as $row) { - $oldrank += $row['Total']; - } - } - - if($ally['oldrank'] != $oldrank){ - if($ally['oldrank'] < $oldrank) { - $totalpoints = $oldrank - $ally['oldrank']; - $database->addclimberrankpopAlly($ally['id'], $totalpoints); - $database->updateoldrankAlly($ally['id'], $oldrank); - } else - if($ally['oldrank'] > $oldrank) { - $totalpoints = $ally['oldrank'] - $oldrank; - $database->removeclimberrankpopAlly($ally['id'], $totalpoints); - $database->updateoldrankAlly($ally['id'], $oldrank); - } - } - } - } - - private function checkBan() { - global $database; - - mysqli_query($database->dblink, " - UPDATE ".TB_PREFIX."banlist as b - JOIN ".TB_PREFIX."users as u ON b.uid = u.id - SET - b.active = 0, - u.access = 2 - WHERE - b.active = 1 AND - b.`end` < UNIX_TIMESTAMP() AND - b.`end` > 0"); - } - - private function regenerateOasisTroops() { - global $database; - - $timeFinal = time() - NATURE_REGTIME; - $q = "SELECT wref FROM " . TB_PREFIX . "odata where conqured = 0 and lastupdated2 < $timeFinal"; - $array = $database->query_return($q); - if (count($array)) { - $ids = []; - foreach($array as $oasis) $ids[] = $oasis['wref']; - $database->regenerateOasisUnits($ids, true); - } - } - - public static function updateMax($leader) { - global $bid18, $database; - - $q = mysqli_fetch_array(mysqli_query($database->dblink,"SELECT Count(*) as Total FROM " . TB_PREFIX . "alidata where leader = ". (int) $leader), MYSQLI_ASSOC); - if ($q['Total'] > 0) { - $villages = $database->getVillagesID2($leader); - $max = 0; - - // cache resource levels - $vilIDs = []; - foreach($villages as $village){ - $vilIDs[$village['wref']] = true; - } - $database->cacheResourceLevels(array_keys($vilIDs)); - - foreach($villages as $village){ - $field = $database->getResourceLevel($village['wref'], false); - for($i = 19; $i <= 40; $i++){ - if($field['f'.$i.'t'] == 18){ - $level = $field['f'.$i]; - $attri = $bid18[$level]['attri']; - } - } - if($attri > $max){ - $max = $attri; - } - } - $q = "UPDATE ".TB_PREFIX."alidata set max = ".(int) $max." where leader = ".(int) $leader; - $database->query($q); - } - } - - /** - * Function for automate medals - by yi12345 and Shadow - * - */ - - function medals(){ - global $ranking, $database; - - //we may give away ribbons - $giveMedal = false; - $q = "SELECT lastgavemedal FROM ".TB_PREFIX."config"; - $result = mysqli_query($database->dblink,$q); - if($result) { - $row = mysqli_fetch_assoc($result); - $stime = strtotime(START_DATE) - strtotime(date('d.m.Y')) + strtotime(START_TIME); - if($row['lastgavemedal'] == 0 && $stime < time()){ - $setDays = round(MEDALINTERVAL / 86400); - $newtime = $setDays < 7 ? strtotime(($setDays + 1).'day midnight') : strtotime('next monday'); - $q = "UPDATE ".TB_PREFIX."config SET lastgavemedal = ".(int) $newtime; - $database->query($q); - }elseif($row['lastgavemedal'] != 0){ - $time = $row['lastgavemedal'] + MEDALINTERVAL; - $giveMedal = $row['lastgavemedal'] < time(); - } - } - - if($giveMedal && MEDALINTERVAL > 0){ - - //determine which week we are - - $q = "SELECT week FROM ".TB_PREFIX."medal order by week DESC LIMIT 0, 1"; - $result = mysqli_query($database->dblink,$q); - if(mysqli_num_rows($result)) { - $row=mysqli_fetch_assoc($result); - $week=($row['week']+1); - } else { - $week='1'; - } - - //Do same for ally week - - $q = "SELECT week FROM ".TB_PREFIX."allimedal order by week DESC LIMIT 0, 1"; - $result = mysqli_query($database->dblink,$q); - if(mysqli_num_rows($result)) { - $row=mysqli_fetch_assoc($result); - $allyweek=($row['week']+1); - } else { - $allyweek='1'; - } - - - //Attackers of the week - $result = mysqli_query($database->dblink,"SELECT id, ap FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY ap DESC, id DESC Limit 10"); - $i=0; - while($row = mysqli_fetch_array($result)){ - $i++; - $img="t2_".($i).""; - $quer="insert into ".TB_PREFIX."medal (userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", 1, ".($i).", ".(int) $week.", '".$row['ap']."', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - - //Defender of the week - $result = mysqli_query($database->dblink,"SELECT id, dp FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY dp DESC, id DESC Limit 10"); - $i=0; - while($row = mysqli_fetch_array($result)){ - $i++; - $img="t3_".($i).""; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '2', ".($i).", '".(int) $week."', '".$row['dp']."', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - - //Climbers of the week - $result = mysqli_query($database->dblink,"SELECT id, Rc FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY Rc DESC, id DESC Limit 10"); - $i=0; - while($row = mysqli_fetch_array($result)){ - $i++; - $img="t1_".($i).""; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '3', ".($i).", '".(int) $week."', '".$row['Rc']."', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - - //Rank climbers of the week - $result = mysqli_query($database->dblink,"SELECT id, clp FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY clp DESC Limit 10"); - $i=0; - while($row = mysqli_fetch_array($result)){ - $i++; - $img="t6_".($i).""; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '10', ".($i).", '".(int) $week."', '".$row['clp']."', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - - //Robbers of the week - $result = mysqli_query($database->dblink,"SELECT id, RR FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY RR DESC, id DESC Limit 10"); - $i=0; - while($row = mysqli_fetch_array($result)){ - $i++; - $img="t4_".($i).""; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '4', ".($i).", '".(int) $week."', '".$row['RR']."', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - - //Part of the bonus for top 10 attack + defense out - //Top10 attackers - $result = mysqli_query($database->dblink,"SELECT id FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY ap DESC, id DESC Limit 10"); - while($row = mysqli_fetch_array($result)){ - - //Top 10 defenders - $result2 = mysqli_query($database->dblink,"SELECT id FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY dp DESC, id DESC Limit 10"); - while($row2 = mysqli_fetch_array($result2)){ - if($row['id']==$row2['id']){ - - $query3="SELECT Count(*) FROM ".TB_PREFIX."medal WHERE userid=".(int) $row['id']." AND categorie = 5"; - $result3=mysqli_query($database->dblink,$query3); - $row3=mysqli_fetch_row($result3); - - //Look what color the ribbon must have - if($row3[0]<='2'){ - $img="t22".$row3[0]."_1"; - switch ($row3[0]) { - case "0": - $tekst=""; - break; - case "1": - $tekst="twice "; - break; - case "2": - $tekst="three times "; - break; - } - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '5', '0', '".(int) $week."', '".$tekst."', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - } - } - } - - //you stand for 3rd / 5th / 10th time in the top 3 strikers - //top10 attackers - $result = mysqli_query($database->dblink,"SELECT id FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY ap DESC, id DESC Limit 10"); - while($row = mysqli_fetch_array($result)){ - - $query1="SELECT Count(*) FROM ".TB_PREFIX."medal WHERE userid=".(int) $row['id']." AND categorie = 1 AND plaats<=3"; - $result1=mysqli_query($database->dblink,$query1); - $row1=mysqli_fetch_row($result1); - - - //2x at present as it is so ribbon 3rd (bronze) - if($row1[0]=='3'){ - $img="t120_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '6', '0', '".(int) $week."', 'Three', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //4x at present as it is so 5th medal (silver) - if($row1[0]=='5'){ - $img="t121_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '6', '0', '".(int) $week."', 'Five', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //9x at present as it is so 10th medal (gold) - if($row1[0]=='10'){ - $img="t122_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '6', '0', '".(int) $week."', 'Ten', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - - } - //you stand for 3rd / 5th / 10th time in the top 10 attackers - //top10 attackers - $result = mysqli_query($database->dblink,"SELECT id FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY ap DESC, id DESC Limit 10"); - while($row = mysqli_fetch_array($result)){ - - $query1="SELECT Count(*) FROM ".TB_PREFIX."medal WHERE userid=".(int) $row['id']." AND categorie = 1 AND plaats<=10"; - $result1=mysqli_query($database->dblink,$query1); - $row1=mysqli_fetch_row($result1); - - - //2x in gestaan, dit is 3e dus lintje (brons) - if($row1[0]=='3'){ - $img="t130_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '12', '0', '".(int) $week."', 'Three', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //4x in gestaan, dit is 5e dus lintje (zilver) - if($row1[0]=='5'){ - $img="t131_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '12', '0', '".(int) $week."', 'Five', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //9x at present as it is so 10th medal (gold) - if($row1[0]=='10'){ - $img="t132_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '12', '0', '".(int) $week."', 'Ten', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - - } - //je staat voor 3e / 5e / 10e keer in de top 3 verdedigers - //Pak de top10 verdedigers - $result = mysqli_query($database->dblink,"SELECT id FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY dp DESC, id DESC Limit 10"); - while($row = mysqli_fetch_array($result)){ - - $query1="SELECT Count(*) FROM ".TB_PREFIX."medal WHERE userid=".(int) $row['id']." AND categorie = 2 AND plaats<=3"; - $result1=mysqli_query($database->dblink,$query1); - $row1=mysqli_fetch_row($result1); - - - //2x in gestaan, dit is 3e dus lintje (brons) - if($row1[0]=='3'){ - $img="t140_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '7', '0', '".(int) $week."', 'Three', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //4x in gestaan, dit is 5e dus lintje (zilver) - if($row1[0]=='5'){ - $img="t141_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '7', '0', '".(int) $week."', 'Five', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //9x at present as it is so 10th medal (gold) - if($row1[0]=='10'){ - $img="t142_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '7', '0', '".(int) $week."', 'Ten', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - - } - //je staat voor 3e / 5e / 10e keer in de top 3 verdedigers - //Pak de top10 verdedigers - $result = mysqli_query($database->dblink,"SELECT id FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY dp DESC, id DESC Limit 10"); - while($row = mysqli_fetch_array($result)){ - - $query1="SELECT Count(*) FROM ".TB_PREFIX."medal WHERE userid=".(int) $row['id']." AND categorie = 2 AND plaats<=10"; - $result1=mysqli_query($database->dblink,$query1); - $row1=mysqli_fetch_row($result1); - - - //2x in gestaan, dit is 3e dus lintje (brons) - if($row1[0]=='3'){ - $img="t150_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '13', '0', '".(int) $week."', 'Three', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //4x in gestaan, dit is 5e dus lintje (zilver) - if($row1[0]=='5'){ - $img="t151_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '13', '0', '".(int) $week."', 'Five', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //9x at present as it is so 10th medal (gold) - if($row1[0]=='10'){ - $img="t152_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '13', '0', '".(int) $week."', 'Ten', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - - } - - //je staat voor 3e / 5e / 10e keer in de top 3 klimmers - //Pak de top10 klimmers - $result = mysqli_query($database->dblink,"SELECT id FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY Rc DESC, id DESC Limit 10"); - while($row = mysqli_fetch_array($result)){ - - $query1="SELECT Count(*) FROM ".TB_PREFIX."medal WHERE userid=".(int) $row['id']." AND categorie = 3 AND plaats<=3"; - $result1=mysqli_query($database->dblink,$query1); - $row1=mysqli_fetch_row($result1); - - - //2x in gestaan, dit is 3e dus lintje (brons) - if($row1[0]=='3'){ - $img="t100_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '8', '0', '".(int) $week."', 'Three', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //4x in gestaan, dit is 5e dus lintje (zilver) - if($row1[0]=='5'){ - $img="t101_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '8', '0', '".(int) $week."', 'Five', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //9x at present as it is so 10th medal (gold) - if($row1[0]=='10'){ - $img="t102_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '8', '0', '".(int) $week."', 'Ten', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - } - //je staat voor 3e / 5e / 10e keer in de top 3 klimmers - //Pak de top10 klimmers - $result = mysqli_query($database->dblink,"SELECT id FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY Rc DESC, id DESC Limit 10"); - while($row = mysqli_fetch_array($result)){ - - $query1="SELECT Count(*) FROM ".TB_PREFIX."medal WHERE userid=".(int) $row['id']." AND categorie = 3 AND plaats<=10"; - $result1=mysqli_query($database->dblink,$query1); - $row1=mysqli_fetch_row($result1); - - - //2x in gestaan, dit is 3e dus lintje (brons) - if($row1[0]=='3'){ - $img="t110_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '14', '0', '".(int) $week."', 'Three', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //4x in gestaan, dit is 5e dus lintje (zilver) - if($row1[0]=='5'){ - $img="t111_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '14', '0', '".(int) $week."', 'Five', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //9x at present as it is so 10th medal (gold) - if($row1[0]=='10'){ - $img="t112_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '14', '0', '".(int) $week."', 'Ten', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - } - - //je staat voor 3e / 5e / 10e keer in de top 3 klimmers - //Pak de top3 rank climbers - $result = mysqli_query($database->dblink,"SELECT id FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY clp DESC, id DESC Limit 10"); - while($row = mysqli_fetch_array($result)){ - - $query1="SELECT Count(*) FROM ".TB_PREFIX."medal WHERE userid=".(int) $row['id']." AND categorie = 10 AND plaats<=3"; - $result1=mysqli_query($database->dblink,$query1); - $row1=mysqli_fetch_row($result1); - - - //2x in gestaan, dit is 3e dus lintje (brons) - if($row1[0]=='3'){ - $img="t200_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '11', '0', '".(int) $week."', 'Three', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //4x in gestaan, dit is 5e dus lintje (zilver) - if($row1[0]=='5'){ - $img="t201_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '11', '0', '".(int) $week."', 'Five', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //9x at present as it is so 10th medal (gold) - if($row1[0]=='10'){ - $img="t202_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '11', '0', '".(int) $week."', 'Ten', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - } - //je staat voor 3e / 5e / 10e keer in de top 10klimmers - //Pak de top3 rank climbers - $result = mysqli_query($database->dblink,"SELECT id FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY clp DESC, id DESC Limit 10"); - while($row = mysqli_fetch_array($result)){ - - $query1="SELECT Count(*) FROM ".TB_PREFIX."medal WHERE userid=".(int) $row['id']." AND categorie = 10 AND plaats<=10"; - $result1=mysqli_query($database->dblink,$query1); - $row1=mysqli_fetch_row($result1); - - - //2x in gestaan, dit is 3e dus lintje (brons) - if($row1[0]=='3'){ - $img="t210_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '16', '0', '".(int) $week."', 'Three', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //4x in gestaan, dit is 5e dus lintje (zilver) - if($row1[0]=='5'){ - $img="t211_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '16', '0', '".(int) $week."', 'Five', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //9x at present as it is so 10th medal (gold) - if($row1[0]=='10'){ - $img="t212_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '16', '0', '".(int) $week."', 'Ten', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - } - - //je staat voor 3e / 5e / 10e keer in de top 10 overvallers - //Pak de top10 overvallers - $result = mysqli_query($database->dblink,"SELECT id FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY RR DESC, id DESC Limit 10"); - while($row = mysqli_fetch_array($result)){ - - $query1="SELECT Count(*) FROM ".TB_PREFIX."medal WHERE userid=".(int) $row['id']." AND categorie = 4 AND plaats<=3"; - $result1=mysqli_query($database->dblink,$query1); - $row1=mysqli_fetch_row($result1); - - - //2x in gestaan, dit is 3e dus lintje (brons) - if($row1[0]=='3'){ - $img="t160_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '9', '0', '".(int) $week."', 'Three', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //4x in gestaan, dit is 5e dus lintje (zilver) - if($row1[0]=='5'){ - $img="t161_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '9', '0', '".(int) $week."', 'Five', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //9x at present as it is so 10th medal (gold) - if($row1[0]=='10'){ - $img="t162_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '9', '0', '".(int) $week."', 'Ten', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - } - //je staat voor 3e / 5e / 10e keer in de top 10 overvallers - //Pak de top10 overvallers - $result = mysqli_query($database->dblink,"SELECT id FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY RR DESC, id DESC Limit 10"); - while($row = mysqli_fetch_array($result)){ - - $query1="SELECT Count(*) FROM ".TB_PREFIX."medal WHERE userid=".(int) $row['id']." AND categorie = 4 AND plaats<=10"; - $result1=mysqli_query($database->dblink,$query1); - $row1=mysqli_fetch_row($result1); - - - //2x in gestaan, dit is 3e dus lintje (brons) - if($row1[0]=='3'){ - $img="t170_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '15', '0', '".(int) $week."', 'Three', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //4x in gestaan, dit is 5e dus lintje (zilver) - if($row1[0]=='5'){ - $img="t171_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '15', '0', '".(int) $week."', 'Five', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - //9x at present as it is so 10th medal (gold) - if($row1[0]=='10'){ - $img="t172_1"; - $quer="insert into ".TB_PREFIX."medal(userid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '15', '0', '".(int) $week."', 'Ten', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - } - - //Put all true dens to 0 - $query="SELECT id FROM ".TB_PREFIX."users WHERE id > 5 AND access < 8 ORDER BY id+0 DESC"; - $result=mysqli_query($database->dblink,$query); - $userIDs = []; - for ($i=0; $row=mysqli_fetch_row($result); $i++){ - $userIDs[] = (int) $row[0]; - } - - if (count($userIDs)) { - mysqli_query($database->dblink,"UPDATE ".TB_PREFIX."users SET ap=0, dp=0,Rc=0,clp=0, RR=0 WHERE id IN(".implode(', ', $userIDs).")"); - } - - //Start alliance Medals wooot - - //Aanvallers v/d Week - $result = mysqli_query($database->dblink,"SELECT id, ap FROM ".TB_PREFIX."alidata ORDER BY ap DESC, id DESC Limit 10"); - $i=0; while($row = mysqli_fetch_array($result)){ - $i++; $img="a2_".($i).""; - $quer="insert into ".TB_PREFIX."allimedal(allyid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '1', ".($i).", '".$allyweek."', '".$row['ap']."', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - - //Verdediger v/d Week - $result = mysqli_query($database->dblink,"SELECT id, dp FROM ".TB_PREFIX."alidata ORDER BY dp DESC Limit 10"); - $i=0; while($row = mysqli_fetch_array($result)){ - $i++; $img="a3_".($i).""; - $quer="insert into ".TB_PREFIX."allimedal(allyid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '2', ".($i).", '".$allyweek."', '".$row['dp']."', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - - //Overvallers v/d Week - $result = mysqli_query($database->dblink,"SELECT id, RR FROM ".TB_PREFIX."alidata ORDER BY RR DESC, id DESC Limit 10"); - $i=0; while($row = mysqli_fetch_array($result)){ - $i++; $img="a4_".($i).""; - $quer="insert into ".TB_PREFIX."allimedal(allyid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '4', ".($i).", '".$allyweek."', '".$row['RR']."', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - - //Rank climbers of the week - $result = mysqli_query($database->dblink,"SELECT id, clp FROM ".TB_PREFIX."alidata ORDER BY clp DESC Limit 10"); - $i=0; while($row = mysqli_fetch_array($result)){ - $i++; $img="a1_".($i).""; - $quer="insert into ".TB_PREFIX."allimedal(allyid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '3', ".($i).", '".$allyweek."', '".$row['clp']."', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - - $result = mysqli_query($database->dblink,"SELECT * FROM ".TB_PREFIX."alidata ORDER BY ap DESC, id DESC Limit 10"); - while($row = mysqli_fetch_array($result)){ - - //Pak de top10 verdedigers - $result2 = mysqli_query($database->dblink,"SELECT id FROM ".TB_PREFIX."alidata ORDER BY dp DESC, id DESC Limit 10"); - while($row2 = mysqli_fetch_array($result2)){ - if($row['id']==$row2['id']){ - - $query3="SELECT Count(*) FROM ".TB_PREFIX."allimedal WHERE allyid=".(int) $row['id']." AND categorie = 5"; - $result3=mysqli_query($database->dblink,$query3); - $row3=mysqli_fetch_row($result3); - - //Look what color the ribbon must have - if($row3[0]<='2'){ - $img="t22".$row3[0]."_1"; - switch ($row3[0]) { - case "0": - $tekst=""; - break; - case "1": - $tekst="twice "; - break; - case "2": - $tekst="three times "; - break; - } - $quer="insert into ".TB_PREFIX."allimedal(allyid, categorie, plaats, week, points, img) values(".(int) $row['id'].", '5', '0', '".$allyweek."', '".$tekst."', '".$img."')"; - $resul=mysqli_query($database->dblink,$quer); - } - } - } - } - - $query="SELECT id FROM ".TB_PREFIX."alidata ORDER BY id+0 DESC"; - $result=mysqli_query($database->dblink,$query); - - $aliIDs = []; - for ($i=0; $row=mysqli_fetch_row($result); $i++){ - $aliIDs[] = (int) $row[0]; - } - - if (count($aliIDs)) { - mysqli_query($database->dblink,"UPDATE ".TB_PREFIX."alidata SET ap=0, dp=0,RR=0,clp=0 WHERE id IN(".implode(', ', $aliIDs).")"); - } - - $q = "UPDATE ".TB_PREFIX."config SET lastgavemedal=".$time; - $database->query($q); - } - } - - private function artefactOfTheFool() { - global $database; - - $time = time(); - $q = "SELECT id, size FROM " . TB_PREFIX . "artefacts where type = 8 AND active = 1 AND del = 0 AND lastupdate <= ".($time - (86400 / (SPEED == 2 ? 1.5 : (SPEED == 3 ? 2 : SPEED)))); - $array = $database->query_return($q); - if ($array) { - foreach($array as $artefact) { - $kind = rand(1, 7); - - while($kind == 6) $kind = rand(1, 7); - - if($artefact['size'] != 3) $bad_effect = rand(0, 1); - else $bad_effect = 0; - - switch($kind) { - case 1: - $effect = rand(1, 5); - break; - case 2: - $effect = rand(1, 3); - break; - case 3: - $effect = rand(3, 10); - break; - case 4: - case 5: - $effect = rand(2, 4); - break; - case 7: - $effect = rand(1, 6); - break; - } - mysqli_query($database->dblink,"UPDATE ".TB_PREFIX."artefacts SET kind = ". (int) $kind. ", bad_effect = $bad_effect, effect2 = $effect, lastupdate = $time WHERE id = ".(int) $artefact['id']); - } - } - } -} -$automation = new Automation; -?> diff --git a/GameEngine/BBCode.php b/GameEngine/BBCode.php deleted file mode 100755 index 65eb6c62..00000000 --- a/GameEngine/BBCode.php +++ /dev/null @@ -1,255 +0,0 @@ -$1"; -$replace[1] = "$1"; -$replace[2] = "$1"; -$replace[3] = "".U1.""; -$replace[4] = "".U2.""; -$replace[5] = "".U3.""; -$replace[6] = "".U4.""; -$replace[7] = "".U5.""; -$replace[8] = "".U6.""; -$replace[9] = "".U7.""; -$replace[10] = "".U8.""; -$replace[11] = "".U9.""; -$replace[12] = "".U10.""; -$replace[13] = "".U11.""; -$replace[14] = "".U12.""; -$replace[15] = "".U13.""; -$replace[16] = "".U14.""; -$replace[17] = "".U15.""; -$replace[18] = "".U16.""; -$replace[19] = "".U17.""; -$replace[20] = "".U18.""; -$replace[21] = "".U19.""; -$replace[22] = "".U20.""; -$replace[23] = "".U21.""; -$replace[24] = "".U22.""; -$replace[25] = "".U23.""; -$replace[26] = "".U24.""; -$replace[27] = "".U25.""; -$replace[28] = "".U26.""; -$replace[29] = "".U27.""; -$replace[30] = "".U28.""; -$replace[31] = "".U29.""; -$replace[32] = "".U30.""; -$replace[33] = "".U31.""; -$replace[34] = "".U32.""; -$replace[35] = "".U33.""; -$replace[36] = "".U34.""; -$replace[37] = "".U35.""; -$replace[38] = "".U36.""; -$replace[39] = "".U37.""; -$replace[40] = "".U38.""; -$replace[41] = "".U39.""; -$replace[42] = "".U40.""; -$replace[43] = "".U41.""; -$replace[44] = "".U42.""; -$replace[45] = "".U43.""; -$replace[46] = "".U44.""; -$replace[47] = "".U45.""; -$replace[48] = "".U46.""; -$replace[49] = "".U47.""; -$replace[50] = "".U48.""; -$replace[51] = "".U49.""; -$replace[52] = "".U50.""; -$replace[53] = "".U0.""; -$replace[54] = "".R1.""; -$replace[55] = "".R2.""; -$replace[56] = "".R3.""; -$replace[57] = "".R4.""; -$replace[54] = "Lumber"; -$replace[55] = "Clay"; -$replace[56] = "Iron"; -$replace[57] = "Crop"; -$replace[58] = "*aha*"; -$replace[59] = "*angry*"; -$replace[60] = "*cool*"; -$replace[61] = "*cry*"; -$replace[62] = "*cute*"; -$replace[63] = "*depressed*"; -$replace[64] = "*eek*"; -$replace[65] = "*ehem*"; -$replace[66] = "*emotional*"; -$replace[67] = ":D"; -$replace[68] = ":)"; -$replace[69] = "*hit*"; -$replace[70] = "*hmm*"; -$replace[71] = "*hmpf*"; -$replace[72] = "*hrhr*"; -$replace[73] = "*huh*"; -$replace[74] = "*lazy*"; -$replace[75] = "*love*"; -$replace[76] = "*nocomment*"; -$replace[77] = "*noemotion*"; -$replace[78] = "*notamused*"; -$replace[79] = "*pout*"; -$replace[80] = "*redface*"; -$replace[81] = "*rolleyes*"; -$replace[82] = ":("; -$replace[83] = "*shy*"; -$replace[84] = "*smile*"; -$replace[85] = "*tongue*"; -$replace[86] = "*veryangry*"; -$replace[87] = "*veryhappy*"; -$replace[88] = ";)"; - -// replace alliance placeholders -$input = preg_replace_callback( - "/\[alliance(\d{0,20})\]([^\]]*)\[\/alliance\d{0,20}\]/is", - function($matches) { - global $database; - - $aname = $database->getAllianceName($matches[2]); - if (!empty($aname)) return "".$aname.""; - else return "Alliance not found!"; - }, - $input); - -// replace player placeholders -$input = preg_replace_callback( - "/\[player(\d{0,20})\]([^\]]*)\[\/player\d{0,20}\]/is", - function($matches) { - global $database; - - $uname = $database->getUserField((int) $matches[2], "username", 0); - if (!empty($uname) && $uname != "[?]") return "".$uname.""; - else return "Player not found!"; - }, - $input); - -// replace report placeholders -$input = preg_replace_callback( - "/\[report(\d{0,20})\]([^\]]*)\[\/report\d{0,20}\]/is", - function($matches) { - global $database; - - $reportID = $matches[1] > 0 ? $matches[1] : $matches[2]; - $report = $database->getNotice2((int) $reportID, null, false); - - if (!empty($report)) return "".$report['topic'].""; - else return "Report not found!"; - }, - $input); - -// replace coordinate placeholders -$input = preg_replace_callback( - "/\[coor(\d{0,20})\]([^\]]*)\[\/coor\d{0,20}\]/is", - function($matches) { - global $generator, $database; - - $name = ""; - $coordinates = explode("|", $matches[2]); - $wRef = $database->getVilWref($coordinates[0], $coordinates[1]); - $cwref = $generator->getMapCheck($wRef); - $state = $database->getVillageType($wRef); - if($state > 0){ - if($database->getVillageState($wRef)) $name = $database->getVillageField($wRef, 'name'); - else $name = ABANDVALLEY; - } - else $name = $database->getOasisInfo($wRef)['name']; - - if(!empty($name)) return "".$name." (".$coordinates[0]."|".$coordinates[1].")".""; - return "Village not found!"; - }, - $input); - -$input = preg_replace('/\[message\]/', '', $input); -$input = preg_replace('/\[\/message\]/', '', $input); -$bbcoded = preg_replace($pattern, $replace, $input); -?> diff --git a/GameEngine/Building.php b/GameEngine/Building.php deleted file mode 100755 index 46c345b9..00000000 --- a/GameEngine/Building.php +++ /dev/null @@ -1,845 +0,0 @@ -maxConcurrent = BASIC_MAX; - - if(ALLOW_ALL_TRIBE || $session->tribe == 1) $this->maxConcurrent += INNER_MAX; - if($session->plus) $this->maxConcurrent += PLUS_MAX; - - $this->LoadBuilding(); - foreach($this->buildArray as $build) { - if($build['master'] == 1) $this->maxConcurrent++; - } - } - - /* - * Checks whether to allow building Wonder of the World - * above current level. This includes checks for WW upgrade - * currently in progress as well as current WW level - * and the right number of building plans in the alliance. - */ - - public function allowWwUpgrade() { - global $database, $village, $session; - static $cached = null; - - if($cached === null){ - $wwHighestLevelFound = $village->resarray['f99']; - $wwBuildingProgress = $database->getBuildingByType($village->wid, 99); - - if(count($wwBuildingProgress)){ - if($wwBuildingProgress[0]['level'] > $wwHighestLevelFound) { - $wwHighestLevelFound = $wwBuildingProgress[0]['level']; - } - } - - //Get our WW construction plans - $userHasWWConstructionPlans = $database->getWWConstructionPlans($session->uid); - - //Get ally WW construction plans - $allyHasWWConstructionPlans = $session->alliance > 0 ? $database->getWWConstructionPlans($session->uid, $session->alliance) : false; - - //Check if we should allow building the WW this high - if($wwHighestLevelFound < 50) $cached = $userHasWWConstructionPlans; - else $cached = $userHasWWConstructionPlans && $allyHasWWConstructionPlans; - } - - return $cached; - } - - public function canProcess($id, $tid) { - //add fix by ronix - global $session, $database, $village; - - $levels = $database->getResourceLevel($village->wid); - - //Don't allow building WW to level 51 with a waiting loop - if (!(($tid != 99 || ($tid == 99 && $this->allowWwUpgrade())))) $this->redirect($tid); - - if ( - //Check that our ID actually exists within the buildings list - isset($village->resarray['f'.$tid.'t']) && - //Let's see if we should allow building what we want where we want to - //(Prevent building resource fields in the village - ( - ($tid >= 1 && $tid <= 18 && $id >= 1 && $id <= 4) || - ($tid >= 19 && $id > 4) - ) && - //Check that we're not trying to change a standing building type - ( - $levels['f'.$tid.'t'] == $id || - $levels['f'.$tid.'t'] == 0 - ) && - //Check that we're not trying to build in the walls id - ( - ($tid == 40 && in_array($id, [31, 32, 33])) || - $tid != 40 - ) - ) { - if (!isset($_GET['master']) && $this->checkResource($id, $tid) != 4){ - $this->redirect($tid); - } - - //Check if the building will be built with the master builder - if(isset($_GET['master'])){ - //If so, we have to check if it'll be built or upgraded - if($levels['f'.$tid.'t'] == 0) - { - //The building will be built, we have to check if we can build it - if(!$this->meetRequirement($id)) $this->redirect($tid); - }else{ - //The building will be upgraded, we have to check if we can upgrade it - if($this->isMax($id, $tid, $this->isLoop($tid) + $this->isCurrent($tid))){ - $this->redirect($tid); - } - } - } - }else{ - header('Location: '.$_SERVER['SCRIPT_NAME']); - exit; - } - } - - /** - * Redirects to dorf1.php if we're building/upgrading resource fields otherwise in dorf2.php - * - * @param int $tid the id where the building is built/upgraded - */ - - private function redirect($tid){ - if ($tid >= 19) header("Location: dorf2.php"); - else header("Location: dorf1.php"); - exit; - } - - public function procBuild($get) { - global $session, $village, $database; - - if(isset($get['a']) && $get['c'] == $session->checker && !isset($get['id'])) { - if($get['a'] == 0) $this->removeBuilding($get['d']); - else - { - $session->changeChecker(); - $this->canProcess($village->resarray['f'.$get['a'].'t'],$get['a']); - $this->upgradeBuilding($get['a']); - } - }elseif(isset($get['master']) && isset($get['id']) && $session->gold >= 1 && $session->goldclub && $village->master == 0 && (isset($get['c']) && $get['c']== $session->checker)) { - $this->canProcess($get['master'], $get['id']); - $session->changeChecker(); - $level = $database->getResourceLevel($village->wid); - $time = $this->resourceRequired($get['id'], $get['master'])['time']; - $database->addBuilding($village->wid, $get['id'], $get['master'], 1, $time, 1, $level['f'.$get['id']] + 1 + count($database->getBuildingByField($village->wid, $get['id']))); - $this->redirect($get['id']); - }elseif(isset($get['a']) && $get['c'] == $session->checker && isset($get['id'])) { - if($get['id'] > 18 && ($get['id'] < 41 || $get['id'] == 99)){ - $session->changeChecker(); - $this->canProcess($get['a'], $get['id']); - $this->constructBuilding($get['id'], $get['a']); - } - } - elseif(isset($get['buildingFinish']) && $session->gold >= 2 && $session->sit == 0) $this->finishAll(); - } - - public function canBuild($id, $tid) { - global $village, $session, $database; - - $demolition = $database->getDemolition($village->wid); - if((isset($demolition[0])) && $demolition[0]['buildnumber'] == $id) return 11; - - if($this->isMax($tid, $id)) return 1; - else if($this->isMax($tid, $id, 1) && ($this->isLoop($id) || $this->isCurrent($id))) return 10; - else if($this->isMax($tid, $id, 2) && $this->isLoop($id) && $this->isCurrent($id)) return 10; - else if($this->isMax($tid, $id, 3) && $this->isLoop($id) && $this->isCurrent($id) && count($database->getMasterJobs($village->wid)) > 0) { - return 10; - } - else { - if($this->allocated <= $this->maxConcurrent) { - $resRequired = $this->resourceRequired($id, $village->resarray['f'.$id.'t']); - $resRequiredPop = $resRequired['pop']; - if (empty($resRequiredPop)) { - $buildarray = $GLOBALS["bid".$tid]; - $resRequiredPop = $buildarray[1]['pop']; - } - $jobs = $database->getJobs($village->wid); - if ($jobs > 0) { - $soonPop = 0; - foreach ($jobs as $j) { - $buildarray = $GLOBALS["bid".$j['type']]; - $soonPop += $buildarray[$database->getFieldLevel($village->wid, $j['field']) + 1]['pop']; - } - } - if(($village->allcrop - $village->pop - $soonPop - $resRequiredPop) <= 1 && $village->resarray['f'.$id.'t'] <> 4) { - return 4; - } - else { - switch($this->checkResource($tid, $id)) { - case 1: return 5; - case 2: return 6; - case 3: return 7; - case 4: - if($id >= 19) { - if($session->tribe == 1 || ALLOW_ALL_TRIBE) { - if($this->inner == 0) return 8; - else - { - if($session->plus || $tid == 40) { - if($this->plus == 0) return 9; - else return 3; - } - else return 2; - } - } - else { - if($this->basic == 0) return 8; - else - { - if($session->plus || $tid == 40) { - if($this->plus == 0) return 9; - else return 3; - } - else return 2; - } - } - } - else { - if($this->basic == 1) { - if(($session->plus || $tid == 40) && $this->plus == 0) return 9; - else return 3; - } - else return 8; - } - } - } - } - else return 2; - } - } - - public function walling() { - global $session; - $wall = array(31,32,33); - foreach($this->buildArray as $job) { - if(in_array($job['type'],$wall)) return "3".$session->tribe; - } - return false; - } - - public function rallying() { - foreach($this->buildArray as $job) { - if($job['type'] == 16) return true; - } - return false; - } - - public static function procResType($ref) { - switch($ref) { - case 1: return "Woodcutter"; - case 2: return "Clay Pit"; - case 3: return "Iron Mine"; - case 4: return "Cropland"; - case 5: return "Sawmill"; - case 6: return "Brickyard"; - case 7: return "Iron Foundry"; - case 8: return "Grain Mill"; - case 9: return "Bakery"; - case 10: return "Warehouse"; - case 11: return "Granary"; - case 12: return "Blacksmith"; - case 13: return "Armoury"; - case 14: return "Tournament Square"; - case 15: return "Main Building"; - case 16: return "Rally Point"; - case 17: return "Marketplace"; - case 18: return "Embassy"; - case 19: return "Barracks"; - case 20: return "Stable"; - case 21: return "Workshop"; - case 22: return "Academy"; - case 23: return "Cranny"; - case 24: return "Town Hall"; - case 25: return "Residence"; - case 26: return "Palace"; - case 27: return "Treasury"; - case 28: return "Trade Office"; - case 29: return "Great Barracks"; - case 30: return "Great Stable"; - case 31: return "City Wall"; - case 32: return "Earth Wall"; - case 33: return "Palisade"; - case 34: return "Stonemason's Lodge"; - case 35: return "Brewery"; - case 36: return "Trapper"; - case 37: return "Hero's Mansion"; - case 38: return "Great Warehouse"; - case 39: return "Great Granary"; - case 40: return "Wonder of the World"; - case 41: return "Horse Drinking Trough"; - case 42: return "Great Workshop"; - default: return "Error"; - } - } - - public function loadBuilding() { - global $database,$village,$session; - $this->buildArray = $database->getJobs($village->wid); - $this->allocated = count($this->buildArray); - if($this->allocated > 0) { - foreach($this->buildArray as $build) { - if($build['loopcon'] == 1) $this->plus = 1; - else - { - if($build['field'] <= 18) $this->basic++; - else - { - if($session->tribe == 1 || ALLOW_ALL_TRIBE) $this->inner++; - else $this->basic++; - } - } - } - $this->NewBuilding = true; - } - else $this->NewBuilding = false; - } - - private function removeBuilding($d) { - global $database, $village; - foreach($this->buildArray as $jobs) { - if($jobs['id'] == $d) { - $uprequire = $this->resourceRequired($jobs['field'], $jobs['type']); - if($database->removeBuilding($d, $session->tribe, $village->wid, $village->resarray)) { - if($jobs['master'] == 0) $database->modifyResource($village->wid, $uprequire['wood'], $uprequire['clay'], $uprequire['iron'], $uprequire['crop'], 1); - $this->redirect($jobs['field']); - } - } - } - } - - private function upgradeBuilding($id) { - global $database, $village, $session, $logging, ${'bid'.$village->resarray['f'.$id.'t']}; - - if($this->allocated < $this->maxConcurrent) { - $uprequire = $this->resourceRequired($id,$village->resarray['f'.$id.'t']); - $time = time() + $uprequire['time']; - $bindicate = $this->canBuild($id,$village->resarray['f'.$id.'t']); - - // don't allow building above max levels and don't allow building if it's in demolition - if (in_array($bindicate, [1, 2, 3, 10, 11])) { - header("Location: dorf2.php"); - exit; - } - - $loop = ($bindicate == 9 ? 1 : 0); - $loopsame = 0; - if($loop == 1) { - foreach($this->buildArray as $build) { - if($build['field'] == $id) { - $loopsame++; - $uprequire = $this->resourceRequired($id, $village->resarray['f'.$id.'t'], ($loopsame > 0 ? 2 : 1)); - } - } - if($session->tribe == 1 || ALLOW_ALL_TRIBE) { - if($id >= 19) { - foreach($this->buildArray as $build) { - if($build['field'] >= 19) { - $time = $build['timestamp'] + $uprequire['time']; - } - } - } - else { - foreach($this->buildArray as $build) { - if($build['field'] <= 18) { - $time = $build['timestamp'] + $uprequire['time']; - } - } - } - } - else { - $time = $this->buildArray[0]['timestamp'] + $uprequire['time']; - } - } - $level = $database->getResourceLevel($village->wid); - - - if($database->addBuilding($village->wid, $id, $village->resarray['f'.$id.'t'], $loop, $time + ($loop == 1 ? ceil(60 / SPEED) : 0), 0, $level['f'.$id] + 1 + count($database->getBuildingByField($village->wid, $id)))) { - $database->modifyResource($village->wid, $uprequire['wood'], $uprequire['clay'], $uprequire['iron'], $uprequire['crop'], 0); - $logging->addBuildLog($village->wid, self::procResType($village->resarray['f'.$id.'t']), ($village->resarray['f'.$id] + ($loopsame > 0 ? 2 : 1)), 0); - $this->redirect($id); - } - } - } - - private function downgradeBuilding($id) { - global $database, $village, $session, $logging; - - if($this->allocated < $this->maxConcurrent) { - $name = "bid".$village->resarray['f'.$id.'t']; - global $$name; - $dataarray = $$name; - $time = time() + round($dataarray[$village->resarray['f'.$id]-1]['time'] / 4); - $loop = 0; - if($this->inner == 1 || $this->basic == 1) { - if(($session->plus || $village->resarray['f'.$id.'t']==40)&& $this->plus == 0) { - $loop = 1; - } - } - if($loop == 1) { - if($session->tribe == 1 || ALLOW_ALL_TRIBE) { - if($id >= 19) { - foreach($this->buildArray as $build) { - if($build['field'] >= 19) { - $time = $build['timestamp'] + round($dataarray[$village->resarray['f'.$id]-1]['time'] / 4); - } - } - } - } - else { - $time = $this->buildArray[0]['timestamp'] + round($dataarray[$village->resarray['f'.$id]-1]['time'] / 4); - } - } - - $level = $database->getResourceLevel($village->wid); - if($database->addBuilding($village->wid, $id, $village->resarray['f'.$id.'t'], $loop, $time, 0, 0, $level['f'.$id] + 1 + count($database->getBuildingByField($village->wid, $id)))){ - $logging->addBuildLog($village->wid, self::procResType($village->resarray['f'.$id.'t']), ($village->resarray['f'.$id] - 1), 2); - header("Location: dorf2.php"); - exit(); - } - } - } - - private function constructBuilding($id, $tid) { - global $database, $village, $session, $logging; - - if($this->allocated < $this->maxConcurrent) { - if($tid == 16) $id = 39; - elseif($tid == 31 || $tid == 32 || $tid == 33) $id = 40; - - $uprequire = $this->resourceRequired($id, $tid); - $time = time() + $uprequire['time']; - $bindicate = $this->canBuild($id, $tid); - $loop = ($bindicate == 9 ? 1 : 0); - - if($loop == 1) { - foreach( $this->buildArray as $build) { - if($build['field'] >= 19 || ($session->tribe <> 1 && !ALLOW_ALL_TRIBE)) { - $time = $build['timestamp'] + ceil(60 / SPEED) + $uprequire['time']; - } - } - } - - if($this->meetRequirement($tid)) { - $level = $database->getResourceLevel($village->wid); - if($database->addBuilding($village->wid, $id, $tid, $loop, $time, 0, $level['f' . $id] + 1 + count($database->getBuildingByField($village->wid, $id)))){ - $logging->addBuildLog($village->wid, self::procResType($tid), ($village->resarray['f' . $id] + 1), 1); - $database->modifyResource($village->wid, $uprequire['wood'], $uprequire['clay'], $uprequire['iron'], $uprequire['crop'], 0); - header("Location: dorf2.php"); - exit; - } - }else{ - header("location: dorf2.php"); - exit; - } - }else{ - header("Location: dorf2.php"); - exit; - } - } - - /** - * Search through all user's villages if the castle is built or not - * - * @return boolean Returns true if the castle is already built in the whole account, otherwise returns false - */ - - public function isCastleBuilt(){ - global $database, $session; - - $villages = $database->getProfileVillages($session->uid); - foreach ($villages as $vil){ - if(in_array(26, $database->getResourceLevel($vil['wref']))) return true; - } - return false; - } - - private function meetRequirement($id) { - global $village,$session,$database; - - $isBuilt = $this->getTypeField($id); - - switch ($id) { - case 1: - case 2: - case 3: - case 4: return true; - - case 5: return $this->getTypeLevel(1) >= 10 && $this->getTypeLevel(15) >= 5 && !$isBuilt; - case 6: return $this->getTypeLevel(2) >= 10 && $this->getTypeLevel(15) >= 5 && !$isBuilt; - case 7: return $this->getTypeLevel(3) >= 10 && $this->getTypeLevel(15) >= 5 && !$isBuilt; - case 8: return $this->getTypeLevel(4) >= 5 && !$isBuilt; - case 9: return $this->getTypeLevel(15) >= 5 && $this->getTypeLevel(4) >= 10 && $this->getTypeLevel(8) >= 5 && !$isBuilt; - - case 10: - case 11: return $this->getTypeLevel(15) >= 1 && (!$isBuilt || $this->getTypeLevel($id) == 20); - - case 12: return $this->getTypeLevel(22) >= 3 && $this->getTypeLevel(15) >= 3 && !$isBuilt; - case 13: return $this->getTypeLevel(15) >= 3 && $this->getTypeLevel(22) >= 1 && !$isBuilt; - case 14: return $this->getTypeLevel(16) >= 15 && !$isBuilt; - - case 15: - case 16: return !$isBuilt; - - case 17: return $this->getTypeLevel(15) >= 3 && $this->getTypeLevel(10) >= 1 && $this->getTypeLevel(11) >= 1 && !$isBuilt; - case 18: return $this->getTypeLevel(15) >= 1 && !$isBuilt; - case 19: return $this->getTypeLevel(15) >= 3 && $this->getTypeLevel(16) >= 1 && !$isBuilt; - case 20: return $this->getTypeLevel(12) >= 3 && $this->getTypeLevel(22) >= 5 && !$isBuilt; - case 21: return $this->getTypeLevel(22) >= 10 && $this->getTypeLevel(15) >= 5 && !$isBuilt; - case 22: return $this->getTypeLevel(15) >= 3 && $this->getTypeLevel(19) >= 3 && !$isBuilt; - case 23: return !$isBuilt || $this->getTypeLevel($id) == 10; - case 24: return $this->getTypeLevel(22) >= 10 && $this->getTypeLevel(15) >= 10 && !$isBuilt; - case 25: return $this->getTypeLevel(15) >= 5 && !$isBuilt && !$this->getTypeField(26); - case 26: return $this->getTypeLevel(18) >= 1 && $this->getTypeLevel(15) >= 5 && !$isBuilt && !$this->isCastleBuilt() && !$this->getTypeField(25); - case 27: return $this->getTypeLevel(15) >= 10 && !$isBuilt; - case 28: return $this->getTypeLevel(17) == 20 && $this->getTypeLevel(20) >= 10 && !$isBuilt; - case 29: return $this->getTypeLevel(19) == 20 && $village->capital == 0 && !$isBuilt; - case 30: return $this->getTypeLevel(20) == 20 && $village->capital == 0 && !$isBuilt; - case 31: return $session->tribe == 1; - case 32: return $session->tribe == 2; - case 33: return $session->tribe == 3; - case 34: return $this->getTypeLevel(26) >= 3 && $this->getTypeLevel(15) >= 5 && $this->getTypeLevel(25) == 0 && $village->capital != 0 && !$isBuilt; - case 35: return $this->getTypeLevel(16) >= 10 && $this->getTypeLevel(11) == 20 && $session->tribe == 2 && $village->capital != 0 && !$isBuilt; - case 36: return $this->getTypeLevel(16) >= 1 && $session->tribe == 3 && (!$isBuilt || $this->getTypeLevel($id) == 20); - case 37: return $this->getTypeLevel(15) >= 3 && $this->getTypeLevel(16) >= 1 && !$isBuilt; - - // great warehouse can only be built with artefact or in Natar villages - case 38: return $this->getTypeLevel(15) >= 10 && (!$isBuilt || $this->getTypeLevel($id) == 20) && ($village->natar == 1 || count($database->getOwnUniqueArtefactInfo2($village->wid, 6, 1, 0)) || count($database->getOwnUniqueArtefactInfo2($session->uid, 6, 2, 0))); - - // great granary can only be built with artefact or in Natar villages - case 39: return $this->getTypeLevel(15) >= 10 && (!$isBuilt || $this->getTypeLevel($id) == 20) && ($village->natar == 1 || count($database->getOwnUniqueArtefactInfo2($village->wid, 6, 1, 0)) || count($database->getOwnUniqueArtefactInfo2($session->uid, 6, 2, 0))); - - case 40: return $this->allowWwUpgrade(); - case 41: return $this->getTypeLevel(16) >= 10 && $this->getTypeLevel(20) == 20 && $session->tribe == 1 && !$isBuilt; - case 42: return GREAT_WKS && $this->getTypeLevel(21) == 20 && $village->capital == 0 && !$isBuilt; - default: return false; - } - } - - private function checkResource($tid, $id) { - $name = "bid".$tid; - global $village,$$name,$database; - - $plus = 1; - foreach($this->buildArray as $job) { - if($job['type'] == $tid && $job['field'] == $id) { - $plus = 2; - break; - } - } - - $dataarray = $$name; - $wood = $dataarray[$village->resarray['f'.$id] + $plus]['wood']; - $clay = $dataarray[$village->resarray['f'.$id] + $plus]['clay']; - $iron = $dataarray[$village->resarray['f'.$id] + $plus]['iron']; - $crop = $dataarray[$village->resarray['f'.$id] + $plus]['crop']; - - if($wood > $village->maxstore || $clay > $village->maxstore || $iron > $village->maxstore) return 1; - else - { - if($crop > $village->maxcrop) return 2; - else - { - if($wood > $village->awood || $clay > $village->aclay || $iron > $village->airon || $crop > $village->acrop) { - return 3; - } - else { - if($village->awood >= $wood && $village->aclay >= $clay && $village->airon >= $iron && $village->acrop >= $crop){ - return 4; - } - else return 3; - } - } - } - } - - public function isMax($id, $field, $loop = 0) { - $name = "bid".$id; - global $$name,$village,$session; - $dataarray = $$name; - - // special case for Multihunter login which mathematically (because of the resarray length) - // allows for building resource fields above level 20 - if ($session->tribe == 0) return $village->resarray['f'.$field] == 20; - - if($id <= 4) { - if($village->capital == 1) return ($village->resarray['f'.$field] == (count($dataarray) - 1 - $loop)); - else return ($village->resarray['f'.$field] == (count($dataarray) - 11 - $loop)); - } - else return ($village->resarray['f'.$field] == count($dataarray) - $loop); - } - - public function getTypeLevel($tid, $vid = 0) { - global $village, $database, $session; - - // Support would not have a village, so this is irrelevant - if ($session->uid == 1) return 0; - - $keyholder = []; - - if($vid == 0) $resourcearray = $village->resarray; - else $resourcearray = $database->getResourceLevel($vid); - - foreach(array_keys($resourcearray, $tid) as $key) { - if(strpos($key,'t')) { - $key = preg_replace("/[^0-9]/", '', $key); - array_push($keyholder, $key); - } - } - - $element = count($keyholder); - - // if we count more than 1 instance of the building (mostly resource fields) - if($element >= 2){ - // resource field - if($tid <= 4){ - $temparray = []; - - for($i = 0; $i <= $element - 1; $i++){ - // collect current field level - array_push($temparray, $resourcearray['f'.$keyholder[$i]]); - } - - // find out the maximum field level for this village - $maValue = max($temparray); - foreach($temparray as $key => $val){ - if($val == $maValue){ - $target = $key; - } - } - }else{ // village building - $target = 0; - - // find the highest level built for this building type - for($i = 1; $i <= $element - 1; $i++){ - if($resourcearray['f'.$keyholder[$i]] > $resourcearray['f'.$keyholder[$target]]){ - $target = $i; - } - } - } - } - - // if we count only a single building - else if($element == 1) $target = 0; - else return 0; // no building matching search criteria - - if(!empty($keyholder[$target])) return $resourcearray['f'.$keyholder[$target]]; - else return 0; - } - - - public function isCurrent($id) { - foreach($this->buildArray as $build) { - if($build['field'] == $id && $build['loopcon'] <> 1) { - return true; - } - } - } - - public function isLoop($id=0) { - foreach($this->buildArray as $build) { - if(($build['field'] == $id && $build['loopcon']) || ($build['loopcon'] == 1 && $id == 0)) { - return true; - } - } - return false; - } - - public function finishAll($redirect_url = '') { - global $database, $session, $logging, $village, $bid18, $bid10, $bid11, $technology, $_SESSION; - - // will be true if we should decrease player's gold by 2 - // for the immediate completion action - $countPlus2Gold = false; - // will be true if we should decrease player's gold by 1 - // for master builder queue - $countMasterGold = false; - // number of jobs to finish - $buildcount = ($this->buildArray ? count($this->buildArray) : 0); - // will be true if the job was successfully finished - $jobFinishSuccess = false; - // IDs of successful jobs to delete - $deletIDs = []; - - foreach ($this->buildArray as $jobs) { - if ($jobs['wid'] == $village->wid) { - $wwvillage = $database->getResourceLevel($jobs['wid']); - if ($wwvillage['f99t'] != 40) { - $level = $jobs['level']; - if ($jobs['type'] != 25 && $jobs['type'] != 26 && $jobs['type'] != 40) { - $resource = $this->resourceRequired($jobs['field'],$jobs['type']); - // master builder involved - if ($jobs['master'] != 0) { - if ($this->meetRequirement($jobs['field'])) { - // don't allow master builder to build anything - // if we only have 2 gold, since that would take us to -1 gold - if ( $session->gold > 2 ) { - $villwood = $database->getVillageField( $jobs['wid'], 'wood' ); - $villclay = $database->getVillageField( $jobs['wid'], 'clay' ); - $villiron = $database->getVillageField( $jobs['wid'], 'iron' ); - $villcrop = $database->getVillageField( $jobs['wid'], 'crop' ); - $type = $jobs['type']; - $buildarray = $GLOBALS[ "bid" . $type ]; - $buildwood = $buildarray[ $level ]['wood']; - $buildclay = $buildarray[ $level ]['clay']; - $buildiron = $buildarray[ $level ]['iron']; - $buildcrop = $buildarray[ $level ]['crop']; - if ( $buildwood < $villwood && $buildclay < $villclay && $buildiron < $villiron && $buildcrop < $villcrop ) { - $jobFinishSuccess = true; - $countMasterGold = true; - $enought_res = 1; - // we need to subtract resources for this, if another 2 jobs are active, - // as we'd never subtract those otherwise - if ( $buildcount > 2 ) { - $database->setVillageField( $jobs['wid'], - ['wood', 'clay', 'iron', 'crop'], - [( $villwood - $buildwood ), ( $villclay - $buildclay ), ( $villiron - $buildiron ), ( $villcrop - $buildcrop )]); - } - } - } else { - // if we only have 2 gold, we need to cancel this job, as there will never - // be enough gold now in our account to finish this up - $exclude_master = true; - $deletIDs[] = (int) $jobs['id']; - } - } - } else { - // non-master builder build, we should count +2 gold for it - $countPlus2Gold = true; - $jobFinishSuccess = true; - } - - // update build level in the database - if ($jobFinishSuccess) { - $q = "UPDATE ".TB_PREFIX."fdata set f".$jobs['field']." = ".$jobs['level'].", f".$jobs['field']."t = ".$jobs['type']." where vref = ".$jobs['wid']; - } - - if (!isset($exclude_master) && $database->query($q) && ($enought_res == 1 || $jobs['master'] == 0)) { - $database->modifyPop($jobs['wid'],$resource['pop'],0); - $database->addCP($jobs['wid'],$resource['cp']); - $deletIDs[] = (int) $jobs['id']; - if($jobs['type'] == 18) { - $owner = $database->getVillageField($jobs['wid'],"owner"); - $max = $bid18[$level]['attri']; - $q = "UPDATE ".TB_PREFIX."alidata set max = $max where leader = $owner"; - $database->query($q); - } - } - - if (($jobs['field'] >= 19 && ($session->tribe == 1 || ALLOW_ALL_TRIBE)) || (!ALLOW_ALL_TRIBE && $session->tribe != 1)) { - $innertimestamp = $jobs['timestamp']; - } - } - } - } - - // reset the flag for the next job - $jobFinishSuccess = false; - } - - if (count($deletIDs)) { - $database->query("DELETE FROM " . TB_PREFIX . "bdata WHERE id IN(" . implode(', ', $deletIDs) . ")"); - } - - $demolition = $database->finishDemolition($village->wid); - $tech = $technology->finishTech(); - if ($demolition > 0 || $tech > 0) { - $countPlus2Gold = true; - $logging->goldFinLog($village->wid); - } - - // deduct the right amount of gold - if ($countMasterGold || $countPlus2Gold) { - $newgold = $session->gold - (($countMasterGold && $countPlus2Gold) ? 3 : 2); - $database->updateUserField($session->uid, "gold", $newgold, 1); - } - - $stillbuildingarray = $database->getJobs($village->wid); - if (count($stillbuildingarray) == 1) { - if($stillbuildingarray[0]['loopcon'] == 1) { - //$q = "UPDATE ".TB_PREFIX."bdata SET loopcon=0,timestamp=".(time()+$stillbuildingarray[0]['timestamp']-$innertimestamp)." WHERE id=".$stillbuildingarray[0]['id']; - $q = "UPDATE ".TB_PREFIX."bdata SET loopcon=0 WHERE id=".(int) $stillbuildingarray[0]['id']; - $database->query($q); - } - } - - header("Location: ".($redirect_url ? $redirect_url : $session->referrer)); - exit; - } - - public function resourceRequired($id, $tid, $plus = 1) { - $name = "bid".$tid; - global $$name, $village, $bid15, $database; - - $dataarray = $$name; - $wood = $dataarray[$village->resarray['f'.$id] + $plus]['wood']; - $clay = $dataarray[$village->resarray['f'.$id] + $plus]['clay']; - $iron = $dataarray[$village->resarray['f'.$id] + $plus]['iron']; - $crop = $dataarray[$village->resarray['f'.$id] + $plus]['crop']; - $pop = $dataarray[$village->resarray['f'.$id] + $plus]['pop']; - $time = $database->getBuildingTime($id, $tid, $plus, $village->wid, $village->resarray); - $cp = $dataarray[$village->resarray['f'.$id] + $plus]['cp']; - - return ["wood" => $wood, "clay" => $clay, "iron" => $iron, "crop" => $crop, "pop" => $pop, "time" => $time, "cp" => $cp]; - } - - public function getTypeField($type) { - global $village; - - for($i = 19; $i <= 40; $i++) { - if($village->resarray['f'.$i.'t'] == $type) return $i; - } - } - - public function calculateAvaliable($id, $tid, $plus = 1) { - global $village, $generator; - - $uprequire = $this->resourceRequired($id, $tid, $plus); - $rwood = $uprequire['wood'] - $village->awood; - $rclay = $uprequire['clay'] - $village->aclay; - $rcrop = $uprequire['crop'] - $village->acrop; - $riron = $uprequire['iron'] - $village->airon; - $rwtime = $rwood / $village->getProd("wood") * 3600; - $rcltime = $rclay / $village->getProd("clay") * 3600; - $rctime = $rcrop / $village->getProd("crop") * 3600; - $ritime = $riron / $village->getProd("iron") * 3600; - $reqtime = max($rwtime, $rctime, $rcltime, $ritime); - $reqtime += time(); - return $generator->procMtime($reqtime); - } -}; - -?> diff --git a/GameEngine/Chat.php b/GameEngine/Chat.php deleted file mode 100755 index 5b1437f0..00000000 --- a/GameEngine/Chat.php +++ /dev/null @@ -1,387 +0,0 @@ -$v) { - $esc_key = sajax_esc($k); - if (is_numeric($k)) - $s .= "$k: " . sajax_get_js_repr($v) . ", "; - else - $s .= "\"$esc_key\": " . sajax_get_js_repr($v) . ", "; - } - if (count($value)) - $s = substr($s, 0, -2); - return $s . " }"; - } - else { - $esc_val = sajax_esc($value); - $s = "'$esc_val'"; - return $s; - } - } - - function sajax_handle_client_request() { - global $sajax_export_list; - - $mode = ""; - - if (! empty($_GET["rs"])) - $mode = "get"; - - if (!empty($_POST["rs"])) - $mode = "post"; - - if (empty($mode)) - return; - - $target = ""; - - if ($mode == "get") { - - header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); - header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); - - header ("Cache-Control: no-cache, must-revalidate"); - header ("Pragma: no-cache"); - $func_name = $_GET["rs"]; - if (! empty($_GET["rsargs"])) - $args = $_GET["rsargs"]; - else - $args = array(); - } - else { - $func_name = $_POST["rs"]; - if (! empty($_POST["rsargs"])) - $args = $_POST["rsargs"]; - else - $args = array(); - } - - if (! in_array($func_name, $sajax_export_list)) - echo "-:$func_name not callable"; - else { - echo "+:"; - $result = call_user_func_array($func_name, $args); - echo "var res = " . trim(sajax_get_js_repr($result)) . "; res;"; - } - exit; - } - - function sajax_get_common_js() { - global $sajax_debug_mode; - global $sajax_request_type; - global $sajax_remote_uri; - global $sajax_failure_redirect; - - $t = strtoupper($sajax_request_type); - if ($t != "" && $t != "GET" && $t != "POST") - return "// Invalid type: $t.. \n\n"; - - ob_start(); - ?> - - // remote scripting library - // (c) copyright 2005 modernmethod, inc - // edited by ttmtt - var sajax_debug_mode = ; - var sajax_request_type = ""; - var sajax_target_id = ""; - var sajax_failure_redirect = ""; - - function sajax_debug(text) { - if (sajax_debug_mode) - alert(text); - } - - function sajax_init_object() { - sajax_debug("sajax_init_object() called..") - - var A; - - var msxmlhttp = new Array( - 'Msxml2.XMLHTTP.5.0', - 'Msxml2.XMLHTTP.4.0', - 'Msxml2.XMLHTTP.3.0', - 'Msxml2.XMLHTTP', - 'Microsoft.XMLHTTP'); - for (var i = 0; i < msxmlhttp.length; i++) { - try { - A = new ActiveXObject(msxmlhttp[i]); - } catch (e) { - A = null; - } - } - - if(!A && typeof XMLHttpRequest != "undefined") - A = new XMLHttpRequest(); - if (!A) - sajax_debug("Could not create connection object."); - return A; - } - - var sajax_requests = new Array(); - - function sajax_cancel() { - for (var i = 0; i < sajax_requests.length; i++) - sajax_requests[i].abort(); - } - - function sajax_do_call(func_name, args) { - var i, x, n; - var uri; - var post_data; - var target_id; - - sajax_debug("in sajax_do_call().." + sajax_request_type + "/" + sajax_target_id); - target_id = sajax_target_id; - if (typeof(sajax_request_type) == "undefined" || sajax_request_type == "") - sajax_request_type = "GET"; - - uri = ""; - if (sajax_request_type == "GET") { -// alert(args); - if (uri.indexOf("?") == -1) - uri += "?rs=" + escape(func_name); - else - uri += "&rs=" + escape(func_name); - uri += "&rst=" + escape(sajax_target_id); - uri += "&rsrnd=" + new Date().getTime(); - - for (i = 0; i < args.length-1; i++) { - uri += "&rsargs[]=" + args[i]; - } - post_data = null; - } - else if (sajax_request_type == "POST") { - post_data = "rs=" + escape(func_name); - post_data += "&rst=" + escape(sajax_target_id); - post_data += "&rsrnd=" + new Date().getTime(); - - for (i = 0; i < args.length-1; i++) - post_data = post_data + "&rsargs[]=" + escape(args[i]); - } - else { - alert("Illegal request type: " + sajax_request_type); - } - - x = sajax_init_object(); - if (x == null) { - if (sajax_failure_redirect != "") { - location.href = sajax_failure_redirect; - return false; - } else { - sajax_debug("NULL sajax object for user agent:\n" + navigator.userAgent); - return false; - } - } else { - x.open(sajax_request_type, uri, true); - // window.open(uri); - - sajax_requests[sajax_requests.length] = x; - - if (sajax_request_type == "POST") { - x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1"); - x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); - } - - x.onreadystatechange = function() { - if (x.readyState != 4) - return; - - sajax_debug("received " + x.responseText); - - var status; - var data; - var txt = x.responseText.replace(/^\s*|\s*$/g,""); - status = txt.charAt(0); - data = txt.substring(2); - - if (status == "") { - // let's just assume this is a pre-response bailout and let it slide for now - } else if (status == "-") - alert("Error: " + data); - else { - if (target_id != "") - document.getElementById(target_id).innerHTML = eval(data); - else { - try { - var callback; - var extra_data = false; - if (typeof args[args.length-1] == "object") { - callback = args[args.length-1].callback; - extra_data = args[args.length-1].extra_data; - } else { - callback = args[args.length-1]; - } - callback(eval(data), extra_data); - } catch (e) { - sajax_debug("Caught error " + e + ": Could not eval " + data ); - } - } - } - } - } - - sajax_debug(func_name + " uri = " + uri + "/post = " + post_data); - x.send(post_data); - sajax_debug(func_name + " waiting.."); - delete x; - return true; - } - - - - // wrapper for - - function x_() { - sajax_do_call("", - x_.arguments); - } - - escape($msg); -// $msg=htmlspecialchars($msg); - $name = addslashes($session->username); - - if ($msg != ""){ - $id_user = (int) $session->uid; - $alliance = $database->escape($session->alliance); - $now = time(); - echo $q = "INSERT into ".TB_PREFIX."chat (id_user,name,alli,date,msg) values ($id_user,'$name','$alliance','$now','$msg')"; - mysqli_query($database->dblink,$q); - } - } - - function get_data() { - global $session,$database; - - $alliance = $database->escape($session->alliance); - $query = mysqli_query($database->dblink,"select id_user, name, date, msg from ".TB_PREFIX."chat where alli='$alliance' order by id desc limit 0,13"); - while ($r = mysqli_fetch_array($query)) { - $dates = date("g:i",$r['date']); - $data .= "[{$dates}] {$r['name']}: {$r['msg']}
"; - } - return $data; - } - - $sajax_request_type = "GET"; - sajax_init(); - sajax_export("add_data","get_data"); - sajax_handle_client_request(); - -?> diff --git a/GameEngine/Data/buidata.php b/GameEngine/Data/buidata.php deleted file mode 100755 index dd4e5db5..00000000 --- a/GameEngine/Data/buidata.php +++ /dev/null @@ -1,55 +0,0 @@ -2),array('wood'=>40,'clay'=>100,'iron'=>50,'crop'=>60,'pop'=>2,'cp'=>1,'prod'=>5,'time'=>260),array('wood'=>65,'clay'=>165,'iron'=>85,'crop'=>100,'pop'=>1,'cp'=>1,'prod'=>9,'time'=>620),array('wood'=>110,'clay'=>280,'iron'=>140,'crop'=>165,'pop'=>1,'cp'=>2,'prod'=>15,'time'=>1190),array('wood'=>185,'clay'=>465,'iron'=>235,'crop'=>280,'pop'=>1,'cp'=>2,'prod'=>22,'time'=>2100),array('wood'=>310,'clay'=>780,'iron'=>390,'crop'=>465,'pop'=>1,'cp'=>2,'prod'=>33,'time'=>3560),array('wood'=>520,'clay'=>1300,'iron'=>650,'crop'=>780,'pop'=>2,'cp'=>3,'prod'=>50,'time'=>5890),array('wood'=>870,'clay'=>2170,'iron'=>1085,'crop'=>1300,'pop'=>2,'cp'=>4,'prod'=>70,'time'=>9620),array('wood'=>1450,'clay'=>3625,'iron'=>1810,'crop'=>2175,'pop'=>2,'cp'=>4,'prod'=>100,'time'=>15590),array('wood'=>2420,'clay'=>6050,'iron'=>3025,'crop'=>3630,'pop'=>2,'cp'=>5,'prod'=>145,'time'=>25150),array('wood'=>4040,'clay'=>10105,'iron'=>5050,'crop'=>6060,'pop'=>2,'cp'=>6,'prod'=>200,'time'=>40440),array('wood'=>6750,'clay'=>16870,'iron'=>8435,'crop'=>10125,'pop'=>2,'cp'=>7,'prod'=>280,'time'=>64900),array('wood'=>11270,'clay'=>28175,'iron'=>14090,'crop'=>16905,'pop'=>2,'cp'=>9,'prod'=>375,'time'=>104050),array('wood'=>18820,'clay'=>47055,'iron'=>23525,'crop'=>28230,'pop'=>2,'cp'=>11,'prod'=>495,'time'=>166680),array('wood'=>31430,'clay'=>78580,'iron'=>39290,'crop'=>47150,'pop'=>2,'cp'=>13,'prod'=>635,'time'=>266880),array('wood'=>52490,'clay'=>131230,'iron'=>65615,'crop'=>78740,'pop'=>2,'cp'=>15,'prod'=>800,'time'=>427210),array('wood'=>87660,'clay'=>219155,'iron'=>109575,'crop'=>131490,'pop'=>3,'cp'=>18,'prod'=>1000,'time'=>683730),array('wood'=>146395,'clay'=>365985,'iron'=>182995,'crop'=>219590,'pop'=>3,'cp'=>22,'prod'=>1300,'time'=>1094170),array('wood'=>244480,'clay'=>611195,'iron'=>305600,'crop'=>366715,'pop'=>3,'cp'=>27,'prod'=>1600,'time'=>1750880),array('wood'=>408280,'clay'=>1020695,'iron'=>510350,'crop'=>612420,'pop'=>3,'cp'=>32,'prod'=>2000,'time'=>2801600),array('wood'=>681825,'clay'=>1704565,'iron'=>852280,'crop'=>1022740,'pop'=>3,'cp'=>38,'prod'=>2450,'time'=>4482770)); -$bid2=array(array('prod'=>2),array('wood'=>80,'clay'=>40,'iron'=>80,'crop'=>50,'pop'=>2,'cp'=>1,'prod'=>5,'time'=>220),array('wood'=>135,'clay'=>65,'iron'=>135,'crop'=>85,'pop'=>1,'cp'=>1,'prod'=>9,'time'=>550),array('wood'=>225,'clay'=>110,'iron'=>225,'crop'=>140,'pop'=>1,'cp'=>2,'prod'=>15,'time'=>1080),array('wood'=>375,'clay'=>185,'iron'=>375,'crop'=>235,'pop'=>1,'cp'=>2,'prod'=>22,'time'=>1930),array('wood'=>620,'clay'=>310,'iron'=>620,'crop'=>390,'pop'=>1,'cp'=>2,'prod'=>33,'time'=>3290),array('wood'=>1040,'clay'=>520,'iron'=>1040,'crop'=>650,'pop'=>2,'cp'=>3,'prod'=>50,'time'=>5470),array('wood'=>1735,'clay'=>870,'iron'=>1735,'crop'=>1085,'pop'=>2,'cp'=>4,'prod'=>70,'time'=>8950),array('wood'=>2900,'clay'=>1450,'iron'=>2900,'crop'=>1810,'pop'=>2,'cp'=>4,'prod'=>100,'time'=>14520),array('wood'=>4840,'clay'=>2420,'iron'=>4840,'crop'=>3025,'pop'=>2,'cp'=>5,'prod'=>145,'time'=>23430),array('wood'=>8080,'clay'=>4040,'iron'=>8080,'crop'=>5050,'pop'=>2,'cp'=>6,'prod'=>200,'time'=>37690),array('wood'=>13500,'clay'=>6750,'iron'=>13500,'crop'=>8435,'pop'=>2,'cp'=>7,'prod'=>280,'time'=>60510),array('wood'=>22540,'clay'=>11270,'iron'=>22540,'crop'=>14090,'pop'=>2,'cp'=>9,'prod'=>375,'time'=>97010),array('wood'=>37645,'clay'=>18820,'iron'=>37645,'crop'=>23525,'pop'=>2,'cp'=>11,'prod'=>495,'time'=>155420),array('wood'=>62865,'clay'=>31430,'iron'=>62865,'crop'=>39290,'pop'=>2,'cp'=>13,'prod'=>635,'time'=>248870),array('wood'=>104985,'clay'=>52490,'iron'=>104985,'crop'=>65615,'pop'=>2,'cp'=>15,'prod'=>800,'time'=>398390),array('wood'=>175320,'clay'=>87660,'iron'=>175320,'crop'=>109575,'pop'=>3,'cp'=>18,'prod'=>1000,'time'=>637620),array('wood'=>292790,'clay'=>146395,'iron'=>292790,'crop'=>182995,'pop'=>3,'cp'=>22,'prod'=>1300,'time'=>1020390),array('wood'=>488955,'clay'=>244480,'iron'=>488955,'crop'=>305600,'pop'=>3,'cp'=>27,'prod'=>1600,'time'=>1632820),array('wood'=>816555,'clay'=>408280,'iron'=>816555,'crop'=>510350,'pop'=>3,'cp'=>32,'prod'=>2000,'time'=>2612710),array('wood'=>1363650,'clay'=>681825,'iron'=>1363650,'crop'=>852280,'pop'=>3,'cp'=>38,'prod'=>2450,'time'=>4180540)); -$bid3=array(array('prod'=>2),array('wood'=>100,'clay'=>80,'iron'=>30,'crop'=>60,'pop'=>3,'cp'=>1,'prod'=>5,'time'=>450),array('wood'=>165,'clay'=>135,'iron'=>50,'crop'=>100,'pop'=>2,'cp'=>1,'prod'=>9,'time'=>920),array('wood'=>280,'clay'=>225,'iron'=>85,'crop'=>165,'pop'=>2,'cp'=>2,'prod'=>15,'time'=>1670),array('wood'=>465,'clay'=>375,'iron'=>140,'crop'=>280,'pop'=>2,'cp'=>2,'prod'=>22,'time'=>2880),array('wood'=>780,'clay'=>620,'iron'=>235,'crop'=>465,'pop'=>2,'cp'=>2,'prod'=>33,'time'=>4800),array('wood'=>1300,'clay'=>1040,'iron'=>390,'crop'=>780,'pop'=>2,'cp'=>3,'prod'=>50,'time'=>7880),array('wood'=>2170,'clay'=>1735,'iron'=>650,'crop'=>1300,'pop'=>2,'cp'=>4,'prod'=>70,'time'=>12810),array('wood'=>3625,'clay'=>2900,'iron'=>1085,'crop'=>2175,'pop'=>2,'cp'=>4,'prod'=>100,'time'=>20690),array('wood'=>6050,'clay'=>4840,'iron'=>1815,'crop'=>3630,'pop'=>2,'cp'=>5,'prod'=>145,'time'=>33310),array('wood'=>10105,'clay'=>8080,'iron'=>3030,'crop'=>6060,'pop'=>2,'cp'=>6,'prod'=>200,'time'=>53500),array('wood'=>16870,'clay'=>13500,'iron'=>5060,'crop'=>10125,'pop'=>3,'cp'=>7,'prod'=>280,'time'=>85800),array('wood'=>28175,'clay'=>22540,'iron'=>8455,'crop'=>16905,'pop'=>3,'cp'=>9,'prod'=>375,'time'=>137470),array('wood'=>47055,'clay'=>37645,'iron'=>14115,'crop'=>28230,'pop'=>3,'cp'=>11,'prod'=>495,'time'=>220160),array('wood'=>78580,'clay'=>62865,'iron'=>23575,'crop'=>47150,'pop'=>3,'cp'=>13,'prod'=>635,'time'=>352450),array('wood'=>131230,'clay'=>104985,'iron'=>39370,'crop'=>78740,'pop'=>3,'cp'=>15,'prod'=>800,'time'=>564120),array('wood'=>219155,'clay'=>175320,'iron'=>65745,'crop'=>131490,'pop'=>3,'cp'=>18,'prod'=>1000,'time'=>902760),array('wood'=>365985,'clay'=>292790,'iron'=>109795,'crop'=>219590,'pop'=>3,'cp'=>22,'prod'=>1300,'time'=>145546),array('wood'=>611195,'clay'=>488955,'iron'=>183360,'crop'=>366715,'pop'=>3,'cp'=>27,'prod'=>1600,'time'=>2311660),array('wood'=>1020695,'clay'=>816555,'iron'=>306210,'crop'=>612420,'pop'=>3,'cp'=>32,'prod'=>2000,'time'=>3698850),array('wood'=>1704565,'clay'=>1363650,'iron'=>511370,'crop'=>1022740,'pop'=>3,'cp'=>38,'prod'=>2450,'time'=>5918370)); -$bid4=array(array('prod'=>2),array('wood'=>70,'clay'=>90,'iron'=>70,'crop'=>20,'pop'=>0,'cp'=>1,'prod'=>5,'time'=>150),array('wood'=>115,'clay'=>150,'iron'=>115,'crop'=>35,'pop'=>0,'cp'=>1,'prod'=>9,'time'=>440),array('wood'=>195,'clay'=>250,'iron'=>195,'crop'=>55,'pop'=>0,'cp'=>2,'prod'=>15,'time'=>900),array('wood'=>325,'clay'=>420,'iron'=>325,'crop'=>95,'pop'=>0,'cp'=>2,'prod'=>22,'time'=>1650),array('wood'=>545,'clay'=>700,'iron'=>545,'crop'=>155,'pop'=>0,'cp'=>2,'prod'=>33,'time'=>2830),array('wood'=>910,'clay'=>1170,'iron'=>910,'crop'=>260,'pop'=>1,'cp'=>3,'prod'=>50,'time'=>4730),array('wood'=>1520,'clay'=>1950,'iron'=>1520,'crop'=>435,'pop'=>1,'cp'=>4,'prod'=>70,'time'=>7780),array('wood'=>2535,'clay'=>3260,'iron'=>2535,'crop'=>725,'pop'=>1,'cp'=>4,'prod'=>100,'time'=>12190),array('wood'=>4235,'clay'=>5445,'iron'=>4235,'crop'=>1210,'pop'=>1,'cp'=>5,'prod'=>145,'time'=>19690),array('wood'=>7070,'clay'=>9095,'iron'=>7070,'crop'=>2020,'pop'=>1,'cp'=>6,'prod'=>200,'time'=>31700),array('wood'=>11810,'clay'=>15185,'iron'=>11810,'crop'=>3375,'pop'=>1,'cp'=>7,'prod'=>280,'time'=>50910),array('wood'=>19725,'clay'=>25360,'iron'=>19725,'crop'=>5635,'pop'=>1,'cp'=>9,'prod'=>375,'time'=>84700),array('wood'=>32940,'clay'=>42350,'iron'=>32940,'crop'=>9410,'pop'=>1,'cp'=>11,'prod'=>495,'time'=>135710),array('wood'=>55005,'clay'=>70720,'iron'=>55005,'crop'=>15715,'pop'=>1,'cp'=>13,'prod'=>635,'time'=>217340),array('wood'=>91860,'clay'=>118105,'iron'=>91860,'crop'=>26245,'pop'=>1,'cp'=>15,'prod'=>800,'time'=>347950),array('wood'=>153405,'clay'=>197240,'iron'=>153405,'crop'=>43830,'pop'=>2,'cp'=>18,'prod'=>1000,'time'=>556910),array('wood'=>256190,'clay'=>329385,'iron'=>256190,'crop'=>73195,'pop'=>2,'cp'=>22,'prod'=>1300,'time'=>891260),array('wood'=>427835,'clay'=>550075,'iron'=>427835,'crop'=>122240,'pop'=>2,'cp'=>27,'prod'=>1600,'time'=>1426210),array('wood'=>714485,'clay'=>918625,'iron'=>714485,'crop'=>204140,'pop'=>2,'cp'=>32,'prod'=>2000,'time'=>2282140),array('wood'=>1193195,'clay'=>1534105,'iron'=>1193195,'crop'=>340915,'pop'=>2,'cp'=>38,'prod'=>2450,'time'=>3651630)); -$bid5=array(1=>array('wood'=>520,'clay'=>380,'iron'=>290,'crop'=>90,'pop'=>4,'cp'=>1,'attri'=>5,'time'=>3000),array('wood'=>935,'clay'=>685,'iron'=>520,'crop'=>160,'pop'=>2,'cp'=>1,'attri'=>10,'time'=>5700),array('wood'=>1685,'clay'=>1230,'iron'=>940,'crop'=>290,'pop'=>2,'cp'=>2,'attri'=>15,'time'=>9750),array('wood'=>3035,'clay'=>2215,'iron'=>1690,'crop'=>525,'pop'=>2,'cp'=>2,'attri'=>20,'time'=>15830),array('wood'=>5460,'clay'=>3990,'iron'=>3045,'crop'=>945,'pop'=>2,'cp'=>2,'attri'=>25,'time'=>24940)); -$bid6=array(1=>array('wood'=>440,'clay'=>480,'iron'=>320,'crop'=>50,'pop'=>3,'cp'=>1,'attri'=>5,'time'=>2240),array('wood'=>790,'clay'=>865,'iron'=>575,'crop'=>90,'pop'=>2,'cp'=>1,'attri'=>10,'time'=>4560),array('wood'=>1425,'clay'=>1555,'iron'=>1035,'crop'=>160,'pop'=>2,'cp'=>2,'attri'=>15,'time'=>8040),array('wood'=>2565,'clay'=>2800,'iron'=>1865,'crop'=>290,'pop'=>2,'cp'=>2,'attri'=>20,'time'=>13260),array('wood'=>4620,'clay'=>5040,'iron'=>3360,'crop'=>525,'pop'=>2,'cp'=>2,'attri'=>25,'time'=>21090)); -$bid7=array(1=>array('wood'=>200,'clay'=>450,'iron'=>510,'crop'=>120,'pop'=>6,'cp'=>1,'attri'=>5,'time'=>4080),array('wood'=>360,'clay'=>810,'iron'=>920,'crop'=>215,'pop'=>3,'cp'=>1,'attri'=>10,'time'=>7320),array('wood'=>650,'clay'=>1460,'iron'=>1650,'crop'=>390,'pop'=>3,'cp'=>2,'attri'=>15,'time'=>12180),array('wood'=>1165,'clay'=>2625,'iron'=>2975,'crop'=>700,'pop'=>3,'cp'=>2,'attri'=>20,'time'=>19470),array('wood'=>2100,'clay'=>4725,'iron'=>5355,'crop'=>1260,'pop'=>3,'cp'=>2,'attri'=>25,'time'=>30410)); -$bid8=array(1=>array('wood'=>500,'clay'=>440,'iron'=>380,'crop'=>1240,'pop'=>3,'cp'=>1,'attri'=>5,'time'=>1840),array('wood'=>900,'clay'=>790,'iron'=>685,'crop'=>2230,'pop'=>2,'cp'=>1,'attri'=>10,'time'=>3960),array('wood'=>1620,'clay'=>1425,'iron'=>1230,'crop'=>4020,'pop'=>2,'cp'=>2,'attri'=>15,'time'=>7140),array('wood'=>2915,'clay'=>2565,'iron'=>2215,'crop'=>7230,'pop'=>2,'cp'=>2,'attri'=>20,'time'=>11910),array('wood'=>5250,'clay'=>4620,'iron'=>3990,'crop'=>13015,'pop'=>2,'cp'=>2,'attri'=>25,'time'=>19070)); -$bid9=array(1=>array('wood'=>1200,'clay'=>1480,'iron'=>870,'crop'=>1600,'pop'=>4,'cp'=>1,'attri'=>5,'time'=>3680),array('wood'=>2160,'clay'=>2665,'iron'=>1565,'crop'=>2880,'pop'=>2,'cp'=>1,'attri'=>10,'time'=>6720),array('wood'=>3890,'clay'=>4795,'iron'=>2820,'crop'=>5185,'pop'=>2,'cp'=>2,'attri'=>15,'time'=>11280),array('wood'=>7000,'clay'=>8630,'iron'=>5075,'crop'=>9330,'pop'=>2,'cp'=>2,'attri'=>20,'time'=>18120),array('wood'=>12595,'clay'=>15535,'iron'=>9135,'crop'=>16795,'pop'=>2,'cp'=>2,'attri'=>25,'time'=>28380)); -$bid10=array(1=>array('wood'=>130,'clay'=>160,'iron'=>90,'crop'=>40,'pop'=>1,'cp'=>1,'attri'=>1200,'time'=>2000),array('wood'=>165,'clay'=>205,'iron'=>115,'crop'=>50,'pop'=>1,'cp'=>1,'attri'=>1700,'time'=>2620),array('wood'=>215,'clay'=>260,'iron'=>145,'crop'=>65,'pop'=>1,'cp'=>2,'attri'=>2300,'time'=>3340),array('wood'=>275,'clay'=>335,'iron'=>190,'crop'=>85,'pop'=>1,'cp'=>2,'attri'=>3100,'time'=>4170),array('wood'=>350,'clay'=>430,'iron'=>240,'crop'=>105,'pop'=>1,'cp'=>2,'attri'=>4000,'time'=>5140),array('wood'=>445,'clay'=>550,'iron'=>310,'crop'=>135,'pop'=>1,'cp'=>3,'attri'=>5000,'time'=>6260),array('wood'=>570,'clay'=>705,'iron'=>395,'crop'=>175,'pop'=>1,'cp'=>4,'attri'=>6300,'time'=>7570),array('wood'=>730,'clay'=>900,'iron'=>505,'crop'=>225,'pop'=>1,'cp'=>4,'attri'=>7800,'time'=>9080),array('wood'=>935,'clay'=>1115,'iron'=>650,'crop'=>290,'pop'=>1,'cp'=>5,'attri'=>9600,'time'=>10830),array('wood'=>1200,'clay'=>1475,'iron'=>830,'crop'=>370,'pop'=>1,'cp'=>6,'attri'=>11800,'time'=>12860),array('wood'=>1535,'clay'=>1890,'iron'=>1065,'crop'=>470,'pop'=>2,'cp'=>7,'attri'=>14400,'time'=>15220),array('wood'=>1965,'clay'=>2420,'iron'=>1360,'crop'=>605,'pop'=>2,'cp'=>9,'attri'=>17600,'time'=>17950),array('wood'=>2515,'clay'=>3095,'iron'=>1740,'crop'=>775,'pop'=>2,'cp'=>11,'attri'=>21400,'time'=>21130),array('wood'=>3220,'clay'=>3960,'iron'=>2230,'crop'=>990,'pop'=>2,'cp'=>13,'attri'=>25900,'time'=>24810),array('wood'=>4120,'clay'=>5070,'iron'=>2850,'crop'=>1270,'pop'=>2,'cp'=>15,'attri'=>31300,'time'=>29080),array('wood'=>5275,'clay'=>6490,'iron'=>3650,'crop'=>1625,'pop'=>2,'cp'=>18,'attri'=>37900,'time'=>34030),array('wood'=>6750,'clay'=>8310,'iron'=>4675,'crop'=>2075,'pop'=>2,'cp'=>22,'attri'=>45700,'time'=>39770),array('wood'=>8640,'clay'=>10635,'iron'=>5980,'crop'=>2660,'pop'=>2,'cp'=>27,'attri'=>55100,'time'=>46440),array('wood'=>11060,'clay'=>13610,'iron'=>7655,'crop'=>3405,'pop'=>2,'cp'=>32,'attri'=>66400,'time'=>54170),array('wood'=>14155,'clay'=>17420,'iron'=>9800,'crop'=>4355,'pop'=>2,'cp'=>38,'attri'=>80000,'time'=>63130)); -$bid11=array(1=>array('wood'=>80,'clay'=>100,'iron'=>70,'crop'=>20,'pop'=>1,'cp'=>1,'attri'=>1200,'time'=>1600),array('wood'=>100,'clay'=>130,'iron'=>90,'crop'=>25,'pop'=>1,'cp'=>1,'attri'=>1700,'time'=>2160),array('wood'=>130,'clay'=>165,'iron'=>115,'crop'=>35,'pop'=>1,'cp'=>2,'attri'=>2300,'time'=>2800),array('wood'=>170,'clay'=>210,'iron'=>145,'crop'=>40,'pop'=>1,'cp'=>2,'attri'=>3100,'time'=>3550),array('wood'=>215,'clay'=>270,'iron'=>190,'crop'=>55,'pop'=>1,'cp'=>2,'attri'=>4000,'time'=>4420),array('wood'=>275,'clay'=>345,'iron'=>240,'crop'=>70,'pop'=>1,'cp'=>3,'attri'=>5000,'time'=>5420),array('wood'=>350,'clay'=>440,'iron'=>310,'crop'=>90,'pop'=>1,'cp'=>4,'attri'=>6300,'time'=>6590),array('wood'=>450,'clay'=>565,'iron'=>395,'crop'=>115,'pop'=>1,'cp'=>4,'attri'=>7800,'time'=>7950),array('wood'=>575,'clay'=>720,'iron'=>505,'crop'=>145,'pop'=>1,'cp'=>5,'attri'=>9600,'time'=>9520),array('wood'=>740,'clay'=>920,'iron'=>645,'crop'=>185,'pop'=>1,'cp'=>6,'attri'=>11800,'time'=>11340),array('wood'=>945,'clay'=>1180,'iron'=>825,'crop'=>235,'pop'=>2,'cp'=>7,'attri'=>14400,'time'=>13450),array('wood'=>1210,'clay'=>1510,'iron'=>1060,'crop'=>300,'pop'=>2,'cp'=>9,'attri'=>17600,'time'=>15910),array('wood'=>1545,'clay'=>1935,'iron'=>1355,'crop'=>385,'pop'=>2,'cp'=>11,'attri'=>21400,'time'=>18750),array('wood'=>1980,'clay'=>2475,'iron'=>1735,'crop'=>495,'pop'=>2,'cp'=>13,'attri'=>25900,'time'=>22050),array('wood'=>2535,'clay'=>3170,'iron'=>2220,'crop'=>635,'pop'=>2,'cp'=>15,'attri'=>31300,'time'=>25880),array('wood'=>3245,'clay'=>4055,'iron'=>2840,'crop'=>810,'pop'=>2,'cp'=>18,'attri'=>37900,'time'=>30320),array('wood'=>4155,'clay'=>5190,'iron'=>3635,'crop'=>1040,'pop'=>2,'cp'=>22,'attri'=>45700,'time'=>35470),array('wood'=>5315,'clay'=>6645,'iron'=>4650,'crop'=>1330,'pop'=>2,'cp'=>27,'attri'=>55100,'time'=>41450),array('wood'=>6805,'clay'=>8505,'iron'=>5955,'crop'=>1700,'pop'=>2,'cp'=>32,'attri'=>66400,'time'=>48380),array('wood'=>8710,'clay'=>10890,'iron'=>7620,'crop'=>2180,'pop'=>2,'cp'=>38,'attri'=>80000,'time'=>56420)); -$bid12=array(1=>array('wood'=>170,'clay'=>200,'iron'=>380,'crop'=>130,'pop'=>4,'cp'=>2,'attri'=>100,'time'=>2000),array('wood'=>220,'clay'=>255,'iron'=>485,'crop'=>165,'pop'=>2,'cp'=>3,'attri'=>96.4,'time'=>2620),array('wood'=>280,'clay'=>330,'iron'=>625,'crop'=>215,'pop'=>2,'cp'=>3,'attri'=>92.93,'time'=>3340),array('wood'=>355,'clay'=>420,'iron'=>795,'crop'=>275,'pop'=>2,'cp'=>4,'attri'=>89.58,'time'=>4170),array('wood'=>455,'clay'=>535,'iron'=>1020,'crop'=>350,'pop'=>2,'cp'=>5,'attri'=>86.36,'time'=>5140),array('wood'=>585,'clay'=>685,'iron'=>1305,'crop'=>445,'pop'=>3,'cp'=>6,'attri'=>83.25,'time'=>6260),array('wood'=>750,'clay'=>880,'iron'=>1670,'crop'=>570,'pop'=>3,'cp'=>7,'attri'=>80.25,'time'=>7570),array('wood'=>955,'clay'=>1125,'iron'=>2140,'crop'=>730,'pop'=>3,'cp'=>9,'attri'=>77.36,'time'=>9080),array('wood'=>1225,'clay'=>1440,'iron'=>2740,'crop'=>935,'pop'=>3,'cp'=>10,'attri'=>74.58,'time'=>10830),array('wood'=>1570,'clay'=>1845,'iron'=>3505,'crop'=>1200,'pop'=>3,'cp'=>12,'attri'=>71.89,'time'=>12860),array('wood'=>2005,'clay'=>2360,'iron'=>4485,'crop'=>1535,'pop'=>3,'cp'=>15,'attri'=>69.31,'time'=>15220),array('wood'=>2570,'clay'=>3020,'iron'=>5740,'crop'=>1965,'pop'=>3,'cp'=>18,'attri'=>66.81,'time'=>17950),array('wood'=>3290,'clay'=>3870,'iron'=>7350,'crop'=>2515,'pop'=>3,'cp'=>21,'attri'=>64.41,'time'=>21130),array('wood'=>4210,'clay'=>4950,'iron'=>9410,'crop'=>3220,'pop'=>3,'cp'=>26,'attri'=>62.09,'time'=>24810),array('wood'=>5390,'clay'=>6340,'iron'=>12045,'crop'=>4120,'pop'=>3,'cp'=>31,'attri'=>59.85,'time'=>29080),array('wood'=>6895,'clay'=>8115,'iron'=>15415,'crop'=>5275,'pop'=>4,'cp'=>37,'attri'=>57.70,'time'=>34030),array('wood'=>8825,'clay'=>10385,'iron'=>19730,'crop'=>6750,'pop'=>4,'cp'=>44,'attri'=>55.62,'time'=>39770),array('wood'=>11300,'clay'=>13290,'iron'=>25255,'crop'=>8640,'pop'=>4,'cp'=>53,'attri'=>53.62,'time'=>46440),array('wood'=>14460,'clay'=>17015,'iron'=>32325,'crop'=>11060,'pop'=>4,'cp'=>64,'attri'=>51.69,'time'=>54170),array('wood'=>18510,'clay'=>21780,'iron'=>41380,'crop'=>14155,'pop'=>4,'cp'=>77,'attri'=>49.83,'time'=>63130)); -$bid13=array(1=>array('wood'=>130,'clay'=>210,'iron'=>410,'crop'=>130,'pop'=>4,'cp'=>2,'attri'=>100,'time'=>2000),array('wood'=>165,'clay'=>270,'iron'=>525,'crop'=>165,'pop'=>2,'cp'=>3,'attri'=>96.4,'time'=>2620),array('wood'=>215,'clay'=>345,'iron'=>670,'crop'=>215,'pop'=>2,'cp'=>3,'attri'=>92.93,'time'=>3340),array('wood'=>275,'clay'=>440,'iron'=>860,'crop'=>275,'pop'=>2,'cp'=>4,'attri'=>89.58,'time'=>4170),array('wood'=>350,'clay'=>565,'iron'=>1100,'crop'=>350,'pop'=>2,'cp'=>5,'attri'=>86.36,'time'=>5140),array('wood'=>445,'clay'=>720,'iron'=>1410,'crop'=>445,'pop'=>3,'cp'=>6,'attri'=>83.25,'time'=>6260),array('wood'=>570,'clay'=>925,'iron'=>1805,'crop'=>570,'pop'=>3,'cp'=>7,'attri'=>80.25,'time'=>7570),array('wood'=>730,'clay'=>1180,'iron'=>2310,'crop'=>730,'pop'=>3,'cp'=>9,'attri'=>77.36,'time'=>9080),array('wood'=>935,'clay'=>1515,'iron'=>2955,'crop'=>935,'pop'=>3,'cp'=>10,'attri'=>74.58,'time'=>10830),array('wood'=>1200,'clay'=>1935,'iron'=>3780,'crop'=>1200,'pop'=>3,'cp'=>12,'attri'=>71.89,'time'=>12860),array('wood'=>1535,'clay'=>2480,'iron'=>4840,'crop'=>1535,'pop'=>3,'cp'=>15,'attri'=>69.31,'time'=>15220),array('wood'=>1965,'clay'=>3175,'iron'=>6195,'crop'=>1965,'pop'=>3,'cp'=>18,'attri'=>66.81,'time'=>17950),array('wood'=>2515,'clay'=>4060,'iron'=>7930,'crop'=>2515,'pop'=>3,'cp'=>21,'attri'=>64.41,'time'=>21130),array('wood'=>3220,'clay'=>5200,'iron'=>10150,'crop'=>3220,'pop'=>3,'cp'=>26,'attri'=>62.09,'time'=>24810),array('wood'=>4120,'clay'=>6655,'iron'=>12995,'crop'=>4120,'pop'=>3,'cp'=>31,'attri'=>59.85,'time'=>29080),array('wood'=>5275,'clay'=>8520,'iron'=>16630,'crop'=>5275,'pop'=>4,'cp'=>37,'attri'=>57.70,'time'=>34030),array('wood'=>6750,'clay'=>10905,'iron'=>21290,'crop'=>6750,'pop'=>4,'cp'=>44,'attri'=>55.62,'time'=>39770),array('wood'=>8640,'clay'=>13955,'iron'=>27250,'crop'=>8640,'pop'=>4,'cp'=>53,'attri'=>53.62,'time'=>46440),array('wood'=>11060,'clay'=>17865,'iron'=>34880,'crop'=>11060,'pop'=>4,'cp'=>64,'attri'=>51.69,'time'=>54170),array('wood'=>14155,'clay'=>22865,'iron'=>44645,'crop'=>14155,'pop'=>4,'cp'=>77,'attri'=>49.83,'time'=>63130)); -$bid14=array(1=>array('wood'=>1750,'clay'=>2250,'iron'=>1530,'crop'=>240,'pop'=>1,'cp'=>1,'attri'=>110,'time'=>3500),array('wood'=>2240,'clay'=>2880,'iron'=>1960,'crop'=>305,'pop'=>1,'cp'=>1,'attri'=>120,'time'=>4360),array('wood'=>2865,'clay'=>3685,'iron'=>2505,'crop'=>395,'pop'=>1,'cp'=>2,'attri'=>130,'time'=>5360),array('wood'=>3670,'clay'=>4720,'iron'=>3210,'crop'=>505,'pop'=>1,'cp'=>2,'attri'=>140,'time'=>6510),array('wood'=>4700,'clay'=>6040,'iron'=>4105,'crop'=>645,'pop'=>1,'cp'=>2,'attri'=>150,'time'=>7860),array('wood'=>6015,'clay'=>7730,'iron'=>5255,'crop'=>825,'pop'=>1,'cp'=>3,'attri'=>160,'time'=>9410),array('wood'=>7695,'clay'=>9895,'iron'=>6730,'crop'=>1055,'pop'=>1,'cp'=>4,'attri'=>170,'time'=>11220),array('wood'=>9850,'clay'=>12665,'iron'=>8615,'crop'=>1350,'pop'=>1,'cp'=>4,'attri'=>180,'time'=>13320),array('wood'=>12610,'clay'=>16215,'iron'=>11025,'crop'=>1730,'pop'=>1,'cp'=>5,'attri'=>190,'time'=>15750),array('wood'=>16140,'clay'=>20755,'iron'=>14110,'crop'=>2215,'pop'=>1,'cp'=>6,'attri'=>200,'time'=>18570),array('wood'=>20660,'clay'=>26565,'iron'=>18065,'crop'=>2835,'pop'=>2,'cp'=>7,'attri'=>210,'time'=>21840),array('wood'=>26445,'clay'=>34000,'iron'=>23120,'crop'=>3625,'pop'=>2,'cp'=>9,'attri'=>220,'time'=>25630),array('wood'=>33850,'clay'=>43520,'iron'=>29595,'crop'=>4640,'pop'=>2,'cp'=>11,'attri'=>230,'time'=>30030),array('wood'=>43330,'clay'=>55705,'iron'=>37880,'crop'=>5940,'pop'=>2,'cp'=>13,'attri'=>240,'time'=>35140),array('wood'=>55460,'clay'=>71305,'iron'=>48490,'crop'=>7605,'pop'=>2,'cp'=>15,'attri'=>250,'time'=>41060),array('wood'=>70990,'clay'=>91270,'iron'=>62065,'crop'=>9735,'pop'=>2,'cp'=>18,'attri'=>260,'time'=>47930),array('wood'=>90865,'clay'=>116825,'iron'=>79440,'crop'=>12460,'pop'=>2,'cp'=>22,'attri'=>270,'time'=>55900),array('wood'=>116305,'clay'=>149540,'iron'=>101685,'crop'=>15950,'pop'=>2,'cp'=>27,'attri'=>280,'time'=>65140),array('wood'=>148875,'clay'=>191410,'iron'=>130160,'crop'=>20415,'pop'=>2,'cp'=>32,'attri'=>290,'time'=>75860),array('wood'=>190560,'clay'=>245005,'iron'=>166600,'crop'=>26135,'pop'=>2,'cp'=>38,'attri'=>300,'time'=>88300)); -$bid15=array(1=>array('wood'=>70,'clay'=>40,'iron'=>60,'crop'=>20,'pop'=>2,'cp'=>2,'attri'=>100,'time'=>2620),array('wood'=>90,'clay'=>50,'iron'=>75,'crop'=>25,'pop'=>1,'cp'=>3,'attri'=>96.4,'time'=>3220),array('wood'=>115,'clay'=>65,'iron'=>100,'crop'=>35,'pop'=>1,'cp'=>3,'attri'=>92.93,'time'=>3880),array('wood'=>145,'clay'=>85,'iron'=>125,'crop'=>40,'pop'=>1,'cp'=>4,'attri'=>89.58,'time'=>4610),array('wood'=>190,'clay'=>105,'iron'=>160,'crop'=>55,'pop'=>1,'cp'=>5,'attri'=>86.36,'time'=>5410),array('wood'=>240,'clay'=>135,'iron'=>205,'crop'=>70,'pop'=>2,'cp'=>6,'attri'=>83.25,'time'=>6300),array('wood'=>310,'clay'=>175,'iron'=>265,'crop'=>90,'pop'=>2,'cp'=>7,'attri'=>80.25,'time'=>7280),array('wood'=>395,'clay'=>225,'iron'=>340,'crop'=>115,'pop'=>2,'cp'=>9,'attri'=>77.36,'time'=>8380),array('wood'=>505,'clay'=>290,'iron'=>430,'crop'=>145,'pop'=>2,'cp'=>10,'attri'=>74.58,'time'=>9590),array('wood'=>645,'clay'=>370,'iron'=>555,'crop'=>185,'pop'=>2,'cp'=>12,'attri'=>71.89,'time'=>10940),array('wood'=>825,'clay'=>470,'iron'=>710,'crop'=>235,'pop'=>2,'cp'=>15,'attri'=>69.31,'time'=>12440),array('wood'=>1060,'clay'=>605,'iron'=>905,'crop'=>300,'pop'=>2,'cp'=>18,'attri'=>66.81,'time'=>14120),array('wood'=>1355,'clay'=>775,'iron'=>1160,'crop'=>385,'pop'=>2,'cp'=>21,'attri'=>64.41,'time'=>15980),array('wood'=>1735,'clay'=>990,'iron'=>1485,'crop'=>495,'pop'=>2,'cp'=>26,'attri'=>62.09,'time'=>18050),array('wood'=>2220,'clay'=>1270,'iron'=>1900,'crop'=>635,'pop'=>2,'cp'=>31,'attri'=>59.85,'time'=>20370),array('wood'=>2840,'clay'=>1625,'iron'=>2435,'crop'=>810,'pop'=>3,'cp'=>37,'attri'=>57.70,'time'=>22950),array('wood'=>3635,'clay'=>2075,'iron'=>3115,'crop'=>1040,'pop'=>3,'cp'=>44,'attri'=>55.62,'time'=>25830),array('wood'=>4650,'clay'=>2660,'iron'=>3990,'crop'=>1330,'pop'=>3,'cp'=>53,'attri'=>53.62,'time'=>29040),array('wood'=>5955,'clay'=>3405,'iron'=>5105,'crop'=>1700,'pop'=>3,'cp'=>64,'attri'=>51.69,'time'=>32630),array('wood'=>7620,'clay'=>4355,'iron'=>6535,'crop'=>2180,'pop'=>3,'cp'=>77,'attri'=>49.83,'time'=>32632)); -$bid16=array(1=>array('wood'=>110,'clay'=>160,'iron'=>90,'crop'=>70,'pop'=>1,'cp'=>1,'attri'=>0,'time'=>670),array('wood'=>140,'clay'=>205,'iron'=>115,'crop'=>90,'pop'=>1,'cp'=>1,'attri'=>0,'time'=>870),array('wood'=>180,'clay'=>260,'iron'=>145,'crop'=>115,'pop'=>1,'cp'=>2,'attri'=>0,'time'=>1110),array('wood'=>230,'clay'=>335,'iron'=>190,'crop'=>145,'pop'=>1,'cp'=>2,'attri'=>0,'time'=>1390),array('wood'=>295,'clay'=>430,'iron'=>240,'crop'=>190,'pop'=>1,'cp'=>2,'attri'=>0,'time'=>1710),array('wood'=>380,'clay'=>550,'iron'=>310,'crop'=>240,'pop'=>1,'cp'=>3,'attri'=>0,'time'=>2090),array('wood'=>485,'clay'=>705,'iron'=>395,'crop'=>310,'pop'=>1,'cp'=>4,'attri'=>0,'time'=>2520),array('wood'=>620,'clay'=>900,'iron'=>505,'crop'=>395,'pop'=>1,'cp'=>4,'attri'=>0,'time'=>3030),array('wood'=>795,'clay'=>1155,'iron'=>650,'crop'=>505,'pop'=>1,'cp'=>5,'attri'=>0,'time'=>3610),array('wood'=>1015,'clay'=>1475,'iron'=>830,'crop'=>645,'pop'=>1,'cp'=>6,'attri'=>0,'time'=>4290),array('wood'=>1300,'clay'=>1890,'iron'=>1065,'crop'=>825,'pop'=>2,'cp'=>7,'attri'=>0,'time'=>5070),array('wood'=>1660,'clay'=>2420,'iron'=>1360,'crop'=>1060,'pop'=>2,'cp'=>9,'attri'=>0,'time'=>5980),array('wood'=>2130,'clay'=>3095,'iron'=>1740,'crop'=>1355,'pop'=>2,'cp'=>11,'attri'=>0,'time'=>7040),array('wood'=>2725,'clay'=>3960,'iron'=>2230,'crop'=>1735,'pop'=>2,'cp'=>13,'attri'=>0,'time'=>8270),array('wood'=>3485,'clay'=>5070,'iron'=>2850,'crop'=>2220,'pop'=>2,'cp'=>15,'attri'=>0,'time'=>9690),array('wood'=>4460,'clay'=>6490,'iron'=>3650,'crop'=>2840,'pop'=>2,'cp'=>18,'attri'=>0,'time'=>11340),array('wood'=>5710,'clay'=>8310,'iron'=>4675,'crop'=>3635,'pop'=>2,'cp'=>22,'attri'=>0,'time'=>13260),array('wood'=>7310,'clay'=>10635,'iron'=>5980,'crop'=>4650,'pop'=>2,'cp'=>27,'attri'=>0,'time'=>15480),array('wood'=>9360,'clay'=>13610,'iron'=>7655,'crop'=>5955,'pop'=>2,'cp'=>32,'attri'=>0,'time'=>18060),array('wood'=>11980,'clay'=>17420,'iron'=>9800,'crop'=>7620,'pop'=>2,'cp'=>38,'attri'=>0,'time'=>21040)); -$bid17=array(1=>array('wood'=>80,'clay'=>70,'iron'=>120,'crop'=>70,'pop'=>4,'cp'=>4,'attri'=>1,'time'=>1800),array('wood'=>100,'clay'=>90,'iron'=>155,'crop'=>90,'pop'=>2,'cp'=>4,'attri'=>2,'time'=>2390),array('wood'=>130,'clay'=>115,'iron'=>195,'crop'=>115,'pop'=>2,'cp'=>5,'attri'=>3,'time'=>3070),array('wood'=>170,'clay'=>145,'iron'=>250,'crop'=>145,'pop'=>2,'cp'=>6,'attri'=>4,'time'=>3860),array('wood'=>215,'clay'=>190,'iron'=>320,'crop'=>190,'pop'=>2,'cp'=>7,'attri'=>5,'time'=>4780),array('wood'=>275,'clay'=>240,'iron'=>410,'crop'=>240,'pop'=>3,'cp'=>9,'attri'=>6,'time'=>5840),array('wood'=>350,'clay'=>310,'iron'=>530,'crop'=>310,'pop'=>3,'cp'=>11,'attri'=>7,'time'=>7080),array('wood'=>450,'clay'=>395,'iron'=>675,'crop'=>395,'pop'=>3,'cp'=>13,'attri'=>8,'time'=>8510),array('wood'=>575,'clay'=>505,'iron'=>865,'crop'=>505,'pop'=>3,'cp'=>15,'attri'=>9,'time'=>10170),array('wood'=>740,'clay'=>645,'iron'=>1105,'crop'=>645,'pop'=>3,'cp'=>19,'attri'=>10,'time'=>12100),array('wood'=>945,'clay'=>825,'iron'=>1415,'crop'=>825,'pop'=>3,'cp'=>22,'attri'=>11,'time'=>14340),array('wood'=>1210,'clay'=>1060,'iron'=>1815,'crop'=>1060,'pop'=>3,'cp'=>27,'attri'=>12,'time'=>16930),array('wood'=>1545,'clay'=>1355,'iron'=>2320,'crop'=>1355,'pop'=>3,'cp'=>32,'attri'=>13,'time'=>19940),array('wood'=>1980,'clay'=>1735,'iron'=>2970,'crop'=>1735,'pop'=>3,'cp'=>39,'attri'=>14,'time'=>23430),array('wood'=>2535,'clay'=>2220,'iron'=>3805,'crop'=>2220,'pop'=>3,'cp'=>46,'attri'=>15,'time'=>27480),array('wood'=>3245,'clay'=>2840,'iron'=>4870,'crop'=>2840,'pop'=>4,'cp'=>55,'attri'=>16,'time'=>32180),array('wood'=>4155,'clay'=>3635,'iron'=>6230,'crop'=>3635,'pop'=>4,'cp'=>67,'attri'=>17,'time'=>37620),array('wood'=>5315,'clay'=>4650,'iron'=>7975,'crop'=>4650,'pop'=>4,'cp'=>80,'attri'=>18,'time'=>43940),array('wood'=>6805,'clay'=>5955,'iron'=>10210,'crop'=>5955,'pop'=>4,'cp'=>96,'attri'=>19,'time'=>51270),array('wood'=>8710,'clay'=>7620,'iron'=>13065,'crop'=>7620,'pop'=>4,'cp'=>115,'attri'=>20,'time'=>59780)); -$bid18=array(1=>array('wood'=>180,'clay'=>130,'iron'=>150,'crop'=>80,'pop'=>3,'cp'=>5,'attri'=>0,'time'=>2000),array('wood'=>230,'clay'=>165,'iron'=>190,'crop'=>100,'pop'=>2,'cp'=>6,'attri'=>0,'time'=>2620),array('wood'=>295,'clay'=>215,'iron'=>245,'crop'=>130,'pop'=>2,'cp'=>7,'attri'=>9,'time'=>3340),array('wood'=>375,'clay'=>275,'iron'=>315,'crop'=>170,'pop'=>2,'cp'=>8,'attri'=>12,'time'=>4170),array('wood'=>485,'clay'=>350,'iron'=>405,'crop'=>215,'pop'=>2,'cp'=>10,'attri'=>15,'time'=>5140),array('wood'=>620,'clay'=>445,'iron'=>515,'crop'=>275,'pop'=>2,'cp'=>12,'attri'=>18,'time'=>6260),array('wood'=>790,'clay'=>570,'iron'=>660,'crop'=>350,'pop'=>2,'cp'=>14,'attri'=>21,'time'=>7570),array('wood'=>1015,'clay'=>730,'iron'=>845,'crop'=>450,'pop'=>2,'cp'=>17,'attri'=>24,'time'=>9080),array('wood'=>1295,'clay'=>935,'iron'=>1080,'crop'=>575,'pop'=>2,'cp'=>21,'attri'=>27,'time'=>10830),array('wood'=>1660,'clay'=>1200,'iron'=>1385,'crop'=>740,'pop'=>2,'cp'=>25,'attri'=>30,'time'=>12860),array('wood'=>2125,'clay'=>1535,'iron'=>1770,'crop'=>945,'pop'=>3,'cp'=>30,'attri'=>33,'time'=>15220),array('wood'=>2720,'clay'=>1965,'iron'=>2265,'crop'=>1210,'pop'=>3,'cp'=>36,'attri'=>36,'time'=>17950),array('wood'=>3480,'clay'=>2515,'iron'=>2900,'crop'=>1545,'pop'=>3,'cp'=>43,'attri'=>39,'time'=>21130), array('wood'=>4455,'clay'=>3220,'iron'=>3715,'crop'=>1980,'pop'=>3,'cp'=>51,'attri'=>42,'time'=>24810),array('wood'=>5705,'clay'=>4120,'iron'=>4755,'crop'=>2535,'pop'=>3,'cp'=>62,'attri'=>45,'time'=>29080),array('wood'=>7300,'clay'=>5275,'iron'=>6085,'crop'=>3245,'pop'=>3,'cp'=>74,'attri'=>48,'time'=>34030),array('wood'=>9345,'clay'=>6750,'iron'=>7790,'crop'=>4155,'pop'=>3,'cp'=>89,'attri'=>51,'time'=>39770),array('wood'=>11965,'clay'=>8640,'iron'=>9970,'crop'=>5315,'pop'=>3,'cp'=>106,'attri'=>54,'time'=>46440),array('wood'=>15315,'clay'=>11060,'iron'=>12760,'crop'=>6805,'pop'=>3,'cp'=>128,'attri'=>57,'time'=>54170),array('wood'=>19600,'clay'=>14155,'iron'=>16335,'crop'=>8710,'pop'=>3,'cp'=>153,'attri'=>60,'time'=>63130)); -$bid19=array(1=>array('wood'=>210,'clay'=>140,'iron'=>260,'crop'=>120,'pop'=>4,'cp'=>1,'attri'=>100,'time'=>2000),array('wood'=>270,'clay'=>180,'iron'=>335,'crop'=>155,'pop'=>2,'cp'=>1,'attri'=>90,'time'=>2620),array('wood'=>345,'clay'=>230,'iron'=>425,'crop'=>195,'pop'=>2,'cp'=>2,'attri'=>81,'time'=>3340),array('wood'=>440,'clay'=>295,'iron'=>545,'crop'=>250,'pop'=>2,'cp'=>2,'attri'=>72.9,'time'=>4170),array('wood'=>565,'clay'=>375,'iron'=>700,'crop'=>320,'pop'=>2,'cp'=>2,'attri'=>65.61,'time'=>5140),array('wood'=>720,'clay'=>480,'iron'=>895,'crop'=>410,'pop'=>3,'cp'=>3,'attri'=>59.05,'time'=>6260),array('wood'=>925,'clay'=>615,'iron'=>1145,'crop'=>530,'pop'=>3,'cp'=>4,'attri'=>53.14,'time'=>7570),array('wood'=>1180,'clay'=>790,'iron'=>1465,'crop'=>675,'pop'=>3,'cp'=>4,'attri'=>47.83,'time'=>9080),array('wood'=>1515,'clay'=>1010,'iron'=>1875,'crop'=>865,'pop'=>3,'cp'=>5,'attri'=>43.05,'time'=>10830),array('wood'=>1935,'clay'=>1290,'iron'=>2400,'crop'=>1105,'pop'=>3,'cp'=>6,'attri'=>38.74,'time'=>12860),array('wood'=>2480,'clay'=>1655,'iron'=>3070,'crop'=>1415,'pop'=>3,'cp'=>7,'attri'=>34.87,'time'=>15220),array('wood'=>3175,'clay'=>2115,'iron'=>3930,'crop'=>1815,'pop'=>3,'cp'=>9,'attri'=>31.38,'time'=>17950),array('wood'=>4060,'clay'=>2710,'iron'=>5030,'crop'=>2320,'pop'=>3,'cp'=>11,'attri'=>28.24,'time'=>21130),array('wood'=>5200,'clay'=>3465,'iron'=>6435,'crop'=>2970,'pop'=>3,'cp'=>13,'attri'=>25.42,'time'=>24810),array('wood'=>6655,'clay'=>4435,'iron'=>8240,'crop'=>3805,'pop'=>3,'cp'=>15,'attri'=>22.88,'time'=>29080),array('wood'=>8520,'clay'=>5680,'iron'=>10545,'crop'=>4870,'pop'=>4,'cp'=>18,'attri'=>20.59,'time'=>34030),array('wood'=>10905,'clay'=>7270,'iron'=>13500,'crop'=>6230,'pop'=>4,'cp'=>22,'attri'=>18.53,'time'=>39770),array('wood'=>13955,'clay'=>9305,'iron'=>17280,'crop'=>7975,'pop'=>4,'cp'=>27,'attri'=>16.68,'time'=>46440),array('wood'=>17865,'clay'=>11910,'iron'=>22120,'crop'=>10210,'pop'=>4,'cp'=>32,'attri'=>15.01,'time'=>54170),array('wood'=>22865,'clay'=>15245,'iron'=>28310,'crop'=>13065,'pop'=>4,'cp'=>38,'attri'=>13.51,'time'=>63130)); -$bid20=array(1=>array('wood'=>260,'clay'=>140,'iron'=>220,'crop'=>100,'pop'=>5,'cp'=>2,'attri'=>100,'time'=>2200),array('wood'=>335,'clay'=>180,'iron'=>280,'crop'=>130,'pop'=>3,'cp'=>3,'attri'=>90,'time'=>2850),array('wood'=>425,'clay'=>230,'iron'=>360,'crop'=>165,'pop'=>3,'cp'=>3,'attri'=>81,'time'=>3610),array('wood'=>545,'clay'=>295,'iron'=>460,'crop'=>210,'pop'=>3,'cp'=>4,'attri'=>72.9,'time'=>4490),array('wood'=>700,'clay'=>375,'iron'=>590,'crop'=>270,'pop'=>3,'cp'=>5,'attri'=>65.61,'time'=>5500),array('wood'=>895,'clay'=>480,'iron'=>755,'crop'=>345,'pop'=>3,'cp'=>6,'attri'=>59.05,'time'=>6680),array('wood'=>1145,'clay'=>615,'iron'=>970,'crop'=>440,'pop'=>3,'cp'=>7,'attri'=>53.14,'time'=>8050),array('wood'=>1465,'clay'=>790,'iron'=>1240,'crop'=>565,'pop'=>3,'cp'=>9,'attri'=>47.83,'time'=>9640),array('wood'=>1875,'clay'=>1010,'iron'=>1585,'crop'=>720,'pop'=>3,'cp'=>10,'attri'=>43.05,'time'=>11480),array('wood'=>2400,'clay'=>1290,'iron'=>2030,'crop'=>920,'pop'=>3,'cp'=>12,'attri'=>38.74,'time'=>13620),array('wood'=>3070,'clay'=>1655,'iron'=>2595,'crop'=>1180,'pop'=>4,'cp'=>15,'attri'=>34.87,'time'=>16100),array('wood'=>3930,'clay'=>2115,'iron'=>3325,'crop'=>1510,'pop'=>4,'cp'=>18,'attri'=>31.38,'time'=>18980),array('wood'=>5030,'clay'=>2710,'iron'=>4255,'crop'=>1935,'pop'=>4,'cp'=>21,'attri'=>28.24,'time'=>22310),array('wood'=>6435,'clay'=>3465,'iron'=>5445,'crop'=>2475,'pop'=>4,'cp'=>26,'attri'=>25.42,'time'=>26180),array('wood'=>8240,'clay'=>4435,'iron'=>6970,'crop'=>3170,'pop'=>4,'cp'=>31,'attri'=>22.88,'time'=>30670),array('wood'=>10545,'clay'=>5680,'iron'=>8925,'crop'=>4055,'pop'=>4,'cp'=>37,'attri'=>20.59,'time'=>35880),array('wood'=>13500,'clay'=>7270,'iron'=>11425,'crop'=>5190,'pop'=>4,'cp'=>44,'attri'=>18.53,'time'=>41920),array('wood'=>17280,'clay'=>9305,'iron'=>14620,'crop'=>6645,'pop'=>4,'cp'=>53,'attri'=>16.68,'time'=>48930),array('wood'=>22120,'clay'=>11910,'iron'=>18715,'crop'=>8505,'pop'=>4,'cp'=>64,'attri'=>15.01,'time'=>57060),array('wood'=>28310,'clay'=>15245,'iron'=>23955,'crop'=>10890,'pop'=>4,'cp'=>77,'attri'=>13.51,'time'=>66490)); -$bid21=array(1=>array('wood'=>460,'clay'=>510,'iron'=>600,'crop'=>320,'pop'=>3,'cp'=>4,'attri'=>100,'time'=>3000),array('wood'=>590,'clay'=>655,'iron'=>770,'crop'=>410,'pop'=>2,'cp'=>4,'attri'=>90,'time'=>3780),array('wood'=>755,'clay'=>835,'iron'=>985,'crop'=>525,'pop'=>2,'cp'=>5,'attri'=>81,'time'=>4680),array('wood'=>965,'clay'=>1070,'iron'=>1260,'crop'=>670,'pop'=>2,'cp'=>6,'attri'=>72.9,'time'=>5730),array('wood'=>1235,'clay'=>1370,'iron'=>1610,'crop'=>860,'pop'=>2,'cp'=>7,'attri'=>65.61,'time'=>6950),array('wood'=>1580,'clay'=>1750,'iron'=>2060,'crop'=>1100,'pop'=>2,'cp'=>9,'attri'=>59.05,'time'=>8360),array('wood'=>2025,'clay'=>2245,'iron'=>2640,'crop'=>1405,'pop'=>2,'cp'=>11,'attri'=>53.14,'time'=>10000),array('wood'=>2590,'clay'=>2870,'iron'=>3380,'crop'=>1800,'pop'=>2,'cp'=>13,'attri'=>47.83,'time'=>11900),array('wood'=>3315,'clay'=>3675,'iron'=>4325,'crop'=>2305,'pop'=>2,'cp'=>15,'attri'=>43.05,'time'=>14110),array('wood'=>4245,'clay'=>4705,'iron'=>5535,'crop'=>2950,'pop'=>2,'cp'=>19,'attri'=>38.74,'time'=>16660),array('wood'=>5430,'clay'=>6020,'iron'=>7085,'crop'=>3780,'pop'=>3,'cp'=>22,'attri'=>34.87,'time'=>19630),array('wood'=>6950,'clay'=>7705,'iron'=>9065,'crop'=>4835,'pop'=>3,'cp'=>27,'attri'=>31.38,'time'=>23070),array('wood'=>8900,'clay'=>9865,'iron'=>11605,'crop'=>6190,'pop'=>3,'cp'=>32,'attri'=>28.24,'time'=>27060),array('wood'=>11390,'clay'=>12625,'iron'=>14855,'crop'=>7925,'pop'=>3,'cp'=>39,'attri'=>25.42,'time'=>31690),array('wood'=>14580,'clay'=>16165,'iron'=>19015,'crop'=>10140,'pop'=>3,'cp'=>46,'attri'=>22.88,'time'=>37060),array('wood'=>18660,'clay'=>20690,'iron'=>24340,'crop'=>12980,'pop'=>3,'cp'=>55,'attri'=>20.59,'time'=>43290),array('wood'=>23885,'clay'=>26480,'iron'=>31155,'crop'=>16615,'pop'=>3,'cp'=>67,'attri'=>18.53,'time'=>50520),array('wood'=>30570,'clay'=>33895,'iron'=>39875,'crop'=>21270,'pop'=>3,'cp'=>80,'attri'=>16.68,'time'=>58900),array('wood'=>39130,'clay'=>43385,'iron'=>51040,'crop'=>27225,'pop'=>3,'cp'=>96,'attri'=>15.01,'time'=>68630),array('wood'=>50090,'clay'=>55535,'iron'=>65335,'crop'=>34845,'pop'=>3,'cp'=>115,'attri'=>13.51,'time'=>79910)); -$bid22=array(1=>array('wood'=>220,'clay'=>160,'iron'=>90,'crop'=>40,'pop'=>4,'cp'=>5,'attri'=>100,'time'=>2000),array('wood'=>280,'clay'=>205,'iron'=>115,'crop'=>50,'pop'=>2,'cp'=>6,'attri'=>96.4,'time'=>2620),array('wood'=>360,'clay'=>260,'iron'=>145,'crop'=>65,'pop'=>2,'cp'=>7,'attri'=>92.93,'time'=>3340),array('wood'=>460,'clay'=>335,'iron'=>190,'crop'=>85,'pop'=>2,'cp'=>8,'attri'=>89.58,'time'=>4170),array('wood'=>590,'clay'=>430,'iron'=>240,'crop'=>105,'pop'=>2,'cp'=>10,'attri'=>86.36,'time'=>5140),array('wood'=>755,'clay'=>550,'iron'=>310,'crop'=>135,'pop'=>3,'cp'=>12,'attri'=>83.25,'time'=>6260),array('wood'=>970,'clay'=>705,'iron'=>395,'crop'=>175,'pop'=>3,'cp'=>14,'attri'=>80.25,'time'=>7570),array('wood'=>1240,'clay'=>900,'iron'=>505,'crop'=>225,'pop'=>3,'cp'=>17,'attri'=>77.36,'time'=>9080),array('wood'=>1585,'clay'=>1155,'iron'=>650,'crop'=>290,'pop'=>3,'cp'=>21,'attri'=>74.58,'time'=>10830),array('wood'=>2030,'clay'=>1475,'iron'=>830,'crop'=>370,'pop'=>3,'cp'=>25,'attri'=>71.89,'time'=>12860),array('wood'=>2595,'clay'=>1890,'iron'=>1065,'crop'=>470,'pop'=>3,'cp'=>30,'attri'=>69.31,'time'=>15220),array('wood'=>3325,'clay'=>2420,'iron'=>1360,'crop'=>605,'pop'=>3,'cp'=>36,'attri'=>66.81,'time'=>17950),array('wood'=>4255,'clay'=>3095,'iron'=>1740,'crop'=>775,'pop'=>3,'cp'=>43,'attri'=>64.41,'time'=>21130),array('wood'=>5445,'clay'=>3960,'iron'=>2230,'crop'=>990,'pop'=>3,'cp'=>51,'attri'=>62.09,'time'=>24810),array('wood'=>6970,'clay'=>5070,'iron'=>2850,'crop'=>1270,'pop'=>3,'cp'=>62,'attri'=>59.85,'time'=>29080),array('wood'=>8925,'clay'=>6490,'iron'=>3650,'crop'=>1625,'pop'=>4,'cp'=>74,'attri'=>57.70,'time'=>34030),array('wood'=>11425,'clay'=>8310,'iron'=>4675,'crop'=>2075,'pop'=>4,'cp'=>89,'attri'=>55.62,'time'=>39770),array('wood'=>14620,'clay'=>10635,'iron'=>5980,'crop'=>2660,'pop'=>4,'cp'=>106,'attri'=>53.62,'time'=>46440),array('wood'=>18715,'clay'=>13610,'iron'=>7655,'crop'=>3405,'pop'=>4,'cp'=>128,'attri'=>51.69,'time'=>54170),array('wood'=>23955,'clay'=>17420,'iron'=>9800,'crop'=>4355,'pop'=>4,'cp'=>153,'attri'=>49.83,'time'=>63134)); -$bid23=array(1=>array('wood'=>40,'clay'=>50,'iron'=>30,'crop'=>10,'pop'=>0,'cp'=>1,'attri'=>100,'time'=>750),array('wood'=>50,'clay'=>65,'iron'=>40,'crop'=>15,'pop'=>0,'cp'=>1,'attri'=>130,'time'=>1170),array('wood'=>65,'clay'=>80,'iron'=>50,'crop'=>15,'pop'=>0,'cp'=>2,'attri'=>170,'time'=>1660),array('wood'=>85,'clay'=>105,'iron'=>65,'crop'=>20,'pop'=>0,'cp'=>2,'attri'=>220,'time'=>2220),array('wood'=>105,'clay'=>135,'iron'=>80,'crop'=>25,'pop'=>0,'cp'=>2,'attri'=>280,'time'=>2880),array('wood'=>135,'clay'=>170,'iron'=>105,'crop'=>35,'pop'=>1,'cp'=>3,'attri'=>360,'time'=>3640),array('wood'=>175,'clay'=>220,'iron'=>130,'crop'=>45,'pop'=>1,'cp'=>4,'attri'=>460,'time'=>4520),array('wood'=>225,'clay'=>280,'iron'=>170,'crop'=>55,'pop'=>1,'cp'=>4,'attri'=>600,'time'=>5540),array('wood'=>290,'clay'=>360,'iron'=>215,'crop'=>70,'pop'=>1,'cp'=>5,'attri'=>770,'time'=>6730),array('wood'=>370,'clay'=>460,'iron'=>275,'crop'=>90,'pop'=>1,'cp'=>6,'attri'=>1000,'time'=>8110)); -$bid24=array(1=>array('wood'=>1250,'clay'=>1110,'iron'=>1260,'crop'=>600,'pop'=>4,'cp'=>6,'attri'=>100.00,'time'=>12500),array('wood'=>1600,'clay'=>1420,'iron'=>1615,'crop'=>770,'pop'=>2,'cp'=>7,'attri'=>96.40,'time'=>14800),array('wood'=>2050,'clay'=>1820,'iron'=>2065,'crop'=>985,'pop'=>2,'cp'=>9,'attri'=>92.93,'time'=>17468),array('wood'=>2620,'clay'=>2330,'iron'=>2640,'crop'=>1260,'pop'=>2,'cp'=>10,'attri'=>89.58,'time'=>20563),array('wood'=>3355,'clay'=>2980,'iron'=>3380,'crop'=>1610,'pop'=>2,'cp'=>12,'attri'=>86.36,'time'=>24153),array('wood'=>4295,'clay'=>3815,'iron'=>4330,'crop'=>2060,'pop'=>3,'cp'=>15,'attri'=>83.25,'time'=>28317),array('wood'=>5500,'clay'=>4880,'iron'=>5540,'crop'=>2640,'pop'=>3,'cp'=>18,'attri'=>80.25,'time'=>33148),array('wood'=>7035,'clay'=>6250,'iron'=>7095,'crop'=>3380,'pop'=>3,'cp'=>21,'attri'=>77.36,'time'=>38752),array('wood'=>9005,'clay'=>8000,'iron'=>9080,'crop'=>4325,'pop'=>3,'cp'=>26,'attri'=>74.58,'time'=>45252),array('wood'=>11530,'clay'=>10240,'iron'=>11620,'crop'=>5535,'pop'=>3,'cp'=>31,'attri'=>71.89,'time'=>52793),array('wood'=>14755,'clay'=>13105,'iron'=>14875,'crop'=>7085,'pop'=>3,'cp'=>37,'attri'=>69.31,'time'=>61539),array('wood'=>18890,'clay'=>16775,'iron'=>19040,'crop'=>9065,'pop'=>3,'cp'=>45,'attri'=>66.81,'time'=>71686),array('wood'=>24180,'clay'=>21470,'iron'=>24370,'crop'=>11605,'pop'=>3,'cp'=>53,'attri'=>64.41,'time'=>83455),array('wood'=>30950,'clay'=>27480,'iron'=>31195,'crop'=>14855,'pop'=>3,'cp'=>64,'attri'=>62.09,'time'=>97108),array('wood'=>39615,'clay'=>35175,'iron'=>39930,'crop'=>19015,'pop'=>3,'cp'=>77,'attri'=>59.85,'time'=>112946),array('wood'=>50705,'clay'=>45025,'iron'=>51110,'crop'=>24340,'pop'=>4,'cp'=>92,'attri'=>57.70,'time'=>131317),array('wood'=>64905,'clay'=>57635,'iron'=>65425,'crop'=>31155,'pop'=>4,'cp'=>111,'attri'=>55.62,'time'=>152628),array('wood'=>83075,'clay'=>73770,'iron'=>83740,'crop'=>39875,'pop'=>4,'cp'=>133,'attri'=>53.62,'time'=>177348),array('wood'=>106340,'clay'=>94430,'iron'=>107190,'crop'=>51040,'pop'=>4,'cp'=>160,'attri'=>51.69,'time'=>206024),array('wood'=>136115,'clay'=>120870,'iron'=>137200,'crop'=>65335,'pop'=>4,'cp'=>192,'attri'=>49.83,'time'=>239287)); -$bid25=array(1=>array('wood'=>580,'clay'=>460,'iron'=>350,'crop'=>180,'pop'=>1,'cp'=>2,'attri'=>100,'time'=>2000),array('wood'=>740,'clay'=>590,'iron'=>450,'crop'=>230,'pop'=>1,'cp'=>3,'attri'=>90,'time'=>2620),array('wood'=>950,'clay'=>755,'iron'=>575,'crop'=>295,'pop'=>1,'cp'=>3,'attri'=>81,'time'=>3340),array('wood'=>1215,'clay'=>965,'iron'=>735,'crop'=>375,'pop'=>1,'cp'=>4,'attri'=>72.9,'time'=>4170),array('wood'=>1555,'clay'=>1235,'iron'=>940,'crop'=>485,'pop'=>1,'cp'=>5,'attri'=>65.61,'time'=>5140),array('wood'=>1995,'clay'=>1580,'iron'=>1205,'crop'=>620,'pop'=>1,'cp'=>6,'attri'=>59.05,'time'=>6260),array('wood'=>2550,'clay'=>2025,'iron'=>1540,'crop'=>790,'pop'=>1,'cp'=>7,'attri'=>53.14,'time'=>7570),array('wood'=>3265,'clay'=>2590,'iron'=>1970,'crop'=>1015,'pop'=>1,'cp'=>9,'attri'=>47.83,'time'=>9080),array('wood'=>4180,'clay'=>3315,'iron'=>2520,'crop'=>1295,'pop'=>1,'cp'=>10,'attri'=>43.05,'time'=>10830),array('wood'=>5350,'clay'=>4245,'iron'=>3230,'crop'=>1660,'pop'=>1,'cp'=>12,'attri'=>38.74,'time'=>12860),array('wood'=>6845,'clay'=>5430,'iron'=>4130,'crop'=>2125,'pop'=>2,'cp'=>15,'attri'=>34.87,'time'=>15220),array('wood'=>8765,'clay'=>6950,'iron'=>5290,'crop'=>2720,'pop'=>2,'cp'=>18,'attri'=>31.38,'time'=>17950),array('wood'=>11220,'clay'=>8900,'iron'=>6770,'crop'=>3480,'pop'=>2,'cp'=>21,'attri'=>28.24,'time'=>21130),array('wood'=>14360,'clay'=>11390,'iron'=>8665,'crop'=>4455,'pop'=>2,'cp'=>26,'attri'=>25.42,'time'=>24810),array('wood'=>18380,'clay'=>14580,'iron'=>11090,'crop'=>5705,'pop'=>2,'cp'=>31,'attri'=>22.88,'time'=>29080),array('wood'=>23530,'clay'=>18660,'iron'=>14200,'crop'=>7300,'pop'=>2,'cp'=>37,'attri'=>20.59,'time'=>34030),array('wood'=>30115,'clay'=>23885,'iron'=>18175,'crop'=>9345,'pop'=>2,'cp'=>44,'attri'=>18.53,'time'=>39770),array('wood'=>38550,'clay'=>30570,'iron'=>23260,'crop'=>11965,'pop'=>2,'cp'=>53,'attri'=>16.68,'time'=>46440),array('wood'=>49340,'clay'=>39130,'iron'=>29775,'crop'=>15315,'pop'=>2,'cp'=>64,'attri'=>15.01,'time'=>54170),array('wood'=>63155,'clay'=>50090,'iron'=>38110,'crop'=>19600,'pop'=>2,'cp'=>77,'attri'=>13.51,'time'=>63130)); -$bid26=array(1=>array('wood'=>550,'clay'=>800,'iron'=>750,'crop'=>250,'pop'=>1,'cp'=>6,'attri'=>100,'time'=>5000),array('wood'=>705,'clay'=>1025,'iron'=>960,'crop'=>320,'pop'=>1,'cp'=>7,'attri'=>90,'time'=>6100),array('wood'=>900,'clay'=>1310,'iron'=>1230,'crop'=>410,'pop'=>1,'cp'=>9,'attri'=>81,'time'=>7380),array('wood'=>1155,'clay'=>1680,'iron'=>1575,'crop'=>525,'pop'=>1,'cp'=>10,'attri'=>72.9,'time'=>8860),array('wood'=>1475,'clay'=>2145,'iron'=>2015,'crop'=>670,'pop'=>1,'cp'=>12,'attri'=>65.61,'time'=>10570),array('wood'=>1890,'clay'=>2750,'iron'=>2575,'crop'=>860,'pop'=>1,'cp'=>15,'attri'=>59.05,'time'=>12560),array('wood'=>2420,'clay'=>3520,'iron'=>3300,'crop'=>1100,'pop'=>1,'cp'=>18,'attri'=>53.14,'time'=>14880),array('wood'=>3095,'clay'=>4505,'iron'=>4220,'crop'=>1405,'pop'=>1,'cp'=>21,'attri'=>47.83,'time'=>17560),array('wood'=>3965,'clay'=>5765,'iron'=>5405,'crop'=>1800,'pop'=>1,'cp'=>26,'attri'=>43.05,'time'=>20660),array('wood'=>5075,'clay'=>7380,'iron'=>6920,'crop'=>2305,'pop'=>1,'cp'=>31,'attri'=>38.74,'time'=>24270),array('wood'=>6495,'clay'=>9445,'iron'=>8855,'crop'=>2950,'pop'=>2,'cp'=>37,'attri'=>34.87,'time'=>28450),array('wood'=>8310,'clay'=>12090,'iron'=>11335,'crop'=>3780,'pop'=>2,'cp'=>45,'attri'=>31.38,'time'=>33306),array('wood'=>10640,'clay'=>15475,'iron'=>14505,'crop'=>4835,'pop'=>2,'cp'=>53,'attri'=>28.24,'time'=>38935),array('wood'=>13615,'clay'=>19805,'iron'=>18570,'crop'=>6190,'pop'=>2,'cp'=>64,'attri'=>25.42,'time'=>45465),array('wood'=>17430,'clay'=>25355,'iron'=>23770,'crop'=>7925,'pop'=>2,'cp'=>77,'attri'=>22.88,'time'=>53039),array('wood'=>22310,'clay'=>32450,'iron'=>30425,'crop'=>10140,'pop'=>2,'cp'=>92,'attri'=>20.59,'time'=>61825),array('wood'=>28560,'clay'=>41540,'iron'=>38940,'crop'=>12980,'pop'=>2,'cp'=>111,'attri'=>18.53,'time'=>72018),array('wood'=>36555,'clay'=>53170,'iron'=>49845,'crop'=>16615,'pop'=>2,'cp'=>133,'attri'=>16.68,'time'=>83840),array('wood'=>46790,'clay'=>68055,'iron'=>63805,'crop'=>21270,'pop'=>2,'cp'=>160,'attri'=>15.01,'time'=>97555),array('wood'=>59890,'clay'=>87110,'iron'=>81675,'crop'=>27225,'pop'=>2,'cp'=>192,'attri'=>13.51,'time'=>113464)); -$bid27=array(1=>array('wood'=>2880,'clay'=>2740,'iron'=>2580,'crop'=>990,'pop'=>4,'cp'=>7,'attri'=>0,'time'=>8000),array('wood'=>3630,'clay'=>3450,'iron'=>3250,'crop'=>1245,'pop'=>2,'cp'=>9,'attri'=>0,'time'=>9580),array('wood'=>4570,'clay'=>4350,'iron'=>4095,'crop'=>1570,'pop'=>2,'cp'=>10,'attri'=>0,'time'=>11410),array('wood'=>5760,'clay'=>5480,'iron'=>5160,'crop'=>1980,'pop'=>2,'cp'=>12,'attri'=>0,'time'=>13540),array('wood'=>7260,'clay'=>6905,'iron'=>6505,'crop'=>2495,'pop'=>2,'cp'=>15,'attri'=>0,'time'=>16010),array('wood'=>9145,'clay'=>8700,'iron'=>8195,'crop'=>3145,'pop'=>3,'cp'=>18,'attri'=>0,'time'=>18870),array('wood'=>11525,'clay'=>10965,'iron'=>10325,'crop'=>3960,'pop'=>3,'cp'=>21,'attri'=>0,'time'=>22180),array('wood'=>14520,'clay'=>13815,'iron'=>13010,'crop'=>4990,'pop'=>3,'cp'=>26,'attri'=>0,'time'=>26030),array('wood'=>18295,'clay'=>17405,'iron'=>16390,'crop'=>6290,'pop'=>3,'cp'=>31,'attri'=>0,'time'=>30500),array('wood'=>23055,'clay'=>21930,'iron'=>20650,'crop'=>7925,'pop'=>3,'cp'=>37,'attri'=>1,'time'=>35680),array('wood'=>29045,'clay'=>27635,'iron'=>26020,'crop'=>9985,'pop'=>3,'cp'=>45,'attri'=>1,'time'=>41690),array('wood'=>36600,'clay'=>34820,'iron'=>32785,'crop'=>12580,'pop'=>3,'cp'=>53,'attri'=>1,'time'=>48660),array('wood'=>46115,'clay'=>43875,'iron'=>41310,'crop'=>15850,'pop'=>3,'cp'=>64,'attri'=>1,'time'=>56740),array('wood'=>58105,'clay'=>55280,'iron'=>52050,'crop'=>19975,'pop'=>3,'cp'=>77,'attri'=>1,'time'=>66120),array('wood'=>73210,'clay'=>69655,'iron'=>65585,'crop'=>25165,'pop'=>3,'cp'=>92,'attri'=>1,'time'=>77000),array('wood'=>92245,'clay'=>87760,'iron'=>82640,'crop'=>31710,'pop'=>4,'cp'=>111,'attri'=>1,'time'=>89620),array('wood'=>116230,'clay'=>110580,'iron'=>104125,'crop'=>39955,'pop'=>4,'cp'=>133,'attri'=>1,'time'=>104260),array('wood'=>146450,'clay'=>139330,'iron'=>131195,'crop'=>50340,'pop'=>4,'cp'=>160,'attri'=>1,'time'=>121240),array('wood'=>184530,'clay'=>175560,'iron'=>165305,'crop'=>63430,'pop'=>4,'cp'=>192,'attri'=>1,'time'=>140940),array('wood'=>232505,'clay'=>221205,'iron'=>208285,'crop'=>79925,'pop'=>4,'cp'=>230,'attri'=>1,'time'=>163790)); -$bid28=array(1=>array('wood'=>1400,'clay'=>1330,'iron'=>1200,'crop'=>400,'pop'=>3,'cp'=>4,'attri'=>110,'time'=>3000),array('wood'=>1790,'clay'=>1700,'iron'=>1535,'crop'=>510,'pop'=>2,'cp'=>4,'attri'=>120,'time'=>3780),array('wood'=>2295,'clay'=>2180,'iron'=>1965,'crop'=>655,'pop'=>2,'cp'=>5,'attri'=>130,'time'=>4680),array('wood'=>2935,'clay'=>2790,'iron'=>2515,'crop'=>840,'pop'=>2,'cp'=>6,'attri'=>140,'time'=>5730),array('wood'=>3760,'clay'=>3570,'iron'=>3220,'crop'=>1075,'pop'=>2,'cp'=>7,'attri'=>150,'time'=>6950),array('wood'=>4810,'clay'=>4570,'iron'=>4125,'crop'=>1375,'pop'=>2,'cp'=>9,'attri'=>160,'time'=>8360),array('wood'=>6155,'clay'=>5850,'iron'=>5280,'crop'=>1760,'pop'=>2,'cp'=>11,'attri'=>170,'time'=>10000),array('wood'=>7880,'clay'=>7485,'iron'=>6755,'crop'=>2250,'pop'=>2,'cp'=>13,'attri'=>180,'time'=>11900),array('wood'=>10090,'clay'=>9585,'iron'=>8645,'crop'=>2880,'pop'=>2,'cp'=>15,'attri'=>190,'time'=>14110),array('wood'=>12915,'clay'=>12265,'iron'=>11070,'crop'=>3690,'pop'=>2,'cp'=>19,'attri'=>200,'time'=>16660),array('wood'=>16530,'clay'=>15700,'iron'=>14165,'crop'=>4720,'pop'=>3,'cp'=>22,'attri'=>210,'time'=>19630),array('wood'=>21155,'clay'=>20100,'iron'=>18135,'crop'=>6045,'pop'=>3,'cp'=>27,'attri'=>220,'time'=>23070),array('wood'=>27080,'clay'=>25725,'iron'=>23210,'crop'=>7735,'pop'=>3,'cp'=>32,'attri'=>230,'time'=>27060),array('wood'=>34660,'clay'=>32930,'iron'=>29710,'crop'=>9905,'pop'=>3,'cp'=>39,'attri'=>240,'time'=>31690),array('wood'=>44370,'clay'=>42150,'iron'=>38030,'crop'=>12675,'pop'=>3,'cp'=>46,'attri'=>250,'time'=>37060),array('wood'=>56790,'clay'=>53950,'iron'=>48680,'crop'=>16225,'pop'=>3,'cp'=>55,'attri'=>260,'time'=>43290),array('wood'=>72690,'clay'=>69060,'iron'=>62310,'crop'=>20770,'pop'=>3,'cp'=>67,'attri'=>270,'time'=>50520),array('wood'=>93045,'clay'=>88395,'iron'=>79755,'crop'=>26585,'pop'=>3,'cp'=>80,'attri'=>280,'time'=>58900),array('wood'=>119100,'clay'=>113145,'iron'=>102085,'crop'=>34030,'pop'=>3,'cp'=>96,'attri'=>290,'time'=>68630),array('wood'=>152445,'clay'=>144825,'iron'=>130670,'crop'=>43555,'pop'=>3,'cp'=>115,'attri'=>300,'time'=>79910)); -$bid29=array(1=>array('wood'=>630,'clay'=>420,'iron'=>780,'crop'=>360,'pop'=>4,'cp'=>1,'attri'=>100,'time'=>2000),array('wood'=>805,'clay'=>540,'iron'=>1000,'crop'=>460,'pop'=>2,'cp'=>1,'attri'=>90,'time'=>2620),array('wood'=>1035,'clay'=>690,'iron'=>1275,'crop'=>585,'pop'=>2,'cp'=>2,'attri'=>81,'time'=>3340),array('wood'=>1320,'clay'=>885,'iron'=>1635,'crop'=>750,'pop'=>2,'cp'=>2,'attri'=>72.9,'time'=>4170),array('wood'=>1695,'clay'=>1125,'iron'=>2100,'crop'=>960,'pop'=>2,'cp'=>2,'attri'=>65.61,'time'=>5140),array('wood'=>2160,'clay'=>1440,'iron'=>2685,'crop'=>1230,'pop'=>3,'cp'=>3,'attri'=>59.05,'time'=>6260),array('wood'=>2775,'clay'=>1845,'iron'=>3435,'crop'=>1590,'pop'=>3,'cp'=>4,'attri'=>53.14,'time'=>7570),array('wood'=>3540,'clay'=>2370,'iron'=>4395,'crop'=>2025,'pop'=>3,'cp'=>4,'attri'=>47.83,'time'=>9080),array('wood'=>4545,'clay'=>3030,'iron'=>5625,'crop'=>2595,'pop'=>3,'cp'=>5,'attri'=>43.05,'time'=>10830),array('wood'=>5805,'clay'=>3870,'iron'=>7200,'crop'=>3315,'pop'=>3,'cp'=>6,'attri'=>38.74,'time'=>12860),array('wood'=>7460,'clay'=>4965,'iron'=>9210,'crop'=>4245,'pop'=>3,'cp'=>7,'attri'=>34.87,'time'=>15220),array('wood'=>9525,'clay'=>6345,'iron'=>11790,'crop'=>5445,'pop'=>3,'cp'=>9,'attri'=>31.38,'time'=>17950),array('wood'=>12180,'clay'=>8130,'iron'=>15090,'crop'=>6960,'pop'=>3,'cp'=>11,'attri'=>28.24,'time'=>21130),array('wood'=>15600,'clay'=>10395,'iron'=>19305,'crop'=>8910,'pop'=>3,'cp'=>13,'attri'=>25.42,'time'=>24810),array('wood'=>19965,'clay'=>13305,'iron'=>24720,'crop'=>11415,'pop'=>3,'cp'=>15,'attri'=>22.88,'time'=>29080),array('wood'=>25560,'clay'=>17040,'iron'=>31635,'crop'=>14610,'pop'=>4,'cp'=>18,'attri'=>20.59,'time'=>34030),array('wood'=>32715,'clay'=>21810,'iron'=>40500,'crop'=>18690,'pop'=>4,'cp'=>22,'attri'=>18.53,'time'=>39770),array('wood'=>41870,'clay'=>27915,'iron'=>51840,'crop'=>23925,'pop'=>4,'cp'=>27,'attri'=>16.68,'time'=>46440),array('wood'=>53595,'clay'=>35730,'iron'=>66360,'crop'=>30630,'pop'=>4,'cp'=>32,'attri'=>15.01,'time'=>54170),array('wood'=>68595,'clay'=>45735,'iron'=>84930,'crop'=>39195,'pop'=>4,'cp'=>38,'attri'=>13.51,'time'=>63130)); -$bid30=array(1=>array('wood'=>780,'clay'=>420,'iron'=>660,'crop'=>300,'pop'=>5,'cp'=>2,'attri'=>100,'time'=>2200),array('wood'=>1000,'clay'=>540,'iron'=>845,'crop'=>385,'pop'=>3,'cp'=>3,'attri'=>90,'time'=>2850),array('wood'=>1280,'clay'=>690,'iron'=>1080,'crop'=>490,'pop'=>3,'cp'=>3,'attri'=>81,'time'=>3610),array('wood'=>1635,'clay'=>880,'iron'=>1385,'crop'=>630,'pop'=>3,'cp'=>4,'attri'=>72.9,'time'=>4490),array('wood'=>2095,'clay'=>1125,'iron'=>1770,'crop'=>805,'pop'=>3,'cp'=>5,'attri'=>65.61,'time'=>5500),array('wood'=>2680,'clay'=>1445,'iron'=>2270,'crop'=>1030,'pop'=>3,'cp'=>6,'attri'=>59.05,'time'=>6680),array('wood'=>3430,'clay'=>1845,'iron'=>2905,'crop'=>1320,'pop'=>3,'cp'=>7,'attri'=>53.14,'time'=>8050),array('wood'=>4390,'clay'=>2365,'iron'=>3715,'crop'=>1690,'pop'=>3,'cp'=>9,'attri'=>47.83,'time'=>9640),array('wood'=>5620,'clay'=>3025,'iron'=>4755,'crop'=>2160,'pop'=>3,'cp'=>10,'attri'=>43.05,'time'=>11480),array('wood'=>7195,'clay'=>3875,'iron'=>6085,'crop'=>2765,'pop'=>3,'cp'=>12,'attri'=>38.74,'time'=>13620),array('wood'=>9210,'clay'=>4960,'iron'=>7790,'crop'=>3540,'pop'=>4,'cp'=>15,'attri'=>34.87,'time'=>16100),array('wood'=>11785,'clay'=>6345,'iron'=>9975,'crop'=>4535,'pop'=>4,'cp'=>18,'attri'=>31.38,'time'=>18980),array('wood'=>15085,'clay'=>8125,'iron'=>12765,'crop'=>5805,'pop'=>4,'cp'=>21,'attri'=>28.24,'time'=>22310),array('wood'=>19310,'clay'=>10400,'iron'=>16340,'crop'=>7430,'pop'=>4,'cp'=>26,'attri'=>25.42,'time'=>26180),array('wood'=>24720,'clay'=>13310,'iron'=>20915,'crop'=>9505,'pop'=>4,'cp'=>31,'attri'=>22.88,'time'=>30670),array('wood'=>31640,'clay'=>17035,'iron'=>26775,'crop'=>12170,'pop'=>4,'cp'=>37,'attri'=>20.59,'time'=>35880),array('wood'=>40500,'clay'=>21810,'iron'=>34270,'crop'=>15575,'pop'=>4,'cp'=>44,'attri'=>18.53,'time'=>41920),array('wood'=>51840,'clay'=>27915,'iron'=>43865,'crop'=>19940,'pop'=>4,'cp'=>53,'attri'=>16.68,'time'=>48930),array('wood'=>66355,'clay'=>35730,'iron'=>56145,'crop'=>25520,'pop'=>4,'cp'=>64,'attri'=>15.01,'time'=>57060),array('wood'=>84935,'clay'=>45735,'iron'=>71870,'crop'=>32665,'pop'=>4,'cp'=>77,'attri'=>13.51,'time'=>66490)); -$bid31=array(1=>array('wood'=>70,'clay'=>90,'iron'=>170,'crop'=>70,'pop'=>0,'cp'=>1,'attri'=>3,'time'=>2000),array('wood'=>90,'clay'=>115,'iron'=>220,'crop'=>90,'pop'=>0,'cp'=>1,'attri'=>6,'time'=>2620),array('wood'=>115,'clay'=>145,'iron'=>280,'crop'=>115,'pop'=>0,'cp'=>2,'attri'=>9,'time'=>3340),array('wood'=>145,'clay'=>190,'iron'=>355,'crop'=>145,'pop'=>0,'cp'=>2,'attri'=>13,'time'=>4170),array('wood'=>190,'clay'=>240,'iron'=>455,'crop'=>190,'pop'=>0,'cp'=>2,'attri'=>16,'time'=>5140),array('wood'=>240,'clay'=>310,'iron'=>585,'crop'=>240,'pop'=>1,'cp'=>3,'attri'=>19,'time'=>6260),array('wood'=>310,'clay'=>395,'iron'=>750,'crop'=>310,'pop'=>1,'cp'=>4,'attri'=>23,'time'=>7570),array('wood'=>395,'clay'=>505,'iron'=>955,'crop'=>395,'pop'=>1,'cp'=>4,'attri'=>27,'time'=>9080),array('wood'=>505,'clay'=>650,'iron'=>1225,'crop'=>505,'pop'=>1,'cp'=>5,'attri'=>30,'time'=>10830),array('wood'=>645,'clay'=>830,'iron'=>1570,'crop'=>645,'pop'=>1,'cp'=>6,'attri'=>34,'time'=>12860),array('wood'=>825,'clay'=>1065,'iron'=>2005,'crop'=>825,'pop'=>1,'cp'=>7,'attri'=>38,'time'=>15220),array('wood'=>1060,'clay'=>1360,'iron'=>2570,'crop'=>1060,'pop'=>1,'cp'=>9,'attri'=>43,'time'=>17950),array('wood'=>1355,'clay'=>1740,'iron'=>3290,'crop'=>1355,'pop'=>1,'cp'=>11,'attri'=>47,'time'=>21130),array('wood'=>1735,'clay'=>2230,'iron'=>4210,'crop'=>1735,'pop'=>1,'cp'=>13,'attri'=>51,'time'=>24810),array('wood'=>2220,'clay'=>2850,'iron'=>5390,'crop'=>2220,'pop'=>1,'cp'=>15,'attri'=>56,'time'=>29080),array('wood'=>2840,'clay'=>3650,'iron'=>6895,'crop'=>2840,'pop'=>2,'cp'=>18,'attri'=>60,'time'=>34030),array('wood'=>3635,'clay'=>4675,'iron'=>8825,'crop'=>3635,'pop'=>2,'cp'=>22,'attri'=>65,'time'=>39770),array('wood'=>4650,'clay'=>5980,'iron'=>11300,'crop'=>4650,'pop'=>2,'cp'=>27,'attri'=>70,'time'=>46440),array('wood'=>5955,'clay'=>7655,'iron'=>14460,'crop'=>5955,'pop'=>2,'cp'=>32,'attri'=>75,'time'=>54170),array('wood'=>7620,'clay'=>9800,'iron'=>18510,'crop'=>7620,'pop'=>2,'cp'=>38,'attri'=>81,'time'=>63130)); -$bid32=array(1=>array('wood'=>120,'clay'=>200,'iron'=>0,'crop'=>80,'pop'=>0,'cp'=>1,'attri'=>2,'time'=>2000),array('wood'=>155,'clay'=>255,'iron'=>0,'crop'=>100,'pop'=>0,'cp'=>1,'attri'=>4,'time'=>2620),array('wood'=>195,'clay'=>330,'iron'=>0,'crop'=>130,'pop'=>0,'cp'=>2,'attri'=>6,'time'=>3340),array('wood'=>250,'clay'=>420,'iron'=>0,'crop'=>170,'pop'=>0,'cp'=>2,'attri'=>8,'time'=>4170),array('wood'=>320,'clay'=>535,'iron'=>0,'crop'=>215,'pop'=>0,'cp'=>2,'attri'=>10,'time'=>5140),array('wood'=>410,'clay'=>685,'iron'=>0,'crop'=>275,'pop'=>1,'cp'=>3,'attri'=>13,'time'=>6260),array('wood'=>530,'clay'=>880,'iron'=>0,'crop'=>350,'pop'=>1,'cp'=>4,'attri'=>15,'time'=>7570),array('wood'=>675,'clay'=>1125,'iron'=>0,'crop'=>450,'pop'=>1,'cp'=>4,'attri'=>17,'time'=>9080),array('wood'=>865,'clay'=>1440,'iron'=>0,'crop'=>575,'pop'=>1,'cp'=>5,'attri'=>20,'time'=>10830),array('wood'=>1105,'clay'=>1845,'iron'=>0,'crop'=>740,'pop'=>1,'cp'=>6,'attri'=>22,'time'=>12860),array('wood'=>1415,'clay'=>2360,'iron'=>0,'crop'=>945,'pop'=>1,'cp'=>7,'attri'=>24,'time'=>15220),array('wood'=>1815,'clay'=>3020,'iron'=>0,'crop'=>1210,'pop'=>1,'cp'=>9,'attri'=>27,'time'=>17950),array('wood'=>2320,'clay'=>3870,'iron'=>0,'crop'=>1545,'pop'=>1,'cp'=>11,'attri'=>29,'time'=>21130),array('wood'=>2970,'clay'=>4950,'iron'=>0,'crop'=>1980,'pop'=>1,'cp'=>13,'attri'=>32,'time'=>24810),array('wood'=>3805,'clay'=>6340,'iron'=>0,'crop'=>2535,'pop'=>1,'cp'=>15,'attri'=>35,'time'=>29080),array('wood'=>4870,'clay'=>8115,'iron'=>0,'crop'=>3245,'pop'=>2,'cp'=>18,'attri'=>37,'time'=>34030),array('wood'=>6230,'clay'=>10385,'iron'=>0,'crop'=>4155,'pop'=>2,'cp'=>22,'attri'=>40,'time'=>39770),array('wood'=>7975,'clay'=>13290,'iron'=>0,'crop'=>5315,'pop'=>2,'cp'=>27,'attri'=>43,'time'=>46440),array('wood'=>10210,'clay'=>17015,'iron'=>0,'crop'=>6805,'pop'=>2,'cp'=>32,'attri'=>46,'time'=>54170),array('wood'=>13065,'clay'=>21780,'iron'=>0,'crop'=>8710,'pop'=>2,'cp'=>38,'attri'=>49,'time'=>63130)); -$bid33=array(1=>array('wood'=>160,'clay'=>100,'iron'=>80,'crop'=>60,'pop'=>0,'cp'=>1,'attri'=>2,'time'=>2000),array('wood'=>205,'clay'=>130,'iron'=>100,'crop'=>75,'pop'=>0,'cp'=>1,'attri'=>5,'time'=>2620),array('wood'=>260,'clay'=>165,'iron'=>130,'crop'=>100,'pop'=>0,'cp'=>2,'attri'=>8,'time'=>3340),array('wood'=>335,'clay'=>210,'iron'=>170,'crop'=>125,'pop'=>0,'cp'=>2,'attri'=>10,'time'=>4170),array('wood'=>430,'clay'=>270,'iron'=>215,'crop'=>160,'pop'=>0,'cp'=>2,'attri'=>13,'time'=>5140),array('wood'=>550,'clay'=>345,'iron'=>275,'crop'=>205,'pop'=>1,'cp'=>3,'attri'=>16,'time'=>6260),array('wood'=>705,'clay'=>440,'iron'=>350,'crop'=>265,'pop'=>1,'cp'=>4,'attri'=>19,'time'=>7570),array('wood'=>900,'clay'=>565,'iron'=>450,'crop'=>340,'pop'=>1,'cp'=>4,'attri'=>22,'time'=>9080),array('wood'=>1155,'clay'=>720,'iron'=>575,'crop'=>430,'pop'=>1,'cp'=>5,'attri'=>25,'time'=>10830),array('wood'=>1475,'clay'=>920,'iron'=>740,'crop'=>555,'pop'=>1,'cp'=>6,'attri'=>28,'time'=>12860),array('wood'=>1890,'clay'=>1180,'iron'=>945,'crop'=>710,'pop'=>1,'cp'=>7,'attri'=>31,'time'=>15220),array('wood'=>2420,'clay'=>1510,'iron'=>1210,'crop'=>905,'pop'=>1,'cp'=>9,'attri'=>34,'time'=>17950),array('wood'=>3095,'clay'=>1935,'iron'=>1545,'crop'=>1160,'pop'=>1,'cp'=>11,'attri'=>38,'time'=>21130),array('wood'=>3960,'clay'=>2475,'iron'=>1980,'crop'=>1485,'pop'=>1,'cp'=>13,'attri'=>41,'time'=>24810),array('wood'=>5070,'clay'=>3170,'iron'=>2535,'crop'=>1900,'pop'=>1,'cp'=>15,'attri'=>45,'time'=>29080),array('wood'=>6490,'clay'=>4055,'iron'=>3245,'crop'=>2435,'pop'=>2,'cp'=>18,'attri'=>48,'time'=>34030),array('wood'=>8310,'clay'=>5190,'iron'=>4155,'crop'=>3115,'pop'=>2,'cp'=>22,'attri'=>52,'time'=>39770),array('wood'=>10635,'clay'=>6645,'iron'=>5315,'crop'=>3990,'pop'=>2,'cp'=>27,'attri'=>56,'time'=>46440),array('wood'=>13610,'clay'=>8505,'iron'=>6805,'crop'=>5105,'pop'=>2,'cp'=>32,'attri'=>60,'time'=>54170),array('wood'=>17420,'clay'=>10890,'iron'=>8710,'crop'=>6535,'pop'=>2,'cp'=>38,'attri'=>64,'time'=>63130)); -$bid34=array(1=>array('wood'=>155,'clay'=>130,'iron'=>125,'crop'=>70,'pop'=>2,'cp'=>1,'attri'=>110,'time'=>2200),array('wood'=>200,'clay'=>165,'iron'=>160,'crop'=>90,'pop'=>1,'cp'=>1,'attri'=>120,'time'=>3150),array('wood'=>255,'clay'=>215,'iron'=>205,'crop'=>115,'pop'=>1,'cp'=>2,'attri'=>130,'time'=>4260),array('wood'=>325,'clay'=>275,'iron'=>260,'crop'=>145,'pop'=>1,'cp'=>2,'attri'=>140,'time'=>5540),array('wood'=>415,'clay'=>350,'iron'=>335,'crop'=>190,'pop'=>1,'cp'=>2,'attri'=>150,'time'=>7020),array('wood'=>535,'clay'=>445,'iron'=>430,'crop'=>240,'pop'=>2,'cp'=>3,'attri'=>160,'time'=>8750),array('wood'=>680,'clay'=>570,'iron'=>550,'crop'=>310,'pop'=>2,'cp'=>4,'attri'=>170,'time'=>10750),array('wood'=>875,'clay'=>730,'iron'=>705,'crop'=>395,'pop'=>2,'cp'=>4,'attri'=>180,'time'=>13070),array('wood'=>1115,'clay'=>935,'iron'=>900,'crop'=>505,'pop'=>2,'cp'=>5,'attri'=>190,'time'=>15760),array('wood'=>1430,'clay'=>1200,'iron'=>1155,'crop'=>645,'pop'=>2,'cp'=>6,'attri'=>200,'time'=>18880),array('wood'=>1830,'clay'=>1535,'iron'=>1475,'crop'=>825,'pop'=>2,'cp'=>7,'attri'=>210,'time'=>22500),array('wood'=>2340,'clay'=>1965,'iron'=>1890,'crop'=>1060,'pop'=>2,'cp'=>9,'attri'=>220,'time'=>26700),array('wood'=>3000,'clay'=>2515,'iron'=>2420,'crop'=>1355,'pop'=>2,'cp'=>11,'attri'=>230,'time'=>31570),array('wood'=>3840,'clay'=>3220,'iron'=>3095,'crop'=>1735,'pop'=>2,'cp'=>13,'attri'=>240,'time'=>37220),array('wood'=>4910,'clay'=>4120,'iron'=>3960,'crop'=>2220,'pop'=>2,'cp'=>15,'attri'=>250,'time'=>43780),array('wood'=>6290,'clay'=>5275,'iron'=>5070,'crop'=>2840,'pop'=>3,'cp'=>18,'attri'=>260,'time'=>51380),array('wood'=>8050,'clay'=>6750,'iron'=>6490,'crop'=>3635,'pop'=>3,'cp'=>22,'attri'=>270,'time'=>60200),array('wood'=>10300,'clay'=>8640,'iron'=>8310,'crop'=>4650,'pop'=>3,'cp'=>27,'attri'=>280,'time'=>70430),array('wood'=>13185,'clay'=>11060,'iron'=>10635,'crop'=>5955,'pop'=>3,'cp'=>32,'attri'=>290,'time'=>82300),array('wood'=>16880,'clay'=>14155,'iron'=>13610,'crop'=>7620,'pop'=>3,'cp'=>38,'attri'=>300,'time'=>96070)); -$bid35=array(1=>array('wood'=>1460,'clay'=>930,'iron'=>1250,'crop'=>1740,'pop'=>6,'cp'=>5,'attri'=>1,'time'=>8000),array('wood'=>2045,'clay'=>1300,'iron'=>1750,'crop'=>2435,'pop'=>3,'cp'=>6,'attri'=>2,'time'=>9880),array('wood'=>2860,'clay'=>1825,'iron'=>2450,'crop'=>3410,'pop'=>3,'cp'=>7,'attri'=>3,'time'=>12060),array('wood'=>4005,'clay'=>2550,'iron'=>3430,'crop'=>4775,'pop'=>3,'cp'=>8,'attri'=>4,'time'=>14590),array('wood'=>5610,'clay'=>3575,'iron'=>4800,'crop'=>6685,'pop'=>3,'cp'=>10,'attri'=>5,'time'=>17530),array('wood'=>7850,'clay'=>5000,'iron'=>6725,'crop'=>9360,'pop'=>4,'cp'=>12,'attri'=>6,'time'=>20930),array('wood'=>10995,'clay'=>7000,'iron'=>9410,'crop'=>13100,'pop'=>4,'cp'=>14,'attri'=>7,'time'=>24880),array('wood'=>15390,'clay'=>9805,'iron'=>13175,'crop'=>18340,'pop'=>4,'cp'=>17,'attri'=>8,'time'=>29460),array('wood'=>21545,'clay'=>13725,'iron'=>18445,'crop'=>25680,'pop'=>4,'cp'=>21,'attri'=>9,'time'=>34770),array('wood'=>30165,'clay'=>19215,'iron'=>25825,'crop'=>35950,'pop'=>4,'cp'=>25,'attri'=>10,'time'=>40930)); -$bid36=array(1=>array('wood'=>100,'clay'=>100,'iron'=>100,'crop'=>100,'pop'=>4,'cp'=>1,'attri'=>10,'time'=>2000),array('wood'=>130,'clay'=>130,'iron'=>130,'crop'=>130,'pop'=>2,'cp'=>1,'attri'=>22,'time'=>2320),array('wood'=>165,'clay'=>165,'iron'=>165,'crop'=>165,'pop'=>2,'cp'=>2,'attri'=>35,'time'=>2690),array('wood'=>210,'clay'=>210,'iron'=>210,'crop'=>210,'pop'=>2,'cp'=>2,'attri'=>49,'time'=>3120),array('wood'=>270,'clay'=>270,'iron'=>270,'crop'=>270,'pop'=>2,'cp'=>2,'attri'=>64,'time'=>3620),array('wood'=>345,'clay'=>345,'iron'=>345,'crop'=>345,'pop'=>3,'cp'=>3,'attri'=>80,'time'=>4200),array('wood'=>440,'clay'=>440,'iron'=>440,'crop'=>440,'pop'=>3,'cp'=>4,'attri'=>97,'time'=>4870),array('wood'=>565,'clay'=>565,'iron'=>565,'crop'=>565,'pop'=>3,'cp'=>4,'attri'=>115,'time'=>5650),array('wood'=>720,'clay'=>720,'iron'=>720,'crop'=>720,'pop'=>3,'cp'=>5,'attri'=>134,'time'=>6560),array('wood'=>920,'clay'=>920,'iron'=>920,'crop'=>920,'pop'=>3,'cp'=>6,'attri'=>154,'time'=>7610),array('wood'=>1180,'clay'=>1180,'iron'=>1180,'crop'=>1180,'pop'=>3,'cp'=>7,'attri'=>175,'time'=>8820),array('wood'=>1510,'clay'=>1510,'iron'=>1510,'crop'=>1510,'pop'=>3,'cp'=>9,'attri'=>196,'time'=>10230),array('wood'=>1935,'clay'=>1935,'iron'=>1935,'crop'=>1935,'pop'=>3,'cp'=>11,'attri'=>218,'time'=>11870),array('wood'=>2475,'clay'=>2475,'iron'=>2475,'crop'=>2475,'pop'=>3,'cp'=>13,'attri'=>241,'time'=>13770),array('wood'=>3170,'clay'=>3170,'iron'=>3170,'crop'=>3170,'pop'=>3,'cp'=>15,'attri'=>265,'time'=>15980),array('wood'=>4055,'clay'=>4055,'iron'=>4055,'crop'=>4055,'pop'=>4,'cp'=>18,'attri'=>290,'time'=>18530),array('wood'=>5190,'clay'=>5190,'iron'=>5190,'crop'=>5190,'pop'=>4,'cp'=>22,'attri'=>316,'time'=>21500),array('wood'=>6645,'clay'=>6645,'iron'=>6645,'crop'=>6645,'pop'=>4,'cp'=>27,'attri'=>343,'time'=>24940),array('wood'=>8505,'clay'=>8505,'iron'=>8505,'crop'=>8505,'pop'=>4,'cp'=>32,'attri'=>371,'time'=>28930),array('wood'=>10890,'clay'=>10890,'iron'=>10890,'crop'=>10890,'pop'=>4,'cp'=>38,'attri'=>400,'time'=>33550)); -$bid37=array(1=>array('wood'=>700,'clay'=>670,'iron'=>700,'crop'=>240,'pop'=>2,'cp'=>1,'attri'=>0,'time'=>2300),array('wood'=>930,'clay'=>890,'iron'=>930,'crop'=>320,'pop'=>1,'cp'=>1,'attri'=>0,'time'=>2670),array('wood'=>1240,'clay'=>1185,'iron'=>1240,'crop'=>425,'pop'=>1,'cp'=>2,'attri'=>0,'time'=>3090),array('wood'=>1645,'clay'=>1575,'iron'=>1645,'crop'=>565,'pop'=>1,'cp'=>2,'attri'=>0,'time'=>3590),array('wood'=>2190,'clay'=>2095,'iron'=>2190,'crop'=>750,'pop'=>1,'cp'=>2,'attri'=>0,'time'=>4160),array('wood'=>2915,'clay'=>2790,'iron'=>2915,'crop'=>1000,'pop'=>2,'cp'=>3,'attri'=>0,'time'=>4830),array('wood'=>3875,'clay'=>3710,'iron'=>3875,'crop'=>1330,'pop'=>2,'cp'=>4,'attri'=>0,'time'=>5600),array('wood'=>5155,'clay'=>4930,'iron'=>5155,'crop'=>1765,'pop'=>2,'cp'=>4,'attri'=>0,'time'=>6500),array('wood'=>6855,'clay'=>6560,'iron'=>6855,'crop'=>2350,'pop'=>2,'cp'=>5,'attri'=>0,'time'=>7540),array('wood'=>9115,'clay'=>8725,'iron'=>9115,'crop'=>3125,'pop'=>2,'cp'=>6,'attri'=>1,'time'=>8750),array('wood'=>12125,'clay'=>11605,'iron'=>12125,'crop'=>4155,'pop'=>2,'cp'=>7,'attri'=>1,'time'=>10150),array('wood'=>16125,'clay'=>15435,'iron'=>16125,'crop'=>5530,'pop'=>2,'cp'=>9,'attri'=>1,'time'=>11770),array('wood'=>21445,'clay'=>20525,'iron'=>21445,'crop'=>7350,'pop'=>2,'cp'=>11,'attri'=>1,'time'=>13650),array('wood'=>28520,'clay'=>27300,'iron'=>28520,'crop'=>9780,'pop'=>2,'cp'=>13,'attri'=>1,'time'=>15840),array('wood'=>37935,'clay'=>36310,'iron'=>37935,'crop'=>13005,'pop'=>2,'cp'=>15,'attri'=>2,'time'=>18370),array('wood'=>50450,'clay'=>48290,'iron'=>50450,'crop'=>17300,'pop'=>3,'cp'=>18,'attri'=>2,'time'=>21310),array('wood'=>67100,'clay'=>64225,'iron'=>67100,'crop'=>23005,'pop'=>3,'cp'=>22,'attri'=>2,'time'=>24720),array('wood'=>89245,'clay'=>85420,'iron'=>89245,'crop'=>30600,'pop'=>3,'cp'=>27,'attri'=>2,'time'=>28680),array('wood'=>118695,'clay'=>113605,'iron'=>118695,'crop'=>40695,'pop'=>3,'cp'=>32,'attri'=>2,'time'=>33260),array('wood'=>157865,'clay'=>151095,'iron'=>157865,'crop'=>54125,'pop'=>3,'cp'=>38,'attri'=>3,'time'=>38590)); -$bid38=array(1=>array('wood'=>650,'clay'=>800,'iron'=>450,'crop'=>200,'pop'=>1,'cp'=>1,'attri'=>3600,'time'=>9000),array('wood'=>830,'clay'=>1025,'iron'=>575,'crop'=>255,'pop'=>1,'cp'=>1,'attri'=>5100,'time'=>10740),array('wood'=>1065,'clay'=>1310,'iron'=>735,'crop'=>330,'pop'=>1,'cp'=>2,'attri'=>6900,'time'=>12760),array('wood'=>1365,'clay'=>1680,'iron'=>945,'crop'=>420,'pop'=>1,'cp'=>2,'attri'=>9300,'time'=>15100),array('wood'=>1745,'clay'=>2145,'iron'=>1210,'crop'=>535,'pop'=>1,'cp'=>2,'attri'=>12000,'time'=>17820),array('wood'=>2235,'clay'=>2750,'iron'=>1545,'crop'=>685,'pop'=>1,'cp'=>3,'attri'=>15000,'time'=>20970),array('wood'=>2860,'clay'=>3520,'iron'=>1980,'crop'=>880,'pop'=>1,'cp'=>4,'attri'=>18900,'time'=>24620),array('wood'=>3660,'clay'=>4505,'iron'=>2535,'crop'=>1125,'pop'=>1,'cp'=>4,'attri'=>23400,'time'=>28860),array('wood'=>4685,'clay'=>5765,'iron'=>3245,'crop'=>1440,'pop'=>1,'cp'=>5,'attri'=>28800,'time'=>33780),array('wood'=>5995,'clay'=>7380,'iron'=>4150,'crop'=>1845,'pop'=>1,'cp'=>6,'attri'=>35400,'time'=>39480),array('wood'=>7675,'clay'=>9445,'iron'=>5315,'crop'=>2360,'pop'=>2,'cp'=>7,'attri'=>43200,'time'=>46100),array('wood'=>9825,'clay'=>12090,'iron'=>6800,'crop'=>3020,'pop'=>2,'cp'=>9,'attri'=>52800,'time'=>53780),array('wood'=>12575,'clay'=>15475,'iron'=>8705,'crop'=>3870,'pop'=>2,'cp'=>11,'attri'=>64200,'time'=>62680),array('wood'=>16095,'clay'=>19805,'iron'=>11140,'crop'=>4950,'pop'=>2,'cp'=>13,'attri'=>77700,'time'=>73010),array('wood'=>20600,'clay'=>25355,'iron'=>14260,'crop'=>6340,'pop'=>2,'cp'=>15,'attri'=>93900,'time'=>84990),array('wood'=>26365,'clay'=>32450,'iron'=>18255,'crop'=>8115,'pop'=>2,'cp'=>18,'attri'=>113700,'time'=>98890),array('wood'=>33750,'clay'=>41540,'iron'=>23365,'crop'=>10385,'pop'=>2,'cp'=>22,'attri'=>137100,'time'=>115010),array('wood'=>43200,'clay'=>53170,'iron'=>29910,'crop'=>13290,'pop'=>2,'cp'=>27,'attri'=>165300,'time'=>133710),array('wood'=>55295,'clay'=>68055,'iron'=>38280,'crop'=>17015,'pop'=>2,'cp'=>32,'attri'=>199200,'time'=>155400),array('wood'=>70780,'clay'=>87110,'iron'=>49000,'crop'=>21780,'pop'=>2,'cp'=>38,'attri'=>240000,'time'=>180570)); -$bid39=array(1=>array('wood'=>400,'clay'=>500,'iron'=>350,'crop'=>100,'pop'=>1,'cp'=>1,'attri'=>3600,'time'=>7000),array('wood'=>510,'clay'=>640,'iron'=>450,'crop'=>130,'pop'=>1,'cp'=>1,'attri'=>5100,'time'=>8420),array('wood'=>655,'clay'=>820,'iron'=>575,'crop'=>165,'pop'=>1,'cp'=>2,'attri'=>6900,'time'=>10070),array('wood'=>840,'clay'=>1050,'iron'=>735,'crop'=>210,'pop'=>1,'cp'=>2,'attri'=>9300,'time'=>11980),array('wood'=>1075,'clay'=>1340,'iron'=>940,'crop'=>270,'pop'=>1,'cp'=>2,'attri'=>12000,'time'=>14190),array('wood'=>1375,'clay'=>1720,'iron'=>1205,'crop'=>345,'pop'=>1,'cp'=>3,'attri'=>15000,'time'=>16770),array('wood'=>1760,'clay'=>2200,'iron'=>1540,'crop'=>440,'pop'=>1,'cp'=>4,'attri'=>18900,'time'=>19750),array('wood'=>2250,'clay'=>2815,'iron'=>1970,'crop'=>565,'pop'=>1,'cp'=>4,'attri'=>23400,'time'=>23210),array('wood'=>2880,'clay'=>3605,'iron'=>2520,'crop'=>720,'pop'=>1,'cp'=>5,'attri'=>28800,'time'=>27220),array('wood'=>3690,'clay'=>4610,'iron'=>3230,'crop'=>920,'pop'=>1,'cp'=>6,'attri'=>35400,'time'=>31880),array('wood'=>4720,'clay'=>5905,'iron'=>4130,'crop'=>1180,'pop'=>2,'cp'=>7,'attri'=>43200,'time'=>37280),array('wood'=>6045,'clay'=>7555,'iron'=>5290,'crop'=>1510,'pop'=>2,'cp'=>9,'attri'=>52800,'time'=>43540),array('wood'=>7735,'clay'=>9670,'iron'=>6770,'crop'=>1935,'pop'=>2,'cp'=>11,'attri'=>64200,'time'=>50810),array('wood'=>9905,'clay'=>12380,'iron'=>8665,'crop'=>2475,'pop'=>2,'cp'=>13,'attri'=>77700,'time'=>59240),array('wood'=>12675,'clay'=>15845,'iron'=>11090,'crop'=>3170,'pop'=>2,'cp'=>15,'attri'=>93900,'time'=>69010),array('wood'=>16225,'clay'=>20280,'iron'=>14200,'crop'=>4055,'pop'=>2,'cp'=>18,'attri'=>113700,'time'=>80360),array('wood'=>20770,'clay'=>25960,'iron'=>18175,'crop'=>5190,'pop'=>2,'cp'=>22,'attri'=>137100,'time'=>93510),array('wood'=>26585,'clay'=>33230,'iron'=>23260,'crop'=>6645,'pop'=>2,'cp'=>27,'attri'=>165300,'time'=>108780),array('wood'=>34030,'clay'=>42535,'iron'=>29775,'crop'=>8505,'pop'=>2,'cp'=>32,'attri'=>199200,'time'=>126480),array('wood'=>43555,'clay'=>54445,'iron'=>38110,'crop'=>10890,'pop'=>2,'cp'=>38,'attri'=>240000,'time'=>147020)); -$bid40=array(1=>array('wood'=>66700,'clay'=>69050,'iron'=>72200,'crop'=>13200,'pop'=>1,'cp'=>0,'attri'=>0,'time'=>18000),array('wood'=>68535,'clay'=>70950,'iron'=>74185,'crop'=>13565,'pop'=>1,'cp'=>0,'attri'=>0,'time'=>18850),array('wood'=>70420,'clay'=>72900,'iron'=>76225,'crop'=>13935,'pop'=>1,'cp'=>0,'attri'=>0,'time'=>19720),array('wood'=>72355,'clay'=>74905,'iron'=>78320,'crop'=>14320,'pop'=>1,'cp'=>0,'attri'=>0,'time'=>20590),array('wood'=>74345,'clay'=>76965,'iron'=>80475,'crop'=>14715,'pop'=>1,'cp'=>0,'attri'=>0,'time'=>21480),array('wood'=>76390,'clay'=>79080,'iron'=>82690,'crop'=>15120,'pop'=>1,'cp'=>0,'attri'=>0,'time'=>22380),array('wood'=>78490,'clay'=>81255,'iron'=>84965,'crop'=>15535,'pop'=>1,'cp'=>0,'attri'=>0,'time'=>23290),array('wood'=>80650,'clay'=>83490,'iron'=>87300,'crop'=>15960,'pop'=>1,'cp'=>0,'attri'=>0,'time'=>24220),array('wood'=>82865,'clay'=>85785,'iron'=>89700,'crop'=>16400,'pop'=>1,'cp'=>0,'attri'=>0,'time'=>25160),array('wood'=>85145,'clay'=>88145,'iron'=>92165,'crop'=>16850,'pop'=>1,'cp'=>0,'attri'=>0,'time'=>26110),array('wood'=>87485,'clay'=>90570,'iron'=>94700,'crop'=>17315,'pop'=>2,'cp'=>0,'attri'=>0,'time'=>27080),array('wood'=>89895,'clay'=>93060,'iron'=>97305,'crop'=>17790,'pop'=>2,'cp'=>0,'attri'=>0,'time'=>28060),array('wood'=>92365,'clay'=>95620,'iron'=>99980,'crop'=>18280,'pop'=>2,'cp'=>0,'attri'=>0,'time'=>29050),array('wood'=>94905,'clay'=>98250,'iron'=>102730,'crop'=>18780,'pop'=>2,'cp'=>0,'attri'=>0,'time'=>30060),array('wood'=>97515,'clay'=>100950,'iron'=>105555,'crop'=>19300,'pop'=>2,'cp'=>0,'attri'=>0,'time'=>31080),array('wood'=>100195,'clay'=>103725,'iron'=>108460,'crop'=>19830,'pop'=>2,'cp'=>0,'attri'=>0,'time'=>32110),array('wood'=>102950,'clay'=>106580,'iron'=>111440,'crop'=>20375,'pop'=>2,'cp'=>0,'attri'=>0,'time'=>33160),array('wood'=>105785,'clay'=>109510,'iron'=>114505,'crop'=>20935,'pop'=>2,'cp'=>0,'attri'=>0,'time'=>34230),array('wood'=>108690,'clay'=>112520,'iron'=>117655,'crop'=>21510,'pop'=>2,'cp'=>0,'attri'=>0,'time'=>35300),array('wood'=>111680,'clay'=>115615,'iron'=>120890,'crop'=>22100,'pop'=>2,'cp'=>0,'attri'=>0,'time'=>36400),array('wood'=>114755,'clay'=>118795,'iron'=>124215,'crop'=>22710,'pop'=>3,'cp'=>0,'attri'=>0,'time'=>37510),array('wood'=>117910,'clay'=>122060,'iron'=>127630,'crop'=>23335,'pop'=>3,'cp'=>0,'attri'=>0,'time'=>38630),array('wood'=>121150,'clay'=>125420,'iron'=>131140,'crop'=>23975,'pop'=>3,'cp'=>0,'attri'=>0,'time'=>39770),array('wood'=>124480,'clay'=>128870,'iron'=>134745,'crop'=>24635,'pop'=>3,'cp'=>0,'attri'=>0,'time'=>40930),array('wood'=>127905,'clay'=>132410,'iron'=>138455,'crop'=>25315,'pop'=>3,'cp'=>0,'attri'=>0,'time'=>42100),array('wood'=>131425,'clay'=>136055,'iron'=>142260,'crop'=>26010,'pop'=>3,'cp'=>0,'attri'=>0,'time'=>43290),array('wood'=>135035,'clay'=>139795,'iron'=>146170,'crop'=>26725,'pop'=>3,'cp'=>0,'attri'=>0,'time'=>44500),array('wood'=>138750,'clay'=>143640,'iron'=>150190,'crop'=>27460,'pop'=>3,'cp'=>0,'attri'=>0,'time'=>45720),array('wood'=>142565,'clay'=>147590,'iron'=>154320,'crop'=>28215,'pop'=>3,'cp'=>0,'attri'=>0,'time'=>46960),array('wood'=>146485,'clay'=>151650,'iron'=>158565,'crop'=>28990,'pop'=>3,'cp'=>0,'attri'=>0,'time'=>48220),array('wood'=>150515,'clay'=>155820,'iron'=>162925,'crop'=>29785,'pop'=>4,'cp'=>0,'attri'=>0,'time'=>49500),array('wood'=>154655,'clay'=>160105,'iron'=>167405,'crop'=>30605,'pop'=>4,'cp'=>0,'attri'=>0,'time'=>50790),array('wood'=>158910,'clay'=>164505,'iron'=>172010,'crop'=>31450,'pop'=>4,'cp'=>0,'attri'=>0,'time'=>52100),array('wood'=>163275,'clay'=>169030,'iron'=>176740,'crop'=>32315,'pop'=>4,'cp'=>0,'attri'=>0,'time'=>53430),array('wood'=>167770,'clay'=>173680,'iron'=>181600,'crop'=>33200,'pop'=>4,'cp'=>0,'attri'=>0,'time'=>54780),array('wood'=>172380,'clay'=>178455,'iron'=>186595,'crop'=>34115,'pop'=>4,'cp'=>0,'attri'=>0,'time'=>56140),array('wood'=>177120,'clay'=>183360,'iron'=>191725,'crop'=>35055,'pop'=>4,'cp'=>0,'attri'=>0,'time'=>57530),array('wood'=>181995,'clay'=>188405,'iron'=>197000,'crop'=>36015,'pop'=>4,'cp'=>0,'attri'=>0,'time'=>58940),array('wood'=>186995,'clay'=>193585,'iron'=>202415,'crop'=>37005,'pop'=>4,'cp'=>0,'attri'=>0,'time'=>60360),array('wood'=>192140,'clay'=>198910,'iron'=>207985,'crop'=>38025,'pop'=>4,'cp'=>0,'attri'=>0,'time'=>61810),array('wood'=>197425,'clay'=>204380,'iron'=>213705,'crop'=>39070,'pop'=>5,'cp'=>0,'attri'=>0,'time'=>63270),array('wood'=>202855,'clay'=>210000,'iron'=>219580,'crop'=>40145,'pop'=>5,'cp'=>0,'attri'=>0,'time'=>64760),array('wood'=>208430,'clay'=>215775,'iron'=>225620,'crop'=>41250,'pop'=>5,'cp'=>0,'attri'=>0,'time'=>66260),array('wood'=>214165,'clay'=>221710,'iron'=>231825,'crop'=>42385,'pop'=>5,'cp'=>0,'attri'=>0,'time'=>67790),array('wood'=>220055,'clay'=>227805,'iron'=>238200,'crop'=>43550,'pop'=>5,'cp'=>0,'attri'=>0,'time'=>69340),array('wood'=>226105,'clay'=>234070,'iron'=>244750,'crop'=>44745,'pop'=>5,'cp'=>0,'attri'=>0,'time'=>70910),array('wood'=>232320,'clay'=>240505,'iron'=>251480,'crop'=>45975,'pop'=>5,'cp'=>0,'attri'=>0,'time'=>72500),array('wood'=>238710,'clay'=>247120,'iron'=>258395,'crop'=>47240,'pop'=>5,'cp'=>0,'attri'=>0,'time'=>74120),array('wood'=>245275,'clay'=>253915,'iron'=>265500,'crop'=>48540,'pop'=>5,'cp'=>0,'attri'=>0,'time'=>75760),array('wood'=>252020,'clay'=>260900,'iron'=>272800,'crop'=>49875,'pop'=>5,'cp'=>0,'attri'=>0,'time'=>77420),array('wood'=>258950,'clay'=>268075,'iron'=>280305,'crop'=>51245,'pop'=>6,'cp'=>0,'attri'=>0,'time'=>79100),array('wood'=>266070,'clay'=>275445,'iron'=>288010,'crop'=>52655,'pop'=>6,'cp'=>0,'attri'=>0,'time'=>80810),array('wood'=>273390,'clay'=>283020,'iron'=>295930,'crop'=>54105,'pop'=>6,'cp'=>0,'attri'=>0,'time'=>82540),array('wood'=>280905,'clay'=>290805,'iron'=>304070,'crop'=>55590,'pop'=>6,'cp'=>0,'attri'=>0,'time'=>84290),array('wood'=>288630,'clay'=>298800,'iron'=>312430,'crop'=>57120,'pop'=>6,'cp'=>0,'attri'=>0,'time'=>86070),array('wood'=>296570,'clay'=>307020,'iron'=>321025,'crop'=>58690,'pop'=>6,'cp'=>0,'attri'=>0,'time'=>87880),array('wood'=>304725,'clay'=>315460,'iron'=>329850,'crop'=>60305,'pop'=>6,'cp'=>0,'attri'=>0,'time'=>89710),array('wood'=>313105,'clay'=>324135,'iron'=>338925,'crop'=>61965,'pop'=>6,'cp'=>0,'attri'=>0,'time'=>91570),array('wood'=>321715,'clay'=>333050,'iron'=>348245,'crop'=>63670,'pop'=>6,'cp'=>0,'attri'=>0,'time'=>93450),array('wood'=>330565,'clay'=>342210,'iron'=>357820,'crop'=>65420,'pop'=>6,'cp'=>0,'attri'=>0,'time'=>95360),array('wood'=>339655,'clay'=>351620,'iron'=>367660,'crop'=>67220,'pop'=>7,'cp'=>0,'attri'=>0,'time'=>97290),array('wood'=>348995,'clay'=>361290,'iron'=>377770,'crop'=>69065,'pop'=>7,'cp'=>0,'attri'=>0,'time'=>99250),array('wood'=>358590,'clay'=>371225,'iron'=>388160,'crop'=>70965,'pop'=>7,'cp'=>0,'attri'=>0,'time'=>101240),array('wood'=>368450,'clay'=>381435,'iron'=>398835,'crop'=>72915,'pop'=>7,'cp'=>0,'attri'=>0,'time'=>103260),array('wood'=>378585,'clay'=>391925,'iron'=>409800,'crop'=>74920,'pop'=>7,'cp'=>0,'attri'=>0,'time'=>105310),array('wood'=>388995,'clay'=>402700,'iron'=>421070,'crop'=>76985,'pop'=>7,'cp'=>0,'attri'=>0,'time'=>107380),array('wood'=>399695,'clay'=>413775,'iron'=>432650,'crop'=>79100,'pop'=>7,'cp'=>0,'attri'=>0,'time'=>109480),array('wood'=>410685,'clay'=>425155,'iron'=>444550,'crop'=>81275,'pop'=>7,'cp'=>0,'attri'=>0,'time'=>111620),array('wood'=>421980,'clay'=>436845,'iron'=>456775,'crop'=>83510,'pop'=>7,'cp'=>0,'attri'=>0,'time'=>113780),array('wood'=>433585,'clay'=>448860,'iron'=>469335,'crop'=>85805,'pop'=>7,'cp'=>0,'attri'=>0,'time'=>115970),array('wood'=>445505,'clay'=>461205,'iron'=>482240,'crop'=>88165,'pop'=>8,'cp'=>0,'attri'=>0,'time'=>118200),array('wood'=>457760,'clay'=>473885,'iron'=>495505,'crop'=>90590,'pop'=>8,'cp'=>0,'attri'=>0,'time'=>120450),array('wood'=>470345,'clay'=>486920,'iron'=>509130,'crop'=>93080,'pop'=>8,'cp'=>0,'attri'=>0,'time'=>122740),array('wood'=>483280,'clay'=>500310,'iron'=>523130,'crop'=>95640,'pop'=>8,'cp'=>0,'attri'=>0,'time'=>125060),array('wood'=>496570,'clay'=>514065,'iron'=>537520,'crop'=>98270,'pop'=>8,'cp'=>0,'attri'=>0,'time'=>127410),array('wood'=>510225,'clay'=>528205,'iron'=>552300,'crop'=>100975,'pop'=>8,'cp'=>0,'attri'=>0,'time'=>129790),array('wood'=>524260,'clay'=>542730,'iron'=>567490,'crop'=>103750,'pop'=>8,'cp'=>0,'attri'=>0,'time'=>132210),array('wood'=>538675,'clay'=>557655,'iron'=>583095,'crop'=>106605,'pop'=>8,'cp'=>0,'attri'=>0,'time'=>134660),array('wood'=>553490,'clay'=>572990,'iron'=>599130,'crop'=>109535,'pop'=>8,'cp'=>0,'attri'=>0,'time'=>137140),array('wood'=>568710,'clay'=>588745,'iron'=>615605,'crop'=>112550,'pop'=>8,'cp'=>0,'attri'=>0,'time'=>139660),array('wood'=>584350,'clay'=>604935,'iron'=>632535,'crop'=>115645,'pop'=>9,'cp'=>0,'attri'=>0,'time'=>142220),array('wood'=>600420,'clay'=>621575,'iron'=>649930,'crop'=>118825,'pop'=>9,'cp'=>0,'attri'=>0,'time'=>144810),array('wood'=>616930,'clay'=>638665,'iron'=>667800,'crop'=>122090,'pop'=>9,'cp'=>0,'attri'=>0,'time'=>147440),array('wood'=>633895,'clay'=>656230,'iron'=>686165,'crop'=>125450,'pop'=>9,'cp'=>0,'attri'=>0,'time'=>150100),array('wood'=>651330,'clay'=>674275,'iron'=>705035,'crop'=>128900,'pop'=>9,'cp'=>0,'attri'=>0,'time'=>152800),array('wood'=>669240,'clay'=>692820,'iron'=>724425,'crop'=>132445,'pop'=>9,'cp'=>0,'attri'=>0,'time'=>155540),array('wood'=>687645,'clay'=>711870,'iron'=>744345,'crop'=>136085,'pop'=>9,'cp'=>0,'attri'=>0,'time'=>158320),array('wood'=>706555,'clay'=>731445,'iron'=>764815,'crop'=>139830,'pop'=>9,'cp'=>0,'attri'=>0,'time'=>161140),array('wood'=>725985,'clay'=>751560,'iron'=>785850,'crop'=>143675,'pop'=>9,'cp'=>0,'attri'=>0,'time'=>163990),array('wood'=>745950,'clay'=>772230,'iron'=>807460,'crop'=>147625,'pop'=>9,'cp'=>0,'attri'=>0,'time'=>166890),array('wood'=>766460,'clay'=>793465,'iron'=>829665,'crop'=>151685,'pop'=>10,'cp'=>0,'attri'=>0,'time'=>169820),array('wood'=>787540,'clay'=>815285,'iron'=>852480,'crop'=>155855,'pop'=>10,'cp'=>0,'attri'=>0,'time'=>172800),array('wood'=>809195,'clay'=>837705,'iron'=>875920,'crop'=>160140,'pop'=>10,'cp'=>0,'attri'=>0,'time'=>175820),array('wood'=>831450,'clay'=>860745,'iron'=>900010,'crop'=>164545,'pop'=>10,'cp'=>0,'attri'=>0,'time'=>178880),array('wood'=>854315,'clay'=>884415,'iron'=>924760,'crop'=>169070,'pop'=>10,'cp'=>0,'attri'=>0,'time'=>181990),array('wood'=>877810,'clay'=>908735,'iron'=>950190,'crop'=>173720,'pop'=>10,'cp'=>0,'attri'=>0,'time'=>185130),array('wood'=>901950,'clay'=>933725,'iron'=>976320,'crop'=>178495,'pop'=>10,'cp'=>0,'attri'=>0,'time'=>188330),array('wood'=>926750,'clay'=>959405,'iron'=>1000000,'crop'=>183405,'pop'=>10,'cp'=>0,'attri'=>0,'time'=>191560),array('wood'=>952235,'clay'=>985785,'iron'=>1000000,'crop'=>188450,'pop'=>10,'cp'=>0,'attri'=>0,'time'=>194840),array('wood'=>1000000,'clay'=>1000000,'iron'=>1000000,'crop'=>193630,'pop'=>10,'cp'=>0,'attri'=>0,'time'=>198170)); -$bid41=array(1=>array('wood'=>780,'clay'=>420,'iron'=>660,'crop'=>540,'pop'=>5,'cp'=>2,'attri'=>1.01,'time'=>2200),array('wood'=>1000,'clay'=>540,'iron'=>845,'crop'=>690,'pop'=>3,'cp'=>3,'attri'=>1.02,'time'=>3152),array('wood'=>1280,'clay'=>690,'iron'=>1080,'crop'=>885,'pop'=>3,'cp'=>3,'attri'=>1.03,'time'=>4256),array('wood'=>1635,'clay'=>880,'iron'=>1385,'crop'=>1130,'pop'=>3,'cp'=>4,'attri'=>1.04,'time'=>5537),array('wood'=>2095,'clay'=>1125,'iron'=>1770,'crop'=>1450,'pop'=>3,'cp'=>5,'attri'=>1.05,'time'=>7023),array('wood'=>2680,'clay'=>1445,'iron'=>2270,'crop'=>1855,'pop'=>3,'cp'=>6,'attri'=>1.06,'time'=>8747),array('wood'=>3430,'clay'=>1845,'iron'=>2905,'crop'=>2375,'pop'=>3,'cp'=>7,'attri'=>1.07,'time'=>10747),array('wood'=>4390,'clay'=>2365,'iron'=>3715,'crop'=>3040,'pop'=>3,'cp'=>9,'attri'=>1.08,'time'=>13066),array('wood'=>5620,'clay'=>3025,'iron'=>4755,'crop'=>3890,'pop'=>3,'cp'=>10,'attri'=>1.09,'time'=>15757),array('wood'=>7195,'clay'=>3875,'iron'=>6085,'crop'=>4980,'pop'=>3,'cp'=>12,'attri'=>1.10,'time'=>18878),array('wood'=>9210,'clay'=>4960,'iron'=>7790,'crop'=>6375,'pop'=>4,'cp'=>15,'attri'=>1.11,'time'=>22498),array('wood'=>11785,'clay'=>6345,'iron'=>9975,'crop'=>8160,'pop'=>4,'cp'=>18,'attri'=>1.12,'time'=>26698),array('wood'=>15085,'clay'=>8125,'iron'=>12765,'crop'=>10445,'pop'=>4,'cp'=>21,'attri'=>1.13,'time'=>31569),array('wood'=>19310,'clay'=>10400,'iron'=>16340,'crop'=>13370,'pop'=>4,'cp'=>26,'attri'=>1.14,'time'=>37220),array('wood'=>24720,'clay'=>13310,'iron'=>20915,'crop'=>17115,'pop'=>4,'cp'=>31,'attri'=>1.15,'time'=>43776),array('wood'=>31640,'clay'=>17035,'iron'=>26775,'crop'=>21905,'pop'=>4,'cp'=>37,'attri'=>1.16,'time'=>51380),array('wood'=>40500,'clay'=>21810,'iron'=>34270,'crop'=>28040,'pop'=>4,'cp'=>44,'attri'=>1.17,'time'=>60201),array('wood'=>51840,'clay'=>27915,'iron'=>43865,'crop'=>35890,'pop'=>4,'cp'=>53,'attri'=>1.18,'time'=>70433),array('wood'=>66355,'clay'=>35730,'iron'=>56145,'crop'=>45940,'pop'=>4,'cp'=>64,'attri'=>1.19,'time'=>82302),array('wood'=>84935,'clay'=>45735,'iron'=>71870,'crop'=>58800,'pop'=>4,'cp'=>77,'attri'=>1.20,'time'=>96070)); -$bid42=array(1=>array('wood'=>1380,'clay'=>1530,'iron'=>1800,'crop'=>960,'pop'=>3,'cp'=>4,'attri'=>100,'time'=>3000),array('wood'=>1770,'clay'=>1915,'iron'=>2310,'crop'=>1230,'pop'=>2,'cp'=>4,'attri'=>90,'time'=>3780),array('wood'=>2215,'clay'=>2505,'iron'=>2955,'crop'=>1575,'pop'=>2,'cp'=>5,'attri'=>81,'time'=>4680),array('wood'=>2895,'clay'=>3210,'iron'=>3780,'crop'=>2010,'pop'=>2,'cp'=>6,'attri'=>72.9,'time'=>5730),array('wood'=>3705,'clay'=>4110,'iron'=>4830,'crop'=>2580,'pop'=>2,'cp'=>7,'attri'=>65.61,'time'=>6950),array('wood'=>4740,'clay'=>5250,'iron'=>6180,'crop'=>3300,'pop'=>2,'cp'=>9,'attri'=>59.05,'time'=>8360),array('wood'=>6075,'clay'=>6735,'iron'=>7920,'crop'=>4215,'pop'=>2,'cp'=>11,'attri'=>53.14,'time'=>10000),array('wood'=>7730,'clay'=>8610,'iron'=>10140,'crop'=>5600,'pop'=>2,'cp'=>13,'attri'=>47.83,'time'=>11900),array('wood'=>9945,'clay'=>11025,'iron'=>12975,'crop'=>4615,'pop'=>2,'cp'=>15,'attri'=>43.05,'time'=>14110),array('wood'=>12735,'clay'=>14115,'iron'=>16605,'crop'=>8850,'pop'=>2,'cp'=>19,'attri'=>38.74,'time'=>16660),array('wood'=>16290,'clay'=>18060,'iron'=>23415,'crop'=>11340,'pop'=>3,'cp'=>22,'attri'=>34.87,'time'=>19630),array('wood'=>20850,'clay'=>23115,'iron'=>27195,'crop'=>14505,'pop'=>3,'cp'=>27,'attri'=>31.38,'time'=>23070),array('wood'=>26700,'clay'=>29595,'iron'=>34815,'crop'=>18570,'pop'=>3,'cp'=>32,'attri'=>28.24,'time'=>27060),array('wood'=>34170,'clay'=>37875,'iron'=>44565,'crop'=>23775,'pop'=>3,'cp'=>39,'attri'=>25.42,'time'=>31690),array('wood'=>43740,'clay'=>48495,'iron'=>57045,'crop'=>30420,'pop'=>3,'cp'=>46,'attri'=>22.88,'time'=>37060),array('wood'=>55980,'clay'=>62070,'iron'=>73020,'crop'=>38940,'pop'=>3,'cp'=>55,'attri'=>20.59,'time'=>43290),array('wood'=>71655,'clay'=>79440,'iron'=>93465,'crop'=>49485,'pop'=>3,'cp'=>67,'attri'=>18.53,'time'=>50520),array('wood'=>91710,'clay'=>101685,'iron'=>119625,'crop'=>63810,'pop'=>3,'cp'=>80,'attri'=>16.68,'time'=>58900),array('wood'=>105650,'clay'=>117140,'iron'=>137810,'crop'=>73510,'pop'=>3,'cp'=>96,'attri'=>15.01,'time'=>68630),array('wood'=>125225,'clay'=>138840,'iron'=>159995,'crop'=>87090,'pop'=>3,'cp'=>115,'attri'=>13.51,'time'=>79910)); -?> diff --git a/GameEngine/Data/cel.php b/GameEngine/Data/cel.php deleted file mode 100755 index 77b8b0fc..00000000 --- a/GameEngine/Data/cel.php +++ /dev/null @@ -1,49 +0,0 @@ -array('name'=>'Small Celebration','wood'=>6400,'clay'=>6650,'iron'=>5940,'crop'=>1340,'attri'=>500,'time'=>86400),array('name'=>'Great Celebration','wood'=>29700,'clay'=>33250,'iron'=>32000,'crop'=>6700,'attri'=>2000,'time'=>216000)); - -$sc = array( -1 => 86400, -2 => 83290, -3 => 80291, -4 => 77401, -5 => 74614, -6 => 71928, -7 => 69338, -8 => 66843, -9 => 64436, -10 => 62117, -11 => 59880, -12 => 57725, -13 => 55647, -14 => 53643, -15 => 51712, -16 => 49850, -17 => 48056, -18 => 46326, -19 => 44658, -20 => 43050); - -$gc= array( -10 => 155291, -11 => 149701, -12 => 144312, -13 => 139116, -14 => 134108, -15 => 129280, -16 => 124626, -17 => 120140, -18 => 115815, -19 => 111645, -20 => 107626); -?> diff --git a/GameEngine/Data/cp.php b/GameEngine/Data/cp.php deleted file mode 100755 index a27ebb1e..00000000 --- a/GameEngine/Data/cp.php +++ /dev/null @@ -1,267 +0,0 @@ - 0, - 2 => 500, - 3 => 2600, - 4 => 6700, - 5 => 12900, - 6 => 21600, - 7 => 32900, - 8 => 46000, - 9 => 63000, - 10 => 83500, - 11 => 106400, - 12 => 132500, - 13 => 161900, - 14 => 194600, - 15 => 230700, - 16 => 270400, - 17 => 313700, - 18 => 360600, - 19 => 411300, - 20 => 465700, - 21 => 524000, - 22 => 586300, - 23 => 652500, - 24 => 722700, - 25 => 797000, - 26 => 875500, - 27 => 958200, - 28 => 1045000, - 29 => 1136200, - 30 => 1231700, - 31 => 1316000, - 32 => 1435900, - 33 => 1435900, - 34 => 1658000, - 35 => 1775800, - 36 => 1898300, - 37 => 2025300, - 38 => 2157100, - 39 => 2293500, - 40 => 2434700, - 41 => 2580700, - 42 => 2731500, - 43 => 2887200, - 44 => 3047700, - 45 => 3213200, - 46 => 3383700, - 47 => 3559100, - 48 => 3739600, - 49 => 3925100, - 50 => 4115800, - 51 => 4311500, - 52 => 4512400, - 53 => 4718500, - 54 => 4929800, - 55 => 5146400, - 56 => 5368300, - 57 => 5595400, - 58 => 5827900, - 59 => 6065700, - 60 => 6309000, - 61 => 6557600, - 62 => 6811700, - 63 => 7071300, - 64 => 7336400, - 65 => 7607000, - 66 => 7883100, - 67 => 8164900, - 68 => 8452200, - 69 => 8745200, - 70 => 9043800, - 71 => 9348100, - 72 => 9659100, - 73 => 9973900, - 74 => 10295400, - 75 => 10622600, - 76 => 10955700, - 77 => 11294600, - 78 => 11639300, - 79 => 11989900, - 80 => 12346400, - 81 => 12708800, - 82 => 13077200, - 83 => 13451500, - 84 => 13831800, - 85 => 14218100, - 86 => 14610400, - 87 => 15008800, - 88 => 15413200, - 89 => 15823700, - 90 => 16240400, - 91 => 16663100, - 92 => 17092000, - 93 => 17527100, - 94 => 17968400, - 95 => 18415900, - 96 => 18869600, - 97 => 19329600, - 98 => 19795800, - 99 => 20268400, - 100 => 20747200, - 101 => 21232400, - 102 => 21723900, - 103 => 22221800, - 104 => 22726100, - 105 => 23236800, - 106 => 23753900, - 107 => 24277400, - 108 => 24807400, - 109 => 25343900, - 110 => 25886900, - 111 => 26436400, - 112 => 26992400, - 113 => 27555000, - 114 => 28124100, - 115 => 28699900, - 116 => 29282200, - 117 => 29871200, - 118 => 30466800, - 119 => 31069000, - 120 => 31677900, - 121 => 32293500, - 122 => 32915900, - 123 => 33544900, - 124 => 34180700, - 125 => 34823200); - -$cp1= array( - 1 => 0, - 2 => 2000, - 3 => 8000, - 4 => 20000, - 5 => 39000, - 6 => 65000, - 7 => 99000, - 8 => 141000, - 9 => 191000, - 10 => 251000, - 11 => 319000, - 12 => 397000, - 13 => 486000, - 14 => 584000, - 15 => 692000, - 16 => 811000, - 17 => 941000, - 18 => 1082000, - 19 => 1234000, - 20 => 1397000, - 21 => 1572000, - 22 => 1759000, - 23 => 1957000, - 24 => 2168000, - 25 => 2391000, - 26 => 2627000, - 27 => 2874000, - 28 => 3135000, - 29 => 3409000, - 30 => 3695000, - 31 => 3995000, - 32 => 4308000, - 33 => 4634000, - 34 => 4974000, - 35 => 5327000, - 36 => 5695000, - 37 => 6076000, - 38 => 6471000, - 39 => 6881000, - 40 => 7304000, - 41 => 7742000, - 42 => 8195000, - 43 => 8662000, - 44 => 9143000, - 45 => 9640000, - 46 => 10151000, - 47 => 10677000, - 48 => 11219000, - 49 => 11775000, - 50 => 12347000, - 51 => 12935000, - 52 => 13537000, - 53 => 14156000, - 54 => 14790000, - 55 => 15439000, - 56 => 16105000, - 57 => 16786000, - 58 => 17484000, - 59 => 18197000, - 60 => 18927000, - 61 => 19673000, - 62 => 20435000, - 63 => 21214000, - 64 => 22009000, - 65 => 22821000, - 66 => 23649000, - 67 => 24495000, - 68 => 25357000, - 69 => 26236000, - 70 => 27131000, - 71 => 28044000, - 72 => 28974000, - 73 => 29922000, - 74 => 30886000, - 75 => 31868000, - 76 => 32867000, - 77 => 33884000, - 78 => 34918000, - 79 => 35970000, - 80 => 37039000, - 81 => 38127000, - 82 => 39232000, - 83 => 40354000, - 84 => 41495000, - 85 => 42654000, - 86 => 43831000, - 87 => 45026000, - 88 => 46240000, - 89 => 47471000, - 90 => 48721000, - 91 => 49989000, - 92 => 51276000, - 93 => 52581000, - 94 => 53905000, - 95 => 55248000, - 96 => 56609000, - 97 => 57989000, - 98 => 59387000, - 99 => 60805000, - 100 => 62242000, - 101 => 63697000, - 102 => 65172000, - 103 => 66665000, - 104 => 68178000, - 105 => 69710000, - 106 => 71262000, - 107 => 72832000, - 108 => 74422000, - 109 => 76032000, - 110 => 77661000, - 111 => 79309000, - 112 => 80977000, - 113 => 82665000, - 114 => 84372000, - 115 => 86000000, - 116 => 87847000, - 117 => 89613000, - 118 => 91400000, - 119 => 93207000, - 120 => 95034000, - 121 => 96881000, - 122 => 98748000, - 123 => 100635000, - 124 => 102542000, - 125 => 104470000); -?> \ No newline at end of file diff --git a/GameEngine/Data/hero_full.php b/GameEngine/Data/hero_full.php deleted file mode 100755 index 9ab154a0..00000000 --- a/GameEngine/Data/hero_full.php +++ /dev/null @@ -1,181 +0,0 @@ - 0, 100, 300, 600, 1000, 1500, 2100, 2800, 3600, 4500, 5500, 6600, 7800, 9100, 10500, 12000, 13600, 15300, 17100, 19000, 21000, 23100, 25300, 27600, 30000, 32500, 35100, 37800, 40600, 43500, 46500, 49600, 52800, 56100, 59500, 63000, 66600, 70300, 74100, 78000, 82000, 86100, 90300, 94600, 99000, 103500, 108100, 112800, 117600, 122500, 127500, 132600, 137800, 143100, 148500, 154000, 159600, 165300, 171100, 177000, 183000, 189100, 195300, 201600, 208000, 214500, 221100, 227800, - 234600, 241500, 248500, 255600, 262800, 270100, 277500, 285000, 292600, 300300, 308100, 316000, 324000, 332100, 340300, 348600, 357000, 365500, 374100, 382800, 391600, 400500, 409500, 418600, 427800, 437100, 446500, 456000, 465600, 475300, 485100, 495000); - - -//ROMAN UNITS - $h1_full = array(array('wood' => 240, 'clay' => 200, 'iron' => 300, 'crop' => 60, 'time' => 3200), array('wood' => 640, 'clay' => 550, 'iron' => 780, 'crop' => 210, 'time' => 6400), array('wood' => 1100, 'clay' => 910, 'iron' => 1300, 'crop' => 360, 'time' => 9600), array('wood' => 1500, 'clay' => 1300, 'iron' => 1900, 'crop' => 510, 'time' => 12800), array('wood' => 2000, 'clay' => 1700, 'iron' => 2500, 'crop' => 670, 'time' => 16000), array('wood' => 2500, 'clay' => 2200, 'iron' => 3100, 'crop' => 850, 'time' => - 19200), array('wood' => 3100, 'clay' => 2600, 'iron' => 3800, 'crop' => 1000, 'time' => 22400), array('wood' => 3600, 'clay' => 3100, 'iron' => 4400, 'crop' => 1200, 'time' => 25580), array('wood' => 4200, 'clay' => 3600, 'iron' => 5100, 'crop' => 1400, 'time' => 28800), array('wood' => 4800, 'clay' => 4100, 'iron' => 5900, 'crop' => 1600, 'time' => 32000), array('wood' => 5400, 'clay' => 4600, 'iron' => 6600, 'crop' => 1800, 'time' => 35200), array('wood' => 6000, 'clay' => 5100, 'iron' => 7400, 'crop' => 2000, - 'time' => 38400), array('wood' => 6700, 'clay' => 5700, 'iron' => 8100, 'crop' => 2200, 'time' => 41600), array('wood' => 7300, 'clay' => 6200, 'iron' => 8900, 'crop' => 2400, 'time' => 44800), array('wood' => 8000, 'clay' => 6800, 'iron' => 9700, 'crop' => 2700, 'time' => 48000), array('wood' => 8600, 'clay' => 7400, 'iron' => 10500, 'crop' => 2900, 'time' => 51200), array('wood' => 9300, 'clay' => 7900, 'iron' => 11500, 'crop' => 3100, 'time' => 54400), array('wood' => 10000, 'clay' => 8500, 'iron' => 12000, - 'crop' => 3300, 'time' => 57600), array('wood' => 10500, 'clay' => 9100, 'iron' => 13000, 'crop' => 3600, 'time' => 60800), array('wood' => 11500, 'clay' => 9700, 'iron' => 14000, 'crop' => 3800, 'time' => 64000), array('wood' => 12000, 'clay' => 10500, 'iron' => 15000, 'crop' => 4000, 'time' => 67200), array('wood' => 13000, 'clay' => 11000, 'iron' => 15500, 'crop' => 4300, 'time' => 70400), array('wood' => 13500, 'clay' => 11500, 'iron' => 16500, 'crop' => 4500, 'time' => 73600), array('wood' => 14500, 'clay' => - 12000, 'iron' => 17500, 'crop' => 4800, 'time' => 76800), array('wood' => 15000, 'clay' => 13000, 'iron' => 18500, 'crop' => 5000, 'time' => 80000), array('wood' => 16000, 'clay' => 13500, 'iron' => 19500, 'crop' => 5300, 'time' => 83200), array('wood' => 16500, 'clay' => 14000, 'iron' => 20500, 'crop' => 5500, 'time' => 86400), array('wood' => 17500, 'clay' => 15000, 'iron' => 21500, 'crop' => 5800, 'time' => 89600), array('wood' => 18000, 'clay' => 15500, 'iron' => 22000, 'crop' => 6100, 'time' => 92800), - array('wood' => 19000, 'clay' => 16000, 'iron' => 23000, 'crop' => 6300, 'time' => 96000), array('wood' => 19500, 'clay' => 17000, 'iron' => 24000, 'crop' => 6600, 'time' => 99200), array('wood' => 20500, 'clay' => 17500, 'iron' => 25000, 'crop' => 6800, 'time' => 102400), array('wood' => 21500, 'clay' => 18000, 'iron' => 26000, 'crop' => 7100, 'time' => 105600), array('wood' => 22000, 'clay' => 19000, 'iron' => 27000, 'crop' => 7400, 'time' => 108800), array('wood' => 23000, 'clay' => 19500, 'iron' => 28000, 'crop' => - 7700, 'time' => 112000), array('wood' => 24000, 'clay' => 20500, 'iron' => 29000, 'crop' => 7900, 'time' => 115200), array('wood' => 24500, 'clay' => 21000, 'iron' => 30000, 'crop' => 8200, 'time' => 118400), array('wood' => 25500, 'clay' => 21500, 'iron' => 31000, 'crop' => 8500, 'time' => 121600), array('wood' => 26500, 'clay' => 22500, 'iron' => 32000, 'crop' => 8800, 'time' => 124800), array('wood' => 27000, 'clay' => 23000, 'iron' => 33000, 'crop' => 9100, 'time' => 128000), array('wood' => 28000, 'clay' => 24000, - 'iron' => 34000, 'crop' => 9300, 'time' => 131200), array('wood' => 29000, 'clay' => 24500, 'iron' => 35500, 'crop' => 9600, 'time' => 134400), array('wood' => 29500, 'clay' => 25500, 'iron' => 36500, 'crop' => 9900, 'time' => 137600), array('wood' => 30500, 'clay' => 26000, 'iron' => 37500, 'crop' => 10000, 'time' => 140800), array('wood' => 31500, 'clay' => 27000, 'iron' => 38500, 'crop' => 10500, 'time' => 144000), array('wood' => 32500, 'clay' => 27500, 'iron' => 39500, 'crop' => 11000, 'time' => 147200), - array('wood' => 34000, 'clay' => 28500, 'iron' => 40500, 'crop' => 11000, 'time' => 150400), array('wood' => 34000, 'clay' => 29000, 'iron' => 41500, 'crop' => 11500, 'time' => 153600), array('wood' => 35000, 'clay' => 30000, 'iron' => 43000, 'crop' => 11500, 'time' => 156800), array('wood' => 36000, 'clay' => 30500, 'iron' => 44000, 'crop' => 12000, 'time' => 160000), array('wood' => 37000, 'clay' => 31500, 'iron' => 45000, 'crop' => 12500, 'time' => 163200), array('wood' => 37500, 'clay' => 32000, 'iron' => 46000, - 'crop' => 12500, 'time' => 166400), array('wood' => 38500, 'clay' => 33000, 'iron' => 47000, 'crop' => 13000, 'time' => 169600), array('wood' => 39500, 'clay' => 33500, 'iron' => 48500, 'crop' => 13000, 'time' => 172800), array('wood' => 40500, 'clay' => 34500, 'iron' => 49500, 'crop' => 13500, 'time' => 176000), array('wood' => 41500, 'clay' => 35000, 'iron' => 50500, 'crop' => 14000, 'time' => 179200), array('wood' => 42500, 'clay' => 36000, 'iron' => 51500, 'crop' => 14000, 'time' => 182400), array('wood' => 43000, - 'clay' => 37000, 'iron' => 53000, 'crop' => 14500, 'time' => 185600), array('wood' => 44000, 'clay' => 37500, 'iron' => 54000, 'crop' => 14500, 'time' => 188800), array('wood' => 45000, 'clay' => 38500, 'iron' => 55000, 'crop' => 15000, 'time' => 192000), array('wood' => 46000, 'clay' => 39000, 'iron' => 56500, 'crop' => 15500, 'time' => 195200)); - $h2_full = array(array('wood' => 200, 'clay' => 260, 'iron' => 320, 'crop' => 140, 'time' => 3520), array('wood' => 550, 'clay' => 690, 'iron' => 830, 'crop' => 400, 'time' => 7040), array('wood' => 910, 'clay' => 1100, 'iron' => 1400, 'crop' => 670, 'time' => 10560), array('wood' => 1300, 'clay' => 1600, 'iron' => 2000, 'crop' => 960, 'time' => 14080), array('wood' => 1700, 'clay' => 2200, 'iron' => 2600, 'crop' => 1300, 'time' => 17600), array('wood' => 2200, 'clay' => 2700, 'iron' => 3300, 'crop' => 1600, 'time' => - 21120), array('wood' => 2600, 'clay' => 3300, 'iron' => 4000, 'crop' => 1900, 'time' => 24640), array('wood' => 3100, 'clay' => 3900, 'iron' => 4700, 'crop' => 2300, 'time' => 28160), array('wood' => 3600, 'clay' => 4500, 'iron' => 5500, 'crop' => 2700, 'time' => 31680), array('wood' => 4100, 'clay' => 5200, 'iron' => 6200, 'crop' => 3000, 'time' => 35200), array('wood' => 4600, 'clay' => 5800, 'iron' => 7000, 'crop' => 3400, 'time' => 38720), array('wood' => 5100, 'clay' => 6500, 'iron' => 7800, 'crop' => 3800, 'time' => - 42240), array('wood' => 5700, 'clay' => 7200, 'iron' => 8600, 'crop' => 4200, 'time' => 45760), array('wood' => 6200, 'clay' => 7900, 'iron' => 9500, 'crop' => 4600, 'time' => 49280), array('wood' => 6800, 'clay' => 8600, 'iron' => 10500, 'crop' => 5000, 'time' => 52800), array('wood' => 7400, 'clay' => 9300, 'iron' => 11000, 'crop' => 5400, 'time' => 56320), array('wood' => 7900, 'clay' => 10000, 'iron' => 12000, 'crop' => 5900, 'time' => 59840), array('wood' => 8500, 'clay' => 11000, 'iron' => 13000, 'crop' => 6300, - 'time' => 63360), array('wood' => 9100, 'clay' => 11500, 'iron' => 14000, 'crop' => 6700, 'time' => 66880), array('wood' => 9700, 'clay' => 12500, 'iron' => 15000, 'crop' => 7200, 'time' => 70400), array('wood' => 10500, 'clay' => 13000, 'iron' => 15500, 'crop' => 7600, 'time' => 73920), array('wood' => 11000, 'clay' => 14000, 'iron' => 16500, 'crop' => 8100, 'time' => 77440), array('wood' => 11500, 'clay' => 14500, 'iron' => 17500, 'crop' => 8600, 'time' => 80960), array('wood' => 12000, 'clay' => 15500, 'iron' => 18500, - 'crop' => 9000, 'time' => 84480), array('wood' => 13000, 'clay' => 16000, 'iron' => 19500, 'crop' => 9500, 'time' => 88000), array('wood' => 13500, 'clay' => 17000, 'iron' => 20500, 'crop' => 10000, 'time' => 91520), array('wood' => 14000, 'clay' => 18000, 'iron' => 21500, 'crop' => 10500, 'time' => 95040), array('wood' => 15000, 'clay' => 18500, 'iron' => 22500, 'crop' => 11000, 'time' => 98560), array('wood' => 15500, 'clay' => 19500, 'iron' => 23500, 'crop' => 11500, 'time' => 102080), array('wood' => 16000, 'clay' => - 20500, 'iron' => 24500, 'crop' => 12000, 'time' => 105600), array('wood' => 17000, 'clay' => 21000, 'iron' => 25500, 'crop' => 12500, 'time' => 109120), array('wood' => 17500, 'clay' => 22000, 'iron' => 26500, 'crop' => 13000, 'time' => 112640), array('wood' => 18000, 'clay' => 23000, 'iron' => 27500, 'crop' => 13500, 'time' => 116160), array('wood' => 19000, 'clay' => 24000, 'iron' => 28500, 'crop' => 14000, 'time' => 119680), array('wood' => 19500, 'clay' => 24500, 'iron' => 30000, 'crop' => 14500, 'time' => 123200), - array('wood' => 20500, 'clay' => 25500, 'iron' => 31000, 'crop' => 15000, 'time' => 126270), array('wood' => 21000, 'clay' => 26500, 'iron' => 32000, 'crop' => 15500, 'time' => 130240), array('wood' => 21500, 'clay' => 27500, 'iron' => 33000, 'crop' => 16000, 'time' => 133760), array('wood' => 22500, 'clay' => 28500, 'iron' => 34000, 'crop' => 16500, 'time' => 137280), array('wood' => 23000, 'clay' => 29000, 'iron' => 35000, 'crop' => 17000, 'time' => 140800), array('wood' => 24000, 'clay' => 30000, 'iron' => 36500, 'crop' => - 17500, 'time' => 144320), array('wood' => 24500, 'clay' => 31000, 'iron' => 37500, 'crop' => 18000, 'time' => 147840), array('wood' => 25500, 'clay' => 32000, 'iron' => 38500, 'crop' => 18500, 'time' => 151360), array('wood' => 26000, 'clay' => 33000, 'iron' => 39500, 'crop' => 19500, 'time' => 154880), array('wood' => 27000, 'clay' => 34000, 'iron' => 41000, 'crop' => 20000, 'time' => 158400), array('wood' => 27500, 'clay' => 34500, 'iron' => 42000, 'crop' => 20500, 'time' => 161920), array('wood' => 28500, 'clay' => 35500, - 'iron' => 43000, 'crop' => 21000, 'time' => 165440), array('wood' => 29000, 'clay' => 36500, 'iron' => 44000, 'crop' => 21500, 'time' => 168960), array('wood' => 30000, 'clay' => 37500, 'iron' => 45500, 'crop' => 22000, 'time' => 172480), array('wood' => 30500, 'clay' => 38500, 'iron' => 46500, 'crop' => 22500, 'time' => 176000), array('wood' => 31500, 'clay' => 39500, 'iron' => 47500, 'crop' => 23000, 'time' => 179520), array('wood' => 32000, 'clay' => 40500, 'iron' => 49000, 'crop' => 23500, 'time' => 183040), array('wood' => - 33000, 'clay' => 41500, 'iron' => 50000, 'crop' => 24500, 'time' => 186560), array('wood' => 33500, 'clay' => 42500, 'iron' => 51000, 'crop' => 25000, 'time' => 190080), array('wood' => 34500, 'clay' => 43500, 'iron' => 52500, 'crop' => 25500, 'time' => 193600), array('wood' => 35000, 'clay' => 44500, 'iron' => 53500, 'crop' => 26000, 'time' => 197120), array('wood' => 36000, 'clay' => 45500, 'iron' => 55000, 'crop' => 26500, 'time' => 200640), array('wood' => 37000, 'clay' => 46500, 'iron' => 56000, 'crop' => 27000, 'time' => - 204160), array('wood' => 37500, 'clay' => 47500, 'iron' => 57000, 'crop' => 28000, 'time' => 207680), array('wood' => 38500, 'clay' => 48500, 'iron' => 58500, 'crop' => 28500, 'time' => 211200), array('wood' => 39000, 'clay' => 49500, 'iron' => 59500, 'crop' => 29000, 'time' => 214720)); - $h3_full = array(array('wood' => 300, 'clay' => 320, 'iron' => 420, 'crop' => 160, 'time' => 3840), array('wood' => 780, 'clay' => 830, 'iron' => 1100, 'crop' => 450, 'time' => 7680), array('wood' => 1300, 'clay' => 1400, 'iron' => 1800, 'crop' => 750, 'time' => 11520), array('wood' => 1900, 'clay' => 2000, 'iron' => 2500, 'crop' => 1100, 'time' => 15360), array('wood' => 2500, 'clay' => 2600, 'iron' => 3400, 'crop' => 1400, 'time' => 19200), array('wood' => 3100, 'clay' => 3300, 'iron' => 4200, 'crop' => 1800, 'time' => 23040), - array('wood' => 3800, 'clay' => 4000, 'iron' => 5100, 'crop' => 2200, 'time' => 26880), array('wood' => 4400, 'clay' => 4700, 'iron' => 6100, 'crop' => 2600, 'time' => 30720), array('wood' => 5100, 'clay' => 5500, 'iron' => 7000, 'crop' => 3000, 'time' => 34560), array('wood' => 5900, 'clay' => 6200, 'iron' => 8000, 'crop' => 3400, 'time' => 38400), array('wood' => 6600, 'clay' => 7000, 'iron' => 9000, 'crop' => 3800, 'time' => 42240), array('wood' => 7400, 'clay' => 7800, 'iron' => 10000, 'crop' => 4200, 'time' => 46080), - array('wood' => 8100, 'clay' => 8600, 'iron' => 11000, 'crop' => 4700, 'time' => 49920), array('wood' => 8900, 'clay' => 9500, 'iron' => 12000, 'crop' => 5100, 'time' => 53760), array('wood' => 9700, 'clay' => 10500, 'iron' => 13500, 'crop' => 5600, 'time' => 57600), array('wood' => 10500, 'clay' => 11000, 'iron' => 14500, 'crop' => 6100, 'time' => 61440), array('wood' => 11500, 'clay' => 12000, 'iron' => 15500, 'crop' => 6600, 'time' => 65280), array('wood' => 12000, 'clay' => 13000, 'iron' => 16500, 'crop' => 7000, 'time' => - 69120), array('wood' => 13000, 'clay' => 14000, 'iron' => 18000, 'crop' => 7500, 'time' => 72960), array('wood' => 14000, 'clay' => 15000, 'iron' => 19000, 'crop' => 8000, 'time' => 76800), array('wood' => 15000, 'clay' => 15500, 'iron' => 20000, 'crop' => 8500, 'time' => 80640), array('wood' => 15500, 'clay' => 16500, 'iron' => 21500, 'crop' => 9100, 'time' => 84480), array('wood' => 16500, 'clay' => 17500, 'iron' => 22500, 'crop' => 9600, 'time' => 88320), array('wood' => 17500, 'clay' => 18500, 'iron' => 24000, 'crop' => 10000, - 'time' => 92160), array('wood' => 18500, 'clay' => 19500, 'iron' => 25000, 'crop' => 10500, 'time' => 96000), array('wood' => 19500, 'clay' => 20500, 'iron' => 26500, 'crop' => 11000, 'time' => 99840), array('wood' => 20500, 'clay' => 21500, 'iron' => 27500, 'crop' => 11500, 'time' => 103680), array('wood' => 21500, 'clay' => 22500, 'iron' => 29000, 'crop' => 12000, 'time' => 107520), array('wood' => 22000, 'clay' => 23500, 'iron' => 30500, 'crop' => 13000, 'time' => 111360), array('wood' => 23000, 'clay' => 24500, 'iron' => 31500, - 'crop' => 13500, 'time' => 115200), array('wood' => 24000, 'clay' => 25500, 'iron' => 33000, 'crop' => 14000, 'time' => 119040), array('wood' => 25000, 'clay' => 26500, 'iron' => 34000, 'crop' => 14500, 'time' => 122880), array('wood' => 26000, 'clay' => 27500, 'iron' => 35500, 'crop' => 15000, 'time' => 126720), array('wood' => 27000, 'clay' => 28500, 'iron' => 37000, 'crop' => 15500, 'time' => 130560), array('wood' => 28000, 'clay' => 30000, 'iron' => 38500, 'crop' => 16000, 'time' => 134400), array('wood' => 29000, 'clay' => 31000, - 'iron' => 39500, 'crop' => 17000, 'time' => 138240), array('wood' => 30000, 'clay' => 32000, 'iron' => 41000, 'crop' => 17500, 'time' => 142080), array('wood' => 31000, 'clay' => 33000, 'iron' => 42500, 'crop' => 18000, 'time' => 145920), array('wood' => 32000, 'clay' => 34000, 'iron' => 44000, 'crop' => 18500, 'time' => 149760), array('wood' => 33000, 'clay' => 35000, 'iron' => 45500, 'crop' => 19000, 'time' => 153600), array('wood' => 34000, 'clay' => 36500, 'iron' => 46500, 'crop' => 19500, 'time' => 157440), array('wood' => 35500, - 'clay' => 37500, 'iron' => 48000, 'crop' => 20500, 'time' => 161280), array('wood' => 36500, 'clay' => 38500, 'iron' => 49500, 'crop' => 21000, 'time' => 165120), array('wood' => 37500, 'clay' => 39500, 'iron' => 51000, 'crop' => 21500, 'time' => 168960), array('wood' => 38500, 'clay' => 41000, 'iron' => 52500, 'crop' => 22000, 'time' => 172800), array('wood' => 39500, 'clay' => 42000, 'iron' => 54000, 'crop' => 23000, 'time' => 176640), array('wood' => 40500, 'clay' => 43000, 'iron' => 55000, 'crop' => 23500, 'time' => 180480), - array('wood' => 41500, 'clay' => 44000, 'iron' => 57000, 'crop' => 24000, 'time' => 184320), array('wood' => 43000, 'clay' => 45500, 'iron' => 58500, 'crop' => 24500, 'time' => 188160), array('wood' => 44000, 'clay' => 46500, 'iron' => 60000, 'crop' => 25500, 'time' => 192000), array('wood' => 45000, 'clay' => 47500, 'iron' => 61500, 'crop' => 26000, 'time' => 195840), array('wood' => 46000, 'clay' => 49000, 'iron' => 63000, 'crop' => 26500, 'time' => 199680), array('wood' => 47000, 'clay' => 50000, 'iron' => 64500, 'crop' => 27000, - 'time' => 203520), array('wood' => 48500, 'clay' => 51000, 'iron' => 66000, 'crop' => 28000, 'time' => 207360), array('wood' => 49500, 'clay' => 52500, 'iron' => 67500, 'crop' => 28500, 'time' => 211200), array('wood' => 50500, 'clay' => 53500, 'iron' => 69000, 'crop' => 29000, 'time' => 215040), array('wood' => 51500, 'clay' => 55000, 'iron' => 70500, 'crop' => 30000, 'time' => 218880), array('wood' => 53000, 'clay' => 56000, 'iron' => 72000, 'crop' => 30500, 'time' => 222720), array('wood' => 54000, 'clay' => 57000, 'iron' => 73500, - 'crop' => 31000, 'time' => 226560), array('wood' => 55000, 'clay' => 58500, 'iron' => 75000, 'crop' => 31500, 'time' => 230400), array('wood' => 56500, 'clay' => 59500, 'iron' => 76500, 'crop' => 32500, 'time' => 234240)); - $h5_full = array(array('wood' => 1100, 'clay' => 880, 'iron' => 640, 'crop' => 200, 'time' => 5280), array('wood' => 2700, 'clay' => 2200, 'iron' => 1600, 'crop' => 550, 'time' => 10560), array('wood' => 4500, 'clay' => 3600, 'iron' => 2600, 'crop' => 910, 'time' => 15840), array('wood' => 6400, 'clay' => 5100, 'iron' => 3800, 'crop' => 1300, 'time' => 21120), array('wood' => 8400, 'clay' => 6800, 'iron' => 5000, 'crop' => 1700, 'time' => 26400), array('wood' => 10500, 'clay' => 8500, 'iron' => 6300, 'crop' => 2200, 'time' => 31680), - array('wood' => 13000, 'clay' => 10500, 'iron' => 7600, 'crop' => 2600, 'time' => 36960), array('wood' => 15000, 'clay' => 12000, 'iron' => 9000, 'crop' => 3100, 'time' => 42240), array('wood' => 17500, 'clay' => 14000, 'iron' => 10500, 'crop' => 3600, 'time' => 47520), array('wood' => 20000, 'clay' => 16000, 'iron' => 12000, 'crop' => 4100, 'time' => 52800), array('wood' => 22500, 'clay' => 18000, 'iron' => 13500, 'crop' => 4600, 'time' => 58080), array('wood' => 25000, 'clay' => 20500, 'iron' => 15000, 'crop' => 5100, 'time' => - 63360), array('wood' => 28000, 'clay' => 22500, 'iron' => 16500, 'crop' => 5700, 'time' => 68640), array('wood' => 30500, 'clay' => 24500, 'iron' => 18000, 'crop' => 6200, 'time' => 73920), array('wood' => 33500, 'clay' => 27000, 'iron' => 20000, 'crop' => 6800, 'time' => 79200), array('wood' => 36000, 'clay' => 29000, 'iron' => 21500, 'crop' => 7400, 'time' => 84480), array('wood' => 39000, 'clay' => 31500, 'iron' => 23000, 'crop' => 7900, 'time' => 89760), array('wood' => 42000, 'clay' => 33500, 'iron' => 25000, 'crop' => 8500, - 'time' => 95040), array('wood' => 45000, 'clay' => 36000, 'iron' => 26500, 'crop' => 9100, 'time' => 100320), array('wood' => 48000, 'clay' => 38500, 'iron' => 28500, 'crop' => 9700, 'time' => 105600), array('wood' => 51000, 'clay' => 41000, 'iron' => 30000, 'crop' => 10500, 'time' => 110880), array('wood' => 54000, 'clay' => 43500, 'iron' => 32000, 'crop' => 11000, 'time' => 116160), array('wood' => 57000, 'clay' => 46000, 'iron' => 33500, 'crop' => 11500, 'time' => 121440), array('wood' => 60000, 'clay' => 48500, 'iron' => 35500, - 'crop' => 12000, 'time' => 126720), array('wood' => 63000, 'clay' => 51000, 'iron' => 37500, 'crop' => 13000, 'time' => 132000), array('wood' => 66500, 'clay' => 53500, 'iron' => 39500, 'crop' => 13500, 'time' => 137280), array('wood' => 69500, 'clay' => 56000, 'iron' => 41000, 'crop' => 14000, 'time' => 142560), array('wood' => 73000, 'clay' => 58500, 'iron' => 43000, 'crop' => 15000, 'time' => 147840), array('wood' => 76000, 'clay' => 61000, 'iron' => 45000, 'crop' => 15500, 'time' => 153120), array('wood' => 79500, 'clay' => 64000, - 'iron' => 47000, 'crop' => 16000, 'time' => 158400), array('wood' => 82500, 'clay' => 66500, 'iron' => 49000, 'crop' => 17000, 'time' => 163680), array('wood' => 86000, 'clay' => 69500, 'iron' => 51000, 'crop' => 17500, 'time' => 168960), array('wood' => 89500, 'clay' => 72000, 'iron' => 53000, 'crop' => 18000, 'time' => 174240), array('wood' => 93000, 'clay' => 74500, 'iron' => 55000, 'crop' => 19000, 'time' => 179520), array('wood' => 96000, 'clay' => 77500, 'iron' => 57000, 'crop' => 19500, 'time' => 184800), array('wood' => 99500, - 'clay' => 80000, 'iron' => 59000, 'crop' => 20500, 'time' => 190080), array('wood' => 103000, 'clay' => 83000, 'iron' => 61000, 'crop' => 21000, 'time' => 195360), array('wood' => 106500, 'clay' => 86000, 'iron' => 63000, 'crop' => 21500, 'time' => 200640), array('wood' => 110000, 'clay' => 88500, 'iron' => 65500, 'crop' => 22500, 'time' => 205920), array('wood' => 113500, 'clay' => 91500, 'iron' => 67500, 'crop' => 23000, 'time' => 211200), array('wood' => 117000, 'clay' => 94500, 'iron' => 69500, 'crop' => 24000, 'time' => 216480), - array('wood' => 121000, 'clay' => 97500, 'iron' => 75500, 'crop' => 24500, 'time' => 221760), array('wood' => 124500, 'clay' => 100000, 'iron' => 74000, 'crop' => 25500, 'time' => 227040), array('wood' => 128000, 'clay' => 103000, 'iron' => 76000, 'crop' => 26000, 'time' => 232320), array('wood' => 131500, 'clay' => 106000, 'iron' => 78000, 'crop' => 27000, 'time' => 237600), array('wood' => 135500, 'clay' => 109000, 'iron' => 80500, 'crop' => 27500, 'time' => 242800), array('wood' => 139000, 'clay' => 112000, 'iron' => 82500, 'crop' => - 28500, 'time' => 248160), array('wood' => 143000, 'clay' => 115000, 'iron' => 84500, 'crop' => 29000, 'time' => 253440), array('wood' => 146500, 'clay' => 118000, 'iron' => 87000, 'crop' => 30000, 'time' => 258720), array('wood' => 150000, 'clay' => 121000, 'iron' => 89000, 'crop' => 30500, 'time' => 264000), array('wood' => 154000, 'clay' => 124000, 'iron' => 91500, 'crop' => 31500, 'time' => 269280), array('wood' => 158000, 'clay' => 127000, 'iron' => 93500, 'crop' => 32000, 'time' => 274560), array('wood' => 161500, 'clay' => 130000, - 'iron' => 96000, 'crop' => 33000, 'time' => 279840), array('wood' => 165500, 'clay' => 133000, 'iron' => 98000, 'crop' => 33500, 'time' => 285120), array('wood' => 169500, 'clay' => 136500, 'iron' => 100500, 'crop' => 34500, 'time' => 290400), array('wood' => 173000, 'clay' => 139500, 'iron' => 102500, 'crop' => 35000, 'time' => 295680), array('wood' => 177000, 'clay' => 142500, 'iron' => 105000, 'crop' => 36000, 'time' => 300960), array('wood' => 181000, 'clay' => 145500, 'iron' => 107000, 'crop' => 37000, 'time' => 306240), array('wood' => - 185000, 'clay' => 149000, 'iron' => 109500, 'crop' => 37500, 'time' => 311520), array('wood' => 188500, 'clay' => 152000, 'iron' => 112000, 'crop' => 38500, 'time' => 316800), array('wood' => 192500, 'clay' => 155000, 'iron' => 114000, 'crop' => 39000, 'time' => 322080)); - $h6_full = array(array('wood' => 1100, 'clay' => 1300, 'iron' => 1600, 'crop' => 360, 'time' => 7040), array('wood' => 2700, 'clay' => 3100, 'iron' => 3900, 'crop' => 930, 'time' => 14080), array('wood' => 4500, 'clay' => 5200, 'iron' => 6400, 'crop' => 1500, 'time' => 21120), array('wood' => 6400, 'clay' => 7400, 'iron' => 9200, 'crop' => 2200, 'time' => 28160), array('wood' => 8400, 'clay' => 9800, 'iron' => 12000, 'crop' => 2900, 'time' => 35200), array('wood' => 10500, 'clay' => 12500, 'iron' => 15500, 'crop' => 3700, 'time' => 42240), - array('wood' => 13000, 'clay' => 15000, 'iron' => 18500, 'crop' => 4400, 'time' => 49280), array('wood' => 15000, 'clay' => 17500, 'iron' => 22000, 'crop' => 5200, 'time' => 56320), array('wood' => 17500, 'clay' => 20500, 'iron' => 25500, 'crop' => 6100, 'time' => 63360), array('wood' => 20000, 'clay' => 23500, 'iron' => 29000, 'crop' => 6900, 'time' => 70400), array('wood' => 22500, 'clay' => 26000, 'iron' => 32500, 'crop' => 7800, 'time' => 77440), array('wood' => 25000, 'clay' => 29500, 'iron' => 36500, 'crop' => 8700, 'time' => 84480), - array('wood' => 28000, 'clay' => 32500, 'iron' => 40000, 'crop' => 9600, 'time' => 91520), array('wood' => 30500, 'clay' => 35500, 'iron' => 44000, 'crop' => 10500, 'time' => 98560), array('wood' => 33500, 'clay' => 38500, 'iron' => 48000, 'crop' => 11500, 'time' => 105600), array('wood' => 36000, 'clay' => 42000, 'iron' => 52000, 'crop' => 12500, 'time' => 112640), array('wood' => 39000, 'clay' => 45000, 'iron' => 56500, 'crop' => 13500, 'time' => 119680), array('wood' => 42000, 'clay' => 48500, 'iron' => 60500, 'crop' => 14500, 'time' => - 126720), array('wood' => 45000, 'clay' => 52000, 'iron' => 64500, 'crop' => 15500, 'time' => 133760), array('wood' => 48000, 'clay' => 55500, 'iron' => 69000, 'crop' => 16500, 'time' => 140800), array('wood' => 51000, 'clay' => 59000, 'iron' => 73500, 'crop' => 17500, 'time' => 147840), array('wood' => 54000, 'clay' => 62500, 'iron' => 77500, 'crop' => 18500, 'time' => 154880), array('wood' => 57000, 'clay' => 66000, 'iron' => 82000, 'crop' => 19500, 'time' => 161920), array('wood' => 60000, 'clay' => 69500, 'iron' => 86500, 'crop' => 20500, - 'time' => 168960), array('wood' => 63000, 'clay' => 73000, 'iron' => 91000, 'crop' => 22000, 'time' => 176000), array('wood' => 66500, 'clay' => 77000, 'iron' => 95500, 'crop' => 23000, 'time' => 183040), array('wood' => 69500, 'clay' => 80500, 'iron' => 100500, 'crop' => 24000, 'time' => 190080), array('wood' => 73000, 'clay' => 84500, 'iron' => 105000, 'crop' => 25000, 'time' => 197120), array('wood' => 76000, 'clay' => 88000, 'iron' => 109500, 'crop' => 26000, 'time' => 204160), array('wood' => 79500, 'clay' => 92000, 'iron' => 114500, - 'crop' => 27500, 'time' => 211200), array('wood' => 82500, 'clay' => 96000, 'iron' => 119000, 'crop' => 28500, 'time' => 218240), array('wood' => 86000, 'clay' => 99500, 'iron' => 124000, 'crop' => 29500, 'time' => 255280), array('wood' => 89500, 'clay' => 103500, 'iron' => 129000, 'crop' => 31000, 'time' => 232320), array('wood' => 93000, 'clay' => 107500, 'iron' => 134000, 'crop' => 32000, 'time' => 239360), array('wood' => 96000, 'clay' => 111500, 'iron' => 139000, 'crop' => 33000, 'time' => 246400), array('wood' => 99500, 'clay' => 115500, - 'iron' => 143500, 'crop' => 34500, 'time' => 253440), array('wood' => 103000, 'clay' => 119500, 'iron' => 148500, 'crop' => 35500, 'time' => 260480), array('wood' => 106500, 'clay' => 123500, 'iron' => 154000, 'crop' => 37000, 'time' => 267520), array('wood' => 110000, 'clay' => 127500, 'iron' => 159000, 'crop' => 38000, 'time' => 274560), array('wood' => 113500, 'clay' => 132000, 'iron' => 164000, 'crop' => 39000, 'time' => 281600), array('wood' => 117000, 'clay' => 136000, 'iron' => 169000, 'crop' => 40500, 'time' => 288640), array('wood' => - 121000, 'clay' => 140000, 'iron' => 174500, 'crop' => 41500, 'time' => 295680), array('wood' => 124500, 'clay' => 144000, 'iron' => 179500, 'crop' => 43000, 'time' => 302720), array('wood' => 128000, 'clay' => 148500, 'iron' => 184500, 'crop' => 44000, 'time' => 309760), array('wood' => 131500, 'clay' => 152500, 'iron' => 190000, 'crop' => 45500, 'time' => 316800), array('wood' => 135500, 'clay' => 157000, 'iron' => 195500, 'crop' => 46500, 'time' => 323840), array('wood' => 139000, 'clay' => 161000, 'iron' => 200500, 'crop' => 48000, 'time' => - 330880), array('wood' => 143000, 'clay' => 165500, 'iron' => 206000, 'crop' => 49500, 'time' => 337920), array('wood' => 146500, 'clay' => 170000, 'iron' => 211500, 'crop' => 50500, 'time' => 344960), array('wood' => 150000, 'clay' => 174000, 'iron' => 216500, 'crop' => 52000, 'time' => 352000), array('wood' => 154000, 'clay' => 178500, 'iron' => 222000, 'crop' => 53000, 'time' => 359040), array('wood' => 46000, 'clay' => 183000, 'iron' => 227500, 'crop' => 54500, 'time' => 366080), array('wood' => 46000, 'clay' => 187500, 'iron' => 233000, 'crop' - => 56000, 'time' => 373120), array('wood' => 166500, 'clay' => 192000, 'iron' => 238500, 'crop' => 57000, 'time' => 380160), array('wood' => 169500, 'clay' => 196000, 'iron' => 240000, 'crop' => 58500, 'time' => 387200), array('wood' => 173000, 'clay' => 200500, 'iron' => 240000, 'crop' => 59500, 'time' => 394240), array('wood' => 177000, 'clay' => 205000, 'iron' => 240000, 'crop' => 61000, 'time' => 401280), array('wood' => 181000, 'clay' => 209500, 'iron' => 240000, 'crop' => 62500, 'time' => 406970), array('wood' => 185000, 'clay' => 214000, - 'iron' => 240000, 'crop' => 64000, 'time' => 415360), array('wood' => 188500, 'clay' => 219000, 'iron' => 240000, 'crop' => 65000, 'time' => 422400), array('wood' => 192500, 'clay' => 223500, 'iron' => 240000, 'crop' => 66500, 'time' => 429440)); - -//TEUTON UNITS - $h11_full = array(array('wood' => 190, 'clay' => 150, 'iron' => 80, 'crop' => 80, 'time' => 1440), array('wood' => 520, 'clay' => 430, 'iron' => 260, 'crop' => 260, 'time' => 2880), array('wood' => 870, 'clay' => 710, 'iron' => 430, 'crop' => 430, 'time' => 4320), array('wood' => 1200, 'clay' => 1000, 'iron' => 620, 'crop' => 620, 'time' => 5760), array('wood' => 1600, 'clay' => 1300, 'iron' => 820, 'crop' => 820, 'time' => 7200), array('wood' => 2100, 'clay' => 1700, 'iron' => 1000, 'crop' => 1000, 'time' => 8640), array('wood' => 2500, 'clay' => - 2000, 'iron' => 1300, 'crop' => 1300, 'time' => 10080), array('wood' => 3000, 'clay' => 2400, 'iron' => 1500, 'crop' => 1500, 'time' => 11520), array('wood' => 3400, 'clay' => 2800, 'iron' => 1700, 'crop' => 1700, 'time' => 12960), array('wood' => 3900, 'clay' => 3200, 'iron' => 2000, 'crop' => 2000, 'time' => 14400), array('wood' => 4400, 'clay' => 3600, 'iron' => 2200, 'crop' => 2200, 'time' => 15840), array('wood' => 4900, 'clay' => 4000, 'iron' => 2500, 'crop' => 2500, 'time' => 17280), array('wood' => 5400, 'clay' => 4400, 'iron' => 2700, - 'crop' => 2700, 'time' => 18720), array('wood' => 6000, 'clay' => 4900, 'iron' => 3000, 'crop' => 3000, 'time' => 20160), array('wood' => 6500, 'clay' => 5300, 'iron' => 3200, 'crop' => 3200, 'time' => 21600), array('wood' => 7000, 'clay' => 5800, 'iron' => 3500, 'crop' => 3500, 'time' => 23040), array('wood' => 7600, 'clay' => 6200, 'iron' => 3800, 'crop' => 3800, 'time' => 24480), array('wood' => 8200, 'clay' => 6700, 'iron' => 4100, 'crop' => 4100, 'time' => 25920), array('wood' => 8700, 'clay' => 7100, 'iron' => 4400, 'crop' => 4400, - 'time' => 27360), array('wood' => 9300, 'clay' => 7600, 'iron' => 4700, 'crop' => 4700, 'time' => 28800), array('wood' => 9900, 'clay' => 8100, 'iron' => 4900, 'crop' => 4900, 'time' => 30240), array('wood' => 10500, 'clay' => 8600, 'iron' => 5200, 'crop' => 5200, 'time' => 31680), array('wood' => 11000, 'clay' => 9100, 'iron' => 5500, 'crop' => 5500, 'time' => 33120), array('wood' => 11500, 'clay' => 9600, 'iron' => 5800, 'crop' => 5800, 'time' => 34560), array('wood' => 12500, 'clay' => 10000, 'iron' => 6100, 'crop' => 6100, 'time' => 36000), - array('wood' => 13000, 'clay' => 10500, 'iron' => 6500, 'crop' => 6500, 'time' => 37440), array('wood' => 13500, 'clay' => 11000, 'iron' => 6800, 'crop' => 6800, 'time' => 38880), array('wood' => 14000, 'clay' => 11500, 'iron' => 7100, 'crop' => 7100, 'time' => 40320), array('wood' => 15000, 'clay' => 12000, 'iron' => 7400, 'crop' => 7400, 'time' => 41760), array('wood' => 15500, 'clay' => 12500, 'iron' => 7700, 'crop' => 7700, 'time' => 43200), array('wood' => 16000, 'clay' => 13000, 'iron' => 8000, 'crop' => 8000, 'time' => 44640), array('wood' - => 16500, 'clay' => 13500, 'iron' => 8400, 'crop' => 8400, 'time' => 46080), array('wood' => 17500, 'clay' => 14000, 'iron' => 8700, 'crop' => 8700, 'time' => 47520), array('wood' => 18000, 'clay' => 15000, 'iron' => 9000, 'crop' => 9000, 'time' => 48960), array('wood' => 18500, 'clay' => 15500, 'iron' => 9400, 'crop' => 9400, 'time' => 50400), array('wood' => 19500, 'clay' => 16000, 'iron' => 9700, 'crop' => 9700, 'time' => 51840), array('wood' => 20000, 'clay' => 16500, 'iron' => 10000, 'crop' => 10000, 'time' => 53280), array('wood' => - 21000, 'clay' => 17000, 'iron' => 10500, 'crop' => 10500, 'time' => 54720), array('wood' => 21500, 'clay' => 17500, 'iron' => 10500, 'crop' => 10500, 'time' => 56160), array('wood' => 22000, 'clay' => 18000, 'iron' => 11000, 'crop' => 11000, 'time' => 57600), array('wood' => 23000, 'clay' => 18500, 'iron' => 11500, 'crop' => 11500, 'time' => 59040), array('wood' => 23500, 'clay' => 19000, 'iron' => 12000, 'crop' => 12000, 'time' => 60480), array('wood' => 24000, 'clay' => 20000, 'iron' => 12000, 'crop' => 12000, 'time' => 61920), array('wood' => - 25000, 'clay' => 20500, 'iron' => 12500, 'crop' => 12500, 'time' => 63360), array('wood' => 25500, 'clay' => 21000, 'iron' => 13000, 'crop' => 13000, 'time' => 64800), array('wood' => 26500, 'clay' => 21500, 'iron' => 13000, 'crop' => 13000, 'time' => 66240), array('wood' => 27000, 'clay' => 22000, 'iron' => 13500, 'crop' => 13500, 'time' => 67680), array('wood' => 28000, 'clay' => 22500, 'iron' => 14000, 'crop' => 14000, 'time' => 69120), array('wood' => 28500, 'clay' => 23500, 'iron' => 14500, 'crop' => 14500, 'time' => 70560), array('wood' => - 29500, 'clay' => 24000, 'iron' => 14500, 'crop' => 14500, 'time' => 72000), array('wood' => 30000, 'clay' => 24500, 'iron' => 15000, 'crop' => 15000, 'time' => 73440), array('wood' => 30500, 'clay' => 25000, 'iron' => 15500, 'crop' => 15500, 'time' => 74880), array('wood' => 31500, 'clay' => 25500, 'iron' => 15500, 'crop' => 15500, 'time' => 76320), array('wood' => 32000, 'clay' => 26500, 'iron' => 16000, 'crop' => 16000, 'time' => 77760), array('wood' => 33000, 'clay' => 27000, 'iron' => 16500, 'crop' => 16500, 'time' => 79200), array('wood' => - 33500, 'clay' => 27500, 'iron' => 17000, 'crop' => 17000, 'time' => 80640), array('wood' => 34500, 'clay' => 28000, 'iron' => 17000, 'crop' => 17000, 'time' => 82080), array('wood' => 35000, 'clay' => 29000, 'iron' => 17500, 'crop' => 17500, 'time' => 83520), array('wood' => 36000, 'clay' => 29500, 'iron' => 18000, 'crop' => 18000, 'time' => 84960), array('wood' => 36500, 'clay' => 30000, 'iron' => 18500, 'crop' => 18500, 'time' => 86400), array('wood' => 37500, 'clay' => 30500, 'iron' => 19000, 'crop' => 19000, 'time' => 87840)); - $h12_full = array(array('wood' => 290, 'clay' => 140, 'iron' => 170, 'crop' => 80, 'time' => 2240), array('wood' => 760, 'clay' => 400, 'iron' => 480, 'crop' => 260, 'time' => 4480), array('wood' => 1300, 'clay' => 670, 'iron' => 790, 'crop' => 430, 'time' => 6720), array('wood' => 1800, 'clay' => 960, 'iron' => 1100, 'crop' => 620, 'time' => 8960), array('wood' => 2400, 'clay' => 1300, 'iron' => 1500, 'crop' => 820, 'time' => 11200), array('wood' => 3000, 'clay' => 1600, 'iron' => 1900, 'crop' => 1000, 'time' => 13440), array('wood' => 3600, - 'clay' => 1900, 'iron' => 2300, 'crop' => 1300, 'time' => 15680), array('wood' => 4300, 'clay' => 2300, 'iron' => 2700, 'crop' => 1500, 'time' => 17920), array('wood' => 5000, 'clay' => 2700, 'iron' => 3100, 'crop' => 1700, 'time' => 20160), array('wood' => 5700, 'clay' => 3000, 'iron' => 3600, 'crop' => 2000, 'time' => 22400), array('wood' => 6400, 'clay' => 3400, 'iron' => 4000, 'crop' => 2200, 'time' => 24640), array('wood' => 7100, 'clay' => 3800, 'iron' => 4500, 'crop' => 2500, 'time' => 26880), array('wood' => 7900, 'clay' => 4200, - 'iron' => 4900, 'crop' => 2700, 'time' => 29120), array('wood' => 8700, 'clay' => 4600, 'iron' => 5400, 'crop' => 3000, 'time' => 31360), array('wood' => 9400, 'clay' => 5000, 'iron' => 5900, 'crop' => 3200, 'time' => 33600), array('wood' => 10000, 'clay' => 5400, 'iron' => 6400, 'crop' => 3500, 'time' => 35840), array('wood' => 11000, 'clay' => 5900, 'iron' => 6900, 'crop' => 3800, 'time' => 38080), array('wood' => 12000, 'clay' => 6300, 'iron' => 7400, 'crop' => 4100, 'time' => 40320), array('wood' => 12500, 'clay' => 6700, 'iron' => 7900, - 'crop' => 4400, 'time' => 42560), array('wood' => 13500, 'clay' => 7200, 'iron' => 8500, 'crop' => 4700, 'time' => 44800), array('wood' => 14500, 'clay' => 7600, 'iron' => 9000, 'crop' => 4900, 'time' => 47040), array('wood' => 15000, 'clay' => 8100, 'iron' => 9500, 'crop' => 5200, 'time' => 49280), array('wood' => 16000, 'clay' => 8600, 'iron' => 10000, 'crop' => 5500, 'time' => 51520), array('wood' => 17000, 'clay' => 9000, 'iron' => 10500, 'crop' => 5800, 'time' => 53760), array('wood' => 18000, 'clay' => 9500, 'iron' => 11000, 'crop' => 6100, - 'time' => 56000), array('wood' => 19000, 'clay' => 10000, 'iron' => 11500, 'crop' => 6500, 'time' => 58240), array('wood' => 19500, 'clay' => 10500, 'iron' => 12500, 'crop' => 6800, 'time' => 60480), array('wood' => 20500, 'clay' => 11000, 'iron' => 13000, 'crop' => 7100, 'time' => 62720), array('wood' => 21500, 'clay' => 11500, 'iron' => 13500, 'crop' => 7400, 'time' => 64960), array('wood' => 22500, 'clay' => 12000, 'iron' => 14000, 'crop' => 7700, 'time' => 67200), array('wood' => 23500, 'clay' => 12500, 'iron' => 14500, 'crop' => 8000, - 'time' => 69440), array('wood' => 24500, 'clay' => 13000, 'iron' => 15000, 'crop' => 8400, 'time' => 71680), array('wood' => 25500, 'clay' => 13500, 'iron' => 16000, 'crop' => 8700, 'time' => 73920), array('wood' => 26500, 'clay' => 14000, 'iron' => 16500, 'crop' => 9000, 'time' => 76160), array('wood' => 27000, 'clay' => 14500, 'iron' => 17000, 'crop' => 9400, 'time' => 78400), array('wood' => 28000, 'clay' => 15000, 'iron' => 17500, 'crop' => 9700, 'time' => 80640), array('wood' => 29000, 'clay' => 15500, 'iron' => 18000, 'crop' => 10000, - 'time' => 82880), array('wood' => 30000, 'clay' => 16000, 'iron' => 18500, 'crop' => 10500, 'time' => 85120), array('wood' => 31000, 'clay' => 16500, 'iron' => 19500, 'crop' => 10500, 'time' => 87360), array('wood' => 32000, 'clay' => 17000, 'iron' => 20000, 'crop' => 11000, 'time' => 89600), array('wood' => 33000, 'clay' => 17500, 'iron' => 20500, 'crop' => 11500, 'time' => 91840), array('wood' => 34000, 'clay' => 18000, 'iron' => 21500, 'crop' => 12000, 'time' => 94080), array('wood' => 35000, 'clay' => 18500, 'iron' => 22000, 'crop' => 12000, - 'time' => 96320), array('wood' => 36500, 'clay' => 19500, 'iron' => 22500, 'crop' => 12500, 'time' => 98560), array('wood' => 37500, 'clay' => 20000, 'iron' => 23500, 'crop' => 13000, 'time' => 100800), array('wood' => 38500, 'clay' => 20500, 'iron' => 24000, 'crop' => 13000, 'time' => 103040), array('wood' => 39500, 'clay' => 21000, 'iron' => 24500, 'crop' => 13500, 'time' => 105280), array('wood' => 40500, 'clay' => 21500, 'iron' => 25500, 'crop' => 14000, 'time' => 107520), array('wood' => 41500, 'clay' => 22000, 'iron' => 26000, 'crop' => - 14500, 'time' => 109760), array('wood' => 42500, 'clay' => 22500, 'iron' => 26500, 'crop' => 14500, 'time' => 112000), array('wood' => 43500, 'clay' => 23000, 'iron' => 27500, 'crop' => 15000, 'time' => 114240), array('wood' => 44500, 'clay' => 23500, 'iron' => 28000, 'crop' => 15500, 'time' => 116480), array('wood' => 46000, 'clay' => 24500, 'iron' => 28500, 'crop' => 15500, 'time' => 118720), array('wood' => 47000, 'clay' => 25000, 'iron' => 29500, 'crop' => 16000, 'time' => 120960), array('wood' => 48000, 'clay' => 25500, 'iron' => 30000, - 'crop' => 16500, 'time' => 123200), array('wood' => 49000, 'clay' => 26000, 'iron' => 30500, 'crop' => 17000, 'time' => 125440), array('wood' => 50000, 'clay' => 26500, 'iron' => 31500, 'crop' => 17000, 'time' => 127680), array('wood' => 51000, 'clay' => 27000, 'iron' => 32000, 'crop' => 17500, 'time' => 129920), array('wood' => 52500, 'clay' => 28000, 'iron' => 32500, 'crop' => 18000, 'time' => 132160), array('wood' => 53500, 'clay' => 28500, 'iron' => 33500, 'crop' => 18500, 'time' => 134400), array('wood' => 54500, 'clay' => 29000, 'iron' => - 34000, 'crop' => 19000, 'time' => 136640)); - $h13_full = array(array('wood' => 260, 'clay' => 240, 'iron' => 340, 'crop' => 140, 'time' => 2400), array('wood' => 690, 'clay' => 640, 'iron' => 880, 'crop' => 400, 'time' => 4800), array('wood' => 1100, 'clay' => 1100, 'iron' => 1500, 'crop' => 670, 'time' => 7200), array('wood' => 1600, 'clay' => 1500, 'iron' => 2100, 'crop' => 960, 'time' => 9600), array('wood' => 2200, 'clay' => 2000, 'iron' => 2800, 'crop' => 1300, 'time' => 12000), array('wood' => 2700, 'clay' => 2500, 'iron' => 3500, 'crop' => 1600, 'time' => 14400), array('wood' => 3300, - 'clay' => 3100, 'iron' => 4200, 'crop' => 1900, 'time' => 16800), array('wood' => 3900, 'clay' => 3600, 'iron' => 5000, 'crop' => 2300, 'time' => 19200), array('wood' => 4500, 'clay' => 4200, 'iron' => 5800, 'crop' => 2700, 'time' => 21600), array('wood' => 5200, 'clay' => 4800, 'iron' => 6600, 'crop' => 3000, 'time' => 24000), array('wood' => 5800, 'clay' => 5400, 'iron' => 7400, 'crop' => 3400, 'time' => 26400), array('wood' => 6500, 'clay' => 6000, 'iron' => 8300, 'crop' => 3800, 'time' => 28800), array('wood' => 7200, 'clay' => 6700, 'iron' - => 9100, 'crop' => 4200, 'time' => 31200), array('wood' => 7900, 'clay' => 7300, 'iron' => 10000, 'crop' => 4600, 'time' => 33600), array('wood' => 8600, 'clay' => 8000, 'iron' => 11000, 'crop' => 5000, 'time' => 36000), array('wood' => 9300, 'clay' => 8600, 'iron' => 12000, 'crop' => 5400, 'time' => 38400), array('wood' => 10000, 'clay' => 9300, 'iron' => 13000, 'crop' => 5900, 'time' => 40800), array('wood' => 11000, 'clay' => 10000, 'iron' => 13500, 'crop' => 6300, 'time' => 43200), array('wood' => 11500, 'clay' => 10500, 'iron' => 14500, - 'crop' => 6700, 'time' => 45600), array('wood' => 12500, 'clay' => 11500, 'iron' => 15500, 'crop' => 7200, 'time' => 48000), array('wood' => 13000, 'clay' => 12000, 'iron' => 16500, 'crop' => 7600, 'time' => 50400), array('wood' => 14000, 'clay' => 13000, 'iron' => 17500, 'crop' => 8100, 'time' => 52800), array('wood' => 14500, 'clay' => 13500, 'iron' => 18500, 'crop' => 8600, 'time' => 55200), array('wood' => 15500, 'clay' => 14500, 'iron' => 19500, 'crop' => 9000, 'time' => 57600), array('wood' => 16000, 'clay' => 15000, 'iron' => 20500, - 'crop' => 9500, 'time' => 60000), array('wood' => 17000, 'clay' => 16000, 'iron' => 21500, 'crop' => 10000, 'time' => 62400), array('wood' => 18000, 'clay' => 16500, 'iron' => 23000, 'crop' => 10500, 'time' => 64800), array('wood' => 18500, 'clay' => 17500, 'iron' => 24000, 'crop' => 11000, 'time' => 67200), array('wood' => 19500, 'clay' => 18000, 'iron' => 25000, 'crop' => 11500, 'time' => 69600), array('wood' => 20500, 'clay' => 19000, 'iron' => 26000, 'crop' => 12000, 'time' => 72000), array('wood' => 21000, 'clay' => 19500, 'iron' => 27000, - 'crop' => 12500, 'time' => 74400), array('wood' => 22000, 'clay' => 20500, 'iron' => 28000, 'crop' => 13000, 'time' => 76800), array('wood' => 23000, 'clay' => 21500, 'iron' => 29500, 'crop' => 13500, 'time' => 79200), array('wood' => 24000, 'clay' => 22000, 'iron' => 30500, 'crop' => 14000, 'time' => 81600), array('wood' => 24500, 'clay' => 23000, 'iron' => 31500, 'crop' => 14500, 'time' => 84000), array('wood' => 25500, 'clay' => 24000, 'iron' => 32500, 'crop' => 15000, 'time' => 86400), array('wood' => 26500, 'clay' => 24500, 'iron' => 34000, - 'crop' => 15500, 'time' => 88800), array('wood' => 27500, 'clay' => 25500, 'iron' => 35000, 'crop' => 16000, 'time' => 91200), array('wood' => 28500, 'clay' => 26500, 'iron' => 36000, 'crop' => 16500, 'time' => 93600), array('wood' => 29000, 'clay' => 27000, 'iron' => 37000, 'crop' => 17000, 'time' => 96000), array('wood' => 30000, 'clay' => 28000, 'iron' => 38500, 'crop' => 17500, 'time' => 98400), array('wood' => 31000, 'clay' => 29000, 'iron' => 39500, 'crop' => 18000, 'time' => 100800), array('wood' => 32000, 'clay' => 29500, 'iron' => - 40500, 'crop' => 18500, 'time' => 103200), array('wood' => 33000, 'clay' => 30500, 'iron' => 42000, 'crop' => 19500, 'time' => 105600), array('wood' => 34000, 'clay' => 31500, 'iron' => 43000, 'crop' => 20000, 'time' => 108000), array('wood' => 34500, 'clay' => 32500, 'iron' => 44500, 'crop' => 20500, 'time' => 110400), array('wood' => 35500, 'clay' => 33000, 'iron' => 45500, 'crop' => 21000, 'time' => 112800), array('wood' => 36500, 'clay' => 34000, 'iron' => 46500, 'crop' => 21500, 'time' => 115200), array('wood' => 37500, 'clay' => 35000, - 'iron' => 48000, 'crop' => 22000, 'time' => 117600), array('wood' => 38500, 'clay' => 36000, 'iron' => 49000, 'crop' => 22500, 'time' => 120000), array('wood' => 39500, 'clay' => 37000, 'iron' => 50500, 'crop' => 23000, 'time' => 122400), array('wood' => 40500, 'clay' => 37500, 'iron' => 51500, 'crop' => 23500, 'time' => 124800), array('wood' => 41500, 'clay' => 38500, 'iron' => 53000, 'crop' => 24500, 'time' => 127200), array('wood' => 42500, 'clay' => 39500, 'iron' => 54000, 'crop' => 25000, 'time' => 129600), array('wood' => 43500, 'clay' => - 40500, 'iron' => 55500, 'crop' => 25500, 'time' => 132000), array('wood' => 44500, 'clay' => 41500, 'iron' => 56500, 'crop' => 26000, 'time' => 134400), array('wood' => 45500, 'clay' => 42500, 'iron' => 58000, 'crop' => 26500, 'time' => 136800), array('wood' => 46500, 'clay' => 43000, 'iron' => 59000, 'crop' => 27000, 'time' => 139200), array('wood' => 47500, 'clay' => 44000, 'iron' => 60500, 'crop' => 28000, 'time' => 141600), array('wood' => 48500, 'clay' => 45000, 'iron' => 62000, 'crop' => 28500, 'time' => 144000), array('wood' => 49500, - 'clay' => 46000, 'iron' => 63000, 'crop' => 29000, 'time' => 146400)); - $h15_full = array(array('wood' => 740, 'clay' => 540, 'iron' => 580, 'crop' => 150, 'time' => 4800), array('wood' => 1800, 'clay' => 1400, 'iron' => 1500, 'crop' => 430, 'time' => 9600), array('wood' => 3000, 'clay' => 2300, 'iron' => 2400, 'crop' => 710, 'time' => 14400), array('wood' => 4400, 'clay' => 3200, 'iron' => 3500, 'crop' => 1000, 'time' => 19200), array('wood' => 5800, 'clay' => 4300, 'iron' => 4600, 'crop' => 1300, 'time' => 24000), array('wood' => 7200, 'clay' => 5400, 'iron' => 5700, 'crop' => 1700, 'time' => 28800), array('wood' => - 8800, 'clay' => 6500, 'iron' => 6900, 'crop' => 2000, 'time' => 33600), array('wood' => 10500, 'clay' => 7700, 'iron' => 8200, 'crop' => 2400, 'time' => 38400), array('wood' => 12000, 'clay' => 8900, 'iron' => 9500, 'crop' => 2800, 'time' => 43200), array('wood' => 13500, 'clay' => 10000, 'iron' => 11000, 'crop' => 3200, 'time' => 48000), array('wood' => 15500, 'clay' => 11500, 'iron' => 12000, 'crop' => 3600, 'time' => 52800), array('wood' => 17000, 'clay' => 12500, 'iron' => 13500, 'crop' => 4000, 'time' => 57600), array('wood' => 19000, - 'clay' => 14000, 'iron' => 15000, 'crop' => 4400, 'time' => 62400), array('wood' => 21000, 'clay' => 15500, 'iron' => 16500, 'crop' => 4900, 'time' => 67200), array('wood' => 22500, 'clay' => 17000, 'iron' => 18000, 'crop' => 5300, 'time' => 72000), array('wood' => 24500, 'clay' => 18000, 'iron' => 19500, 'crop' => 5800, 'time' => 76800), array('wood' => 26500, 'clay' => 19500, 'iron' => 21000, 'crop' => 6200, 'time' => 81600), array('wood' => 28500, 'clay' => 21000, 'iron' => 22500, 'crop' => 6700, 'time' => 86400), array('wood' => 30500, - 'clay' => 22500, 'iron' => 24000, 'crop' => 7100, 'time' => 91200), array('wood' => 32500, 'clay' => 24000, 'iron' => 26000, 'crop' => 7600, 'time' => 96000), array('wood' => 34500, 'clay' => 25500, 'iron' => 27500, 'crop' => 8100, 'time' => 100800), array('wood' => 36500, 'clay' => 27000, 'iron' => 29000, 'crop' => 8600, 'time' => 105600), array('wood' => 39000, 'clay' => 28500, 'iron' => 30500, 'crop' => 9100, 'time' => 110400), array('wood' => 41000, 'clay' => 30500, 'iron' => 32500, 'crop' => 9600, 'time' => 115200), array('wood' => 43000, - 'clay' => 32000, 'iron' => 34000, 'crop' => 10000, 'time' => 120000), array('wood' => 45000, 'clay' => 33500, 'iron' => 36000, 'crop' => 10500, 'time' => 124800), array('wood' => 47500, 'clay' => 35000, 'iron' => 37500, 'crop' => 11000, 'time' => 129600), array('wood' => 49500, 'clay' => 36500, 'iron' => 39500, 'crop' => 11500, 'time' => 134400), array('wood' => 52000, 'clay' => 38500, 'iron' => 41000, 'crop' => 12000, 'time' => 139200), array('wood' => 54000, 'clay' => 40000, 'iron' => 43000, 'crop' => 12500, 'time' => 144000), array('wood' => - 56500, 'clay' => 41500, 'iron' => 44500, 'crop' => 13000, 'time' => 148800), array('wood' => 58500, 'clay' => 43500, 'iron' => 46500, 'crop' => 13500, 'time' => 153600), array('wood' => 61000, 'clay' => 45000, 'iron' => 48000, 'crop' => 14000, 'time' => 158400), array('wood' => 63000, 'clay' => 47000, 'iron' => 50000, 'crop' => 15000, 'time' => 163200), array('wood' => 65500, 'clay' => 48500, 'iron' => 52000, 'crop' => 15500, 'time' => 168000), array('wood' => 68000, 'clay' => 50500, 'iron' => 54000, 'crop' => 16000, 'time' => 172800), - array('wood' => 70500, 'clay' => 52000, 'iron' => 55500, 'crop' => 16500, 'time' => 177600), array('wood' => 72500, 'clay' => 54000, 'iron' => 57500, 'crop' => 17000, 'time' => 182400), array('wood' => 75000, 'clay' => 55500, 'iron' => 59500, 'crop' => 17500, 'time' => 187200), array('wood' => 77500, 'clay' => 57500, 'iron' => 61500, 'crop' => 18000, 'time' => 192000), array('wood' => 80000, 'clay' => 59000, 'iron' => 63500, 'crop' => 18500, 'time' => 196800), array('wood' => 82500, 'clay' => 61000, 'iron' => 65000, 'crop' => 19000, 'time' => - 201600), array('wood' => 85000, 'clay' => 63000, 'iron' => 67000, 'crop' => 20000, 'time' => 206400), array('wood' => 87500, 'clay' => 64500, 'iron' => 69000, 'crop' => 20500, 'time' => 211200), array('wood' => 89500, 'clay' => 66500, 'iron' => 71000, 'crop' => 21000, 'time' => 216000), array('wood' => 92000, 'clay' => 68500, 'iron' => 73000, 'crop' => 21500, 'time' => 220800), array('wood' => 95000, 'clay' => 70000, 'iron' => 75000, 'crop' => 22000, 'time' => 225600), array('wood' => 97500, 'clay' => 72000, 'iron' => 77000, 'crop' => 22500, - 'time' => 230400), array('wood' => 100000, 'clay' => 74000, 'iron' => 79000, 'crop' => 23500, 'time' => 235200), array('wood' => 102500, 'clay' => 76000, 'iron' => 81000, 'crop' => 24000, 'time' => 240000), array('wood' => 105000, 'clay' => 77500, 'iron' => 83000, 'crop' => 24500, 'time' => 244800), array('wood' => 107500, 'clay' => 79500, 'iron' => 85000, 'crop' => 25000, 'time' => 249600), array('wood' => 110000, 'clay' => 81500, 'iron' => 87000, 'crop' => 25500, 'time' => 254400), array('wood' => 112500, 'clay' => 83500, 'iron' => 89500, - 'crop' => 26500, 'time' => 259200), array('wood' => 115500, 'clay' => 85500, 'iron' => 91500, 'crop' => 27000, 'time' => 264000), array('wood' => 118000, 'clay' => 87500, 'iron' => 93500, 'crop' => 27500, 'time' => 268800), array('wood' => 120500, 'clay' => 89500, 'iron' => 95500, 'crop' => 28000, 'time' => 273600), array('wood' => 123000, 'clay' => 91000, 'iron' => 97500, 'crop' => 29000, 'time' => 278400), array('wood' => 126000, 'clay' => 93000, 'iron' => 99500, 'crop' => 29500, 'time' => 283200), array('wood' => 128500, 'clay' => 95000, - 'iron' => 102000, 'crop' => 30000, 'time' => 288000), array('wood' => 131500, 'clay' => 97000, 'iron' => 104000, 'crop' => 30500, 'time' => 292800)); - $h16_full = array(array('wood' => 900, 'clay' => 1000, 'iron' => 960, 'crop' => 160, 'time' => 5920), array('wood' => 2200, 'clay' => 2500, 'iron' => 2400, 'crop' => 450, 'time' => 11840), array('wood' => 3700, 'clay' => 4200, 'iron' => 3900, 'crop' => 750, 'time' => 17760), array('wood' => 5300, 'clay' => 6000, 'iron' => 5600, 'crop' => 1100, 'time' => 23680), array('wood' => 7000, 'clay' => 7900, 'iron' => 7400, 'crop' => 1400, 'time' => 29600), array('wood' => 8700, 'clay' => 10000, 'iron' => 9300, 'crop' => 1800, 'time' => 35520), array('wood' => - 10500, 'clay' => 12000, 'iron' => 11500, 'crop' => 2200, 'time' => 41440), array('wood' => 12500, 'clay' => 14500, 'iron' => 13500, 'crop' => 2600, 'time' => 47360), array('wood' => 14500, 'clay' => 16500, 'iron' => 15500, 'crop' => 3000, 'time' => 53280), array('wood' => 16500, 'clay' => 19000, 'iron' => 17500, 'crop' => 3400, 'time' => 59200), array('wood' => 18500, 'clay' => 21000, 'iron' => 20000, 'crop' => 3800, 'time' => 65120), array('wood' => 21000, 'clay' => 23500, 'iron' => 22000, 'crop' => 4200, 'time' => 71040), array('wood' => 23000, - 'clay' => 26000, 'iron' => 24500, 'crop' => 4700, 'time' => 76960), array('wood' => 25000, 'clay' => 28500, 'iron' => 27000, 'crop' => 5100, 'time' => 82880), array('wood' => 27500, 'clay' => 31500, 'iron' => 29000, 'crop' => 5600, 'time' => 88800), array('wood' => 30000, 'clay' => 34000, 'iron' => 31500, 'crop' => 6100, 'time' => 94720), array('wood' => 32000, 'clay' => 36500, 'iron' => 34000, 'crop' => 6600, 'time' => 100640), array('wood' => 34500, 'clay' => 39500, 'iron' => 36500, 'crop' => 7000, 'time' => 106560), array('wood' => 37000, - 'clay' => 42000, 'iron' => 39500, 'crop' => 7500, 'time' => 112480), array('wood' => 39500, 'clay' => 45000, 'iron' => 42000, 'crop' => 8000, 'time' => 118400), array('wood' => 42000, 'clay' => 47500, 'iron' => 44500, 'crop' => 8500, 'time' => 124320), array('wood' => 44500, 'clay' => 50500, 'iron' => 47000, 'crop' => 9100, 'time' => 130240), array('wood' => 47000, 'clay' => 53500, 'iron' => 50000, 'crop' => 9600, 'time' => 136160), array('wood' => 49500, 'clay' => 56500, 'iron' => 52500, 'crop' => 10000, 'time' => 142080), array('wood' => 52000, - 'clay' => 59500, 'iron' => 55500, 'crop' => 10500, 'time' => 148000), array('wood' => 54500, 'clay' => 62000, 'iron' => 58000, 'crop' => 11000, 'time' => 153920), array('wood' => 57000, 'clay' => 65000, 'iron' => 61000, 'crop' => 11500, 'time' => 159840), array('wood' => 60000, 'clay' => 68500, 'iron' => 64000, 'crop' => 12000, 'time' => 165760), array('wood' => 62500, 'clay' => 71500, 'iron' => 66500, 'crop' => 13000, 'time' => 171680), array('wood' => 65500, 'clay' => 74500, 'iron' => 69500, 'crop' => 13500, 'time' => 177600), array('wood' => - 68000, 'clay' => 77500, 'iron' => 72500, 'crop' => 14000, 'time' => 183520), array('wood' => 71000, 'clay' => 80500, 'iron' => 75500, 'crop' => 14500, 'time' => 189440), array('wood' => 73500, 'clay' => 84000, 'iron' => 78500, 'crop' => 15000, 'time' => 195360), array('wood' => 76500, 'clay' => 87000, 'iron' => 81500, 'crop' => 15500, 'time' => 201280), array('wood' => 79000, 'clay' => 90000, 'iron' => 84500, 'crop' => 16000, 'time' => 207200), array('wood' => 82000, 'clay' => 93500, 'iron' => 87500, 'crop' => 17000, 'time' => 213120), - array('wood' => 85000, 'clay' => 96500, 'iron' => 90500, 'crop' => 17500, 'time' => 219040), array('wood' => 87500, 'clay' => 100000, 'iron' => 93500, 'crop' => 18000, 'time' => 224960), array('wood' => 90500, 'clay' => 103500, 'iron' => 96500, 'crop' => 18500, 'time' => 230880), array('wood' => 93500, 'clay' => 106500, 'iron' => 99500, 'crop' => 19000, 'time' => 236800), array('wood' => 96500, 'clay' => 110000, 'iron' => 102500, 'crop' => 19500, 'time' => 242720), array('wood' => 99500, 'clay' => 113500, 'iron' => 106000, 'crop' => 20500, - 'time' => 248640), array('wood' => 102500, 'clay' => 116500, 'iron' => 109000, 'crop' => 21000, 'time' => 244560), array('wood' => 105500, 'clay' => 120000, 'iron' => 112000, 'crop' => 21500, 'time' => 260480), array('wood' => 108500, 'clay' => 123500, 'iron' => 115500, 'crop' => 22000, 'time' => 266400), array('wood' => 111500, 'clay' => 127000, 'iron' => 118500, 'crop' => 23000, 'time' => 272320), array('wood' => 114500, 'clay' => 130500, 'iron' => 122000, 'crop' => 23500, 'time' => 278240), array('wood' => 117500, 'clay' => 134000, 'iron' => - 125000, 'crop' => 24000, 'time' => 284160), array('wood' => 120500, 'clay' => 137500, 'iron' => 128500, 'crop' => 24500, 'time' => 290080), array('wood' => 123500, 'clay' => 141000, 'iron' => 131500, 'crop' => 25500, 'time' => 296000), array('wood' => 126500, 'clay' => 144500, 'iron' => 135000, 'crop' => 26000, 'time' => 301920), array('wood' => 130000, 'clay' => 148000, 'iron' => 138000, 'crop' => 26500, 'time' => 307840), array('wood' => 133000, 'clay' => 151500, 'iron' => 141500, 'crop' => 27000, 'time' => 313760), array('wood' => 136000, - 'clay' => 155000, 'iron' => 145000, 'crop' => 28000, 'time' => 319680), array('wood' => 139500, 'clay' => 159000, 'iron' => 148500, 'crop' => 28500, 'time' => 325600), array('wood' => 142500, 'clay' => 162500, 'iron' => 151500, 'crop' => 29000, 'time' => 331520), array('wood' => 145500, 'clay' => 166000, 'iron' => 155000, 'crop' => 30000, 'time' => 337440), array('wood' => 149000, 'clay' => 169500, 'iron' => 158500, 'crop' => 30500, 'time' => 343360), array('wood' => 152000, 'clay' => 173500, 'iron' => 162000, 'crop' => 31000, 'time' => 349280), - array('wood' => 155500, 'clay' => 177000, 'iron' => 165500, 'crop' => 31500, 'time' => 355200), array('wood' => 158500, 'clay' => 180500, 'iron' => 169000, 'crop' => 32500, 'time' => 361120)); - -//GAUL UNITS - $h21_full = array(array('wood' => 200, 'clay' => 260, 'iron' => 110, 'crop' => 60, 'time' => 2080), array('wood' => 550, 'clay' => 690, 'iron' => 330, 'crop' => 210, 'time' => 4160), array('wood' => 910, 'clay' => 1100, 'iron' => 550, 'crop' => 360, 'time' => 6240), array('wood' => 1300, 'clay' => 1600, 'iron' => 790, 'crop' => 510, 'time' => 8320), array('wood' => 1700, 'clay' => 2200, 'iron' => 1000, 'crop' => 670, 'time' => 10400), array('wood' => 2200, 'clay' => 2700, 'iron' => 1300, 'crop' => - 850, 'time' => 12480), array('wood' => 2600, 'clay' => 3300, 'iron' => 1600, 'crop' => 1000, 'time' => 14560), array('wood' => 3100, 'clay' => 3900, 'iron' => 1900, 'crop' => 1200, 'time' => 16640), array('wood' => 3600, 'clay' => 4500, 'iron' => 2200, 'crop' => 1400, 'time' => 18720), array('wood' => 4100, 'clay' => 5200, 'iron' => 2500, 'crop' => 1600, 'time' => 20800), array('wood' => 4600, 'clay' => 5800, 'iron' => 2800, 'crop' => 1800, 'time' => 22880), array('wood' => 5100, 'clay' => 6500, - 'iron' => 3100, 'crop' => 2000, 'time' => 24960), array('wood' => 5700, 'clay' => 7200, 'iron' => 3500, 'crop' => 2200, 'time' => 27040), array('wood' => 6200, 'clay' => 7900, 'iron' => 3800, 'crop' => 2400, 'time' => 29120), array('wood' => 6800, 'clay' => 8600, 'iron' => 4100, 'crop' => 2700, 'time' => 31200), array('wood' => 7400, 'clay' => 9300, 'iron' => 4500, 'crop' => 2900, 'time' => 33280), array('wood' => 7900, 'clay' => 10000, 'iron' => 4800, 'crop' => 3100, 'time' => 35360), array('wood' => - 8500, 'clay' => 11000, 'iron' => 5200, 'crop' => 3300, 'time' => 37440), array('wood' => 9100, 'clay' => 11500, 'iron' => 5600, 'crop' => 3600, 'time' => 39520), array('wood' => 9700, 'clay' => 12500, 'iron' => 5900, 'crop' => 3800, 'time' => 41600), array('wood' => 10500, 'clay' => 13000, 'iron' => 6300, 'crop' => 4000, 'time' => 43680), array('wood' => 11000, 'clay' => 14000, 'iron' => 6700, 'crop' => 4300, 'time' => 45760), array('wood' => 11500, 'clay' => 14500, 'iron' => 7100, 'crop' => - 4500, 'time' => 47840), array('wood' => 12000, 'clay' => 15500, 'iron' => 7400, 'crop' => 4800, 'time' => 49920), array('wood' => 13000, 'clay' => 16000, 'iron' => 7800, 'crop' => 5000, 'time' => 52000), array('wood' => 13500, 'clay' => 17000, 'iron' => 8200, 'crop' => 5300, 'time' => 54080), array('wood' => 14000, 'clay' => 18000, 'iron' => 8600, 'crop' => 5500, 'time' => 56160), array('wood' => 15000, 'clay' => 18500, 'iron' => 9000, 'crop' => 5800, 'time' => 58240), array('wood' => 15500, - 'clay' => 19500, 'iron' => 9400, 'clay' => 6100, 'time' => 60320), array('wood' => 16000, 'crop' => 20500, 'iron' => 9800, 'clay' => 6300, 'time' => 62400), array('wood' => 17000, 'crop' => 21000, 'iron' => 10000, 'clay' => 6600, 'time' => 64480), array('wood' => 17500, 'crop' => 22000, 'iron' => 10500, 'clay' => 6800, 'time' => 66560), array('wood' => 18000, 'crop' => 23000, 'iron' => 11000, 'clay' => 7100, 'time' => 68640), array('wood' => 19000, 'crop' => 24000, 'iron' => 11500, 'clay' => - 7400, 'time' => 70720), array('wood' => 19500, 'crop' => 24500, 'iron' => 12000, 'clay' => 7700, 'time' => 72800), array('wood' => 20500, 'crop' => 25500, 'iron' => 12500, 'clay' => 7900, 'time' => 74880), array('wood' => 21000, 'crop' => 26500, 'iron' => 13000, 'clay' => 8200, 'time' => 76960), array('wood' => 21500, 'crop' => 27500, 'iron' => 13000, 'clay' => 8500, 'time' => 79040), array('wood' => 22500, 'crop' => 28500, 'iron' => 13500, 'clay' => 8800, 'time' => 81120), array('wood' => 23000, - 'clay' => 29000, 'iron' => 14000, 'crop' => 9100, 'time' => 83200), array('wood' => 24000, 'clay' => 30000, 'iron' => 14500, 'crop' => 9300, 'time' => 85280), array('wood' => 24500, 'clay' => 31000, 'iron' => 15000, 'crop' => 9600, 'time' => 87360), array('wood' => 25500, 'clay' => 32000, 'iron' => 15500, 'crop' => 9900, 'time' => 89440), array('wood' => 26000, 'clay' => 33000, 'iron' => 16000, 'crop' => 10000, 'time' => 91520), array('wood' => 27000, 'clay' => 34000, 'iron' => 16500, 'crop' => - 10500, 'time' => 93600), array('wood' => 27500, 'clay' => 34500, 'iron' => 17000, 'crop' => 11000, 'time' => 95680), array('wood' => 28500, 'clay' => 35500, 'iron' => 17000, 'crop' => 11000, 'time' => 97760), array('wood' => 29000, 'clay' => 36500, 'iron' => 17500, 'crop' => 11500, 'time' => 99840), array('wood' => 30000, 'clay' => 37500, 'iron' => 18000, 'crop' => 11500, 'time' => 101920), array('wood' => 30500, 'clay' => 38500, 'iron' => 18500, 'crop' => 12000, 'time' => 104000), array('wood' => - 31500, 'clay' => 39500, 'iron' => 19000, 'crop' => 12500, 'time' => 106080), array('wood' => 32000, 'clay' => 40500, 'iron' => 19500, 'crop' => 12500, 'time' => 108160), array('wood' => 33000, 'clay' => 41500, 'iron' => 20000, 'crop' => 13000, 'time' => 110240), array('wood' => 33500, 'clay' => 42500, 'iron' => 20500, 'crop' => 13000, 'time' => 112320), array('wood' => 34500, 'clay' => 43500, 'iron' => 21000, 'crop' => 13500, 'time' => 114400), array('wood' => 35000, 'clay' => 44500, 'iron' => - 21500, 'crop' => 14000, 'time' => 116480), array('wood' => 36000, 'clay' => 45500, 'iron' => 22000, 'crop' => 14000, 'time' => 118560), array('wood' => 37000, 'clay' => 46500, 'iron' => 22500, 'crop' => 14500, 'time' => 120640), array('wood' => 37500, 'clay' => 47500, 'iron' => 23000, 'crop' => 14500, 'time' => 122720), array('wood' => 38500, 'clay' => 48500, 'iron' => 23500, 'crop' => 15000, 'time' => 124800), array('wood' => 39000, 'clay' => 49500, 'iron' => 24000, 'crop' => 15500, 'time' => 126880)); - $h22_full = array(array('wood' => 280, 'clay' => 300, 'iron' => 370, 'crop' => 120, 'time' => 2880), array('wood' => 740, 'clay' => 780, 'iron' => 950, 'crop' => 360, 'time' => 5760), array('wood' => 1200, 'clay' => 1300, 'iron' => 1600, 'crop' => 590, 'time' => 8640), array('wood' => 1800, 'clay' => 1900, 'iron' => 2300, 'crop' => 850, 'time' => 11520), array('wood' => 2300, 'clay' => 2500, 'iron' => 3000, 'crop' => 1100, 'time' => 14400), array('wood' => 2900, 'clay' => 3100, 'iron' => 3800, - 'crop' => 1400, 'time' => 17280), array('wood' => 3500, 'clay' => 3800, 'iron' => 4600, 'crop' => 1700, 'time' => 20160), array('wood' => 4200, 'clay' => 4400, 'iron' => 5400, 'crop' => 2000, 'time' => 23040), array('wood' => 4800, 'clay' => 5100, 'iron' => 6200, 'crop' => 2300, 'time' => 25920), array('wood' => 5500, 'clay' => 5900, 'iron' => 7100, 'crop' => 2700, 'time' => 28800), array('wood' => 6200, 'clay' => 6600, 'iron' => 8000, 'crop' => 3000, 'time' => 31680), array('wood' => 6900, - 'clay' => 7400, 'iron' => 8900, 'crop' => 3400, 'time' => 34560), array('wood' => 7700, 'clay' => 8100, 'iron' => 9900, 'crop' => 3700, 'time' => 37440), array('wood' => 8400, 'clay' => 8900, 'iron' => 11000, 'crop' => 4100, 'time' => 40320), array('wood' => 9200, 'clay' => 9700, 'iron' => 12000, 'crop' => 4400, 'time' => 43200), array('wood' => 9900, 'clay' => 10500, 'iron' => 13000, 'crop' => 4800, 'time' => 46080), array('wood' => 10500, 'clay' => 11500, 'iron' => 14000, 'crop' => 5200, - 'time' => 48960), array('wood' => 11500, 'clay' => 12000, 'iron' => 15000, 'crop' => 5600, 'time' => 51840), array('wood' => 12500, 'clay' => 13000, 'iron' => 16000, 'crop' => 6000, 'time' => 54720), array('wood' => 13000, 'clay' => 14000, 'iron' => 17000, 'crop' => 6300, 'time' => 57600), array('wood' => 14000, 'clay' => 15000, 'iron' => 18000, 'crop' => 6700, 'time' => 60480), array('wood' => 15000, 'clay' => 15500, 'iron' => 19000, 'crop' => 7100, 'time' => 63360), array('wood' => 15500, - 'clay' => 16500, 'iron' => 20000, 'crop' => 7600, 'time' => 66240), array('wood' => 16500, 'clay' => 17500, 'iron' => 21000, 'crop' => 8000, 'time' => 69120), array('wood' => 17500, 'clay' => 18500, 'iron' => 22500, 'crop' => 8400, 'time' => 72000), array('wood' => 18000, 'clay' => 19500, 'iron' => 23500, 'crop' => 8800, 'time' => 74880), array('wood' => 19000, 'clay' => 20500, 'iron' => 24500, 'crop' => 9200, 'time' => 77760), array('wood' => 20000, 'clay' => 21500, 'iron' => 26000, 'crop' => - 9700, 'time' => 80640), array('wood' => 21000, 'clay' => 22000, 'iron' => 27000, 'crop' => 10000, 'time' => 83520), array('wood' => 22000, 'clay' => 23000, 'iron' => 28000, 'crop' => 10500, 'time' => 86400), array('wood' => 22500, 'clay' => 24000, 'iron' => 29500, 'crop' => 11000, 'time' => 89280), array('wood' => 23500, 'clay' => 25000, 'iron' => 30500, 'crop' => 11500, 'time' => 92160), array('wood' => 24500, 'clay' => 26000, 'iron' => 31500, 'crop' => 12000, 'time' => 95040), array('wood' => - 25500, 'clay' => 27000, 'iron' => 33000, 'crop' => 12500, 'time' => 97920), array('wood' => 26500, 'clay' => 28000, 'iron' => 34000, 'crop' => 13000, 'time' => 100800), array('wood' => 27500, 'clay' => 29000, 'iron' => 35500, 'crop' => 13000, 'time' => 103680), array('wood' => 28500, 'clay' => 30000, 'iron' => 36500, 'crop' => 13500, 'time' => 106560), array('wood' => 29000, 'clay' => 31000, 'iron' => 37500, 'crop' => 14000, 'time' => 109440), array('wood' => 30000, 'clay' => 32000, 'iron' => - 39000, 'crop' => 14500, 'time' => 112320), array('wood' => 31000, 'clay' => 33000, 'iron' => 40000, 'crop' => 15000, 'time' => 115200), array('wood' => 32000, 'clay' => 34000, 'iron' => 41500, 'crop' => 15500, 'time' => 118080), array('wood' => 33000, 'clay' => 35500, 'iron' => 43000, 'crop' => 16000, 'time' => 120960), array('wood' => 34000, 'clay' => 36500, 'iron' => 44000, 'crop' => 16500, 'time' => 123840), array('wood' => 35000, 'clay' => 37500, 'iron' => 45500, 'crop' => 17000, 'time' => - 126720), array('wood' => 36000, 'clay' => 38500, 'iron' => 46500, 'crop' => 17500, 'time' => 129600), array('wood' => 37000, 'clay' => 39500, 'iron' => 48000, 'crop' => 18000, 'time' => 132480), array('wood' => 38000, 'clay' => 40500, 'iron' => 49000, 'crop' => 18500, 'time' => 135360), array('wood' => 39000, 'clay' => 41500, 'iron' => 50500, 'crop' => 19000, 'time' => 138240), array('wood' => 40000, 'clay' => 43000, 'iron' => 52000, 'crop' => 19500, 'time' => 141120), array('wood' => 41000, - 'clay' => 44000, 'iron' => 53000, 'crop' => 20000, 'time' => 144000), array('wood' => 42000, 'clay' => 45000, 'iron' => 54500, 'crop' => 20500, 'time' => 146880), array('wood' => 43500, 'clay' => 46000, 'iron' => 56000, 'crop' => 21000, 'time' => 149760), array('wood' => 44500, 'clay' => 47000, 'iron' => 57000, 'crop' => 21500, 'time' => 152640), array('wood' => 45500, 'clay' => 48500, 'iron' => 58500, 'crop' => 22000, 'time' => 155520), array('wood' => 46500, 'clay' => 49500, 'iron' => 60000, - 'crop' => 22500, 'time' => 158400), array('wood' => 47500, 'clay' => 50500, 'iron' => 61500, 'crop' => 23000, 'time' => 161280), array('wood' => 48500, 'clay' => 51500, 'iron' => 62500, 'crop' => 23500, 'time' => 164160), array('wood' => 49500, 'clay' => 53000, 'iron' => 64000, 'crop' => 24000, 'time' => 167040), array('wood' => 50500, 'clay' => 54000, 'iron' => 65500, 'crop' => 24500, 'time' => 169920), array('wood' => 52000, 'clay' => 55000, 'iron' => 67000, 'crop' => 25000, 'time' => 172800), - array('wood' => 53000, 'clay' => 56500, 'iron' => 68000, 'crop' => 25500, 'time' => 175680)); - $h24_full = array(array('wood' => 700, 'clay' => 900, 'iron' => 460, 'crop' => 120, 'time' => 4960), array('wood' => 1700, 'clay' => 2200, 'iron' => 1200, 'crop' => 360, 'time' => 9920), array('wood' => 2900, 'clay' => 3700, 'iron' => 1900, 'crop' => 590, 'time' => 14880), array('wood' => 4100, 'clay' => 5300, 'iron' => 2800, 'crop' => 850, 'time' => 19840), array('wood' => 5500, 'clay' => 7000, 'iron' => 3700, 'crop' => 1100, 'time' => 24800), array('wood' => 6900, 'clay' => 8700, 'iron' => - 4600, 'crop' => 1400, 'time' => 29760), array('wood' => 8300, 'clay' => 10500, 'iron' => 5600, 'crop' => 1700, 'time' => 34720), array('wood' => 9800, 'clay' => 12500, 'iron' => 6600, 'crop' => 2000, 'time' => 39680), array('wood' => 11500, 'clay' => 14500, 'iron' => 7600, 'crop' => 2300, 'time' => 44640), array('wood' => 13000, 'clay' => 16500, 'iron' => 8700, 'crop' => 2700, 'time' => 49600), array('wood' => 14500, 'clay' => 18500, 'iron' => 9800, 'crop' => 3000, 'time' => 54560), array('wood' => - 16500, 'clay' => 21000, 'iron' => 11000, 'crop' => 3400, 'time' => 59520), array('wood' => 18000, 'clay' => 23000, 'iron' => 12000, 'crop' => 3700, 'time' => 64480), array('wood' => 20000, 'clay' => 25000, 'iron' => 13500, 'crop' => 4100, 'time' => 69440), array('wood' => 21500, 'clay' => 27500, 'iron' => 14500, 'crop' => 4400, 'time' => 74400), array('wood' => 23500, 'clay' => 30000, 'iron' => 15500, 'crop' => 4800, 'time' => 79360), array('wood' => 25000, 'clay' => 32000, 'iron' => 17000, - 'crop' => 5200, 'time' => 84320), array('wood' => 27000, 'clay' => 34500, 'iron' => 18000, 'crop' => 5600, 'time' => 89280), array('wood' => 29000, 'clay' => 37000, 'iron' => 19500, 'crop' => 6000, 'time' => 94240), array('wood' => 31000, 'clay' => 39500, 'iron' => 20500, 'crop' => 6300, 'time' => 99200), array('wood' => 33000, 'clay' => 42000, 'iron' => 22000, 'crop' => 6700, 'time' => 104160), array('wood' => 35000, 'clay' => 44500, 'iron' => 23500, 'crop' => 7100, 'time' => 109120), array('wood' => - 37000, 'clay' => 47000, 'iron' => 24500, 'crop' => 7600, 'time' => 114080), array('wood' => 39000, 'clay' => 49500, 'iron' => 26000, 'crop' => 8000, 'time' => 119040), array('wood' => 41000, 'clay' => 52000, 'iron' => 27500, 'crop' => 8400, 'time' => 124000), array('wood' => 43000, 'clay' => 54500, 'iron' => 29000, 'crop' => 8800, 'time' => 128960), array('wood' => 45000, 'clay' => 57000, 'iron' => 30000, 'crop' => 9200, 'time' => 133920), array('wood' => 47000, 'clay' => 60000, 'iron' => 31500, - 'crop' => 9700, 'time' => 138880), array('wood' => 49000, 'clay' => 62500, 'iron' => 33000, 'crop' => 10000, 'time' => 143840), array('wood' => 51500, 'clay' => 65500, 'iron' => 34500, 'crop' => 10500, 'time' => 148800), array('wood' => 53500, 'clay' => 68000, 'iron' => 36000, 'crop' => 11000, 'time' => 153760), array('wood' => 55500, 'clay' => 71000, 'iron' => 37500, 'crop' => 11500, 'time' => 158720), array('wood' => 57500, 'clay' => 73500, 'iron' => 39000, 'crop' => 12000, 'time' => 163680), - array('wood' => 60000, 'clay' => 76500, 'iron' => 40000, 'crop' => 12500, 'time' => 168640), array('wood' => 62000, 'clay' => 79000, 'iron' => 41500, 'crop' => 13000, 'time' => 173600), array('wood' => 64500, 'clay' => 82000, 'iron' => 43000, 'crop' => 13000, 'time' => 178560), array('wood' => 66500, 'clay' => 85000, 'iron' => 44500, 'crop' => 13500, 'time' => 183520), array('wood' => 69000, 'clay' => 87500, 'iron' => 46000, 'crop' => 14000, 'time' => 188480), array('wood' => 71000, 'clay' => - 90500, 'iron' => 48000, 'crop' => 14500, 'time' => 193440), array('wood' => 73500, 'clay' => 93500, 'iron' => 49500, 'crop' => 15000, 'time' => 198400), array('wood' => 75500, 'clay' => 96500, 'iron' => 51000, 'crop' => 15500, 'time' => 203360), array('wood' => 78000, 'clay' => 99500, 'iron' => 52500, 'crop' => 16000, 'time' => 208320), array('wood' => 80500, 'clay' => 102500, 'iron' => 54000, 'crop' => 16500, 'time' => 213280), array('wood' => 82500, 'clay' => 105500, 'iron' => 55500, 'crop' => - 17000, 'time' => 218240), array('wood' => 85000, 'clay' => 108500, 'iron' => 57000, 'crop' => 17500, 'time' => 223200), array('wood' => 87500, 'clay' => 111500, 'iron' => 58500, 'crop' => 18000, 'time' => 228160), array('wood' => 90000, 'clay' => 114500, 'iron' => 60500, 'crop' => 18500, 'time' => 233120), array('wood' => 92000, 'clay' => 117500, 'iron' => 62000, 'crop' => 19000, 'time' => 238080), array('wood' => 94500, 'clay' => 120500, 'iron' => 63500, 'crop' => 19500, 'time' => 243040), - array('wood' => 97000, 'clay' => 123500, 'iron' => 65000, 'crop' => 20000, 'time' => 248000), array('wood' => 99500, 'clay' => 126500, 'iron' => 67000, 'crop' => 20500, 'time' => 252960), array('wood' => 102000, 'clay' => 130000, 'iron' => 68500, 'crop' => 21000, 'time' => 257920), array('wood' => 104500, 'clay' => 133000, 'iron' => 70000, 'crop' => 21500, 'time' => 262880), array('wood' => 107000, 'clay' => 136000, 'iron' => 71500, 'crop' => 22000, 'time' => 267840), array('wood' => 109500, - 'clay' => 139500, 'iron' => 73500, 'crop' => 22500, 'time' => 272800), array('wood' => 112000, 'clay' => 142500, 'iron' => 75000, 'crop' => 23000, 'time' => 277760), array('wood' => 114500, 'clay' => 145500, 'iron' => 76500, 'crop' => 23500, 'time' => 282720), array('wood' => 117000, 'clay' => 149000, 'iron' => 78500, 'crop' => 24000, 'time' => 287680), array('wood' => 119500, 'clay' => 152000, 'iron' => 80000, 'crop' => 24500, 'time' => 292640), array('wood' => 122000, 'clay' => 155500, 'iron' => - 82000, 'crop' => 25000, 'time' => 297600), array('wood' => 124500, 'clay' => 158500, 'iron' => 83500, 'crop' => 25500, 'time' => 302560)); - $h25_full = array(array('wood' => 720, 'clay' => 660, 'iron' => 560, 'crop' => 240, 'time' => 5120), array('wood' => 1800, 'clay' => 1600, 'iron' => 1400, 'crop' => 640, 'time' => 10240), array('wood' => 3000, 'clay' => 2700, 'iron' => 2300, 'crop' => 1100, 'time' => 15360), array('wood' => 4200, 'clay' => 3900, 'iron' => 3300, 'crop' => 1500, 'time' => 20480), array('wood' => 5600, 'clay' => 5200, 'iron' => 4400, 'crop' => 2000, 'time' => 25600), array('wood' => 7000, 'clay' => 6500, 'iron' => - 5500, 'crop' => 2500, 'time' => 30720), array('wood' => 8500, 'clay' => 7900, 'iron' => 6700, 'crop' => 3100, 'time' => 35840), array('wood' => 10000, 'clay' => 9300, 'iron' => 7900, 'crop' => 3600, 'time' => 40960), array('wood' => 11500, 'clay' => 11000, 'iron' => 9200, 'crop' => 4200, 'time' => 46080), array('wood' => 13500, 'clay' => 12500, 'iron' => 10500, 'crop' => 4800, 'time' => 51200), array('wood' => 15000, 'clay' => 14000, 'iron' => 12000, 'crop' => 5400, 'time' => 56320), array('wood' => - 17000, 'clay' => 15500, 'iron' => 13000, 'crop' => 6000, 'time' => 61440), array('wood' => 18500, 'clay' => 17000, 'iron' => 14500, 'crop' => 6700, 'time' => 66560), array('wood' => 20500, 'clay' => 18500, 'iron' => 16000, 'crop' => 7300, 'time' => 71680), array('wood' => 22000, 'clay' => 20500, 'iron' => 17500, 'crop' => 8000, 'time' => 76800), array('wood' => 24000, 'clay' => 22000, 'iron' => 19000, 'crop' => 8600, 'time' => 81920), array('wood' => 26000, 'clay' => 24000, 'iron' => 20500, - 'crop' => 9300, 'time' => 87040), array('wood' => 28000, 'clay' => 25500, 'iron' => 22000, 'crop' => 10000, 'time' => 92160), array('wood' => 30000, 'clay' => 27500, 'iron' => 23500, 'crop' => 10500, 'time' => 97280), array('wood' => 31500, 'clay' => 29000, 'iron' => 25000, 'crop' => 11500, 'time' => 102400), array('wood' => 33500, 'clay' => 31000, 'iron' => 26500, 'crop' => 12000, 'time' => 107520), array('wood' => 35500, 'clay' => 33000, 'iron' => 28000, 'crop' => 13000, 'time' => 112640), - array('wood' => 38000, 'clay' => 35000, 'iron' => 29500, 'crop' => 13500, 'time' => 117760), array('wood' => 40000, 'clay' => 36500, 'iron' => 31500, 'crop' => 14500, 'time' => 122880), array('wood' => 42000, 'clay' => 38500, 'iron' => 33000, 'crop' => 15000, 'time' => 128000), array('wood' => 44000, 'clay' => 40500, 'iron' => 34500, 'crop' => 16000, 'time' => 133120), array('wood' => 46000, 'clay' => 42500, 'iron' => 36500, 'crop' => 16500, 'time' => 138240), array('wood' => 48500, 'clay' => - 44500, 'iron' => 38000, 'crop' => 17500, 'time' => 143360), array('wood' => 50500, 'clay' => 46500, 'iron' => 39500, 'crop' => 18000, 'time' => 148480), array('wood' => 52500, 'clay' => 48500, 'iron' => 41500, 'crop' => 19000, 'time' => 153600), array('wood' => 55000, 'clay' => 50500, 'iron' => 43000, 'crop' => 19500, 'time' => 158720), array('wood' => 57000, 'clay' => 52500, 'iron' => 45000, 'crop' => 20500, 'time' => 163840), array('wood' => 59500, 'clay' => 54500, 'iron' => 46500, 'crop' => - 21500, 'time' => 168960), array('wood' => 61500, 'clay' => 56500, 'iron' => 48500, 'crop' => 22000, 'time' => 174080), array('wood' => 64000, 'clay' => 58500, 'iron' => 50000, 'crop' => 23000, 'time' => 179200), array('wood' => 66000, 'clay' => 61000, 'iron' => 52000, 'crop' => 24000, 'time' => 184320), array('wood' => 68500, 'clay' => 63000, 'iron' => 54000, 'crop' => 24500, 'time' => 189440), array('wood' => 71000, 'clay' => 65000, 'iron' => 55500, 'crop' => 25500, 'time' => 194560), array('wood' => - 73000, 'clay' => 67000, 'iron' => 57500, 'crop' => 26500, 'time' => 199680), array('wood' => 75500, 'clay' => 69500, 'iron' => 59500, 'crop' => 27000, 'time' => 204800), array('wood' => 78000, 'clay' => 71500, 'iron' => 61000, 'crop' => 28000, 'time' => 209920), array('wood' => 80000, 'clay' => 74000, 'iron' => 63000, 'crop' => 29000, 'time' => 215040), array('wood' => 82500, 'clay' => 76000, 'iron' => 65000, 'crop' => 29500, 'time' => 220160), array('wood' => 85000, 'clay' => 78000, 'iron' => - 67000, 'crop' => 30500, 'time' => 225280), array('wood' => 87500, 'clay' => 80500, 'iron' => 69000, 'crop' => 31500, 'time' => 230400), array('wood' => 90000, 'clay' => 82500, 'iron' => 70500, 'crop' => 32500, 'time' => 235520), array('wood' => 92500, 'clay' => 85000, 'iron' => 72500, 'crop' => 33000, 'time' => 240640), array('wood' => 95000, 'clay' => 87000, 'iron' => 74500, 'crop' => 34000, 'time' => 245760), array('wood' => 97000, 'clay' => 89500, 'iron' => 76500, 'crop' => 35000, 'time' => - 250880), array('wood' => 99500, 'clay' => 91500, 'iron' => 78500, 'crop' => 36000, 'time' => 256000), array('wood' => 102000, 'clay' => 94000, 'iron' => 80500, 'crop' => 37000, 'time' => 261120), array('wood' => 104500, 'clay' => 96500, 'iron' => 82500, 'crop' => 37500, 'time' => 266240), array('wood' => 107500, 'clay' => 98500, 'iron' => 84500, 'crop' => 38500, 'time' => 271360), array('wood' => 110000, 'clay' => 101000, 'iron' => 86500, 'crop' => 39500, 'time' => 276480), array('wood' => - 112500, 'clay' => 103500, 'iron' => 88500, 'crop' => 40500, 'time' => 281600), array('wood' => 115000, 'clay' => 105500, 'iron' => 90500, 'crop' => 41500, 'time' => 286720), array('wood' => 117500, 'clay' => 108000, 'iron' => 92500, 'crop' => 42500, 'time' => 291840), array('wood' => 120000, 'clay' => 110500, 'iron' => 94500, 'crop' => 43000, 'time' => 296960), array('wood' => 122500, 'clay' => 113000, 'iron' => 96500, 'crop' => 44000, 'time' => 302080), array('wood' => 125000, 'clay' => 115000, - 'iron' => 98500, 'crop' => 45000, 'time' => 307200), array('wood' => 128000, 'clay' => 117500, 'iron' => 100500, 'crop' => 46000, 'time' => 312320)); - $h26_full = array(array('wood' => 1000, 'clay' => 1200, 'iron' => 1400, 'crop' => 340, 'time' => 6240), array('wood' => 2400, 'clay' => 3000, 'iron' => 3300, 'crop' => 880, 'time' => 12480), array('wood' => 4100, 'clay' => 5000, 'iron' => 5400, 'crop' => 1500, 'time' => 18720), array('wood' => 5800, 'clay' => 7200, 'iron' => 7800, 'crop' => 2100, 'time' => 24960), array('wood' => 7700, 'clay' => 9500, 'iron' => 10500, 'crop' => 2800, 'time' => 31200), array('wood' => 9700, 'clay' => 12000, - 'iron' => 13000, 'crop' => 3500, 'time' => 37440), array('wood' => 11500, 'clay' => 14500, 'iron' => 15500, 'crop' => 4200, 'time' => 43680), array('wood' => 14000, 'clay' => 17000, 'iron' => 18500, 'crop' => 5000, 'time' => 49920), array('wood' => 16000, 'clay' => 20000, 'iron' => 21500, 'crop' => 5800, 'time' => 56160), array('wood' => 18500, 'clay' => 22500, 'iron' => 24500, 'crop' => 6600, 'time' => 62400), array('wood' => 20500, 'clay' => 25500, 'iron' => 27500, 'crop' => 7400, 'time' => - 68640), array('wood' => 23000, 'clay' => 28500, 'iron' => 31000, 'crop' => 8300, 'time' => 74880), array('wood' => 25500, 'clay' => 31500, 'iron' => 34000, 'crop' => 9100, 'time' => 81120), array('wood' => 28000, 'clay' => 34500, 'iron' => 37500, 'crop' => 10000, 'time' => 87360), array('wood' => 30500, 'clay' => 37500, 'iron' => 40500, 'crop' => 11000, 'time' => 93600), array('wood' => 33000, 'clay' => 40500, 'iron' => 44000, 'crop' => 12000, 'time' => 99840), array('wood' => 35500, 'clay' => - 44000, 'iron' => 47500, 'crop' => 13000, 'time' => 106080), array('wood' => 38000, 'clay' => 47000, 'iron' => 51000, 'crop' => 13500, 'time' => 112320), array('wood' => 41000, 'clay' => 50500, 'iron' => 54500, 'crop' => 14500, 'time' => 118560), array('wood' => 43500, 'clay' => 53500, 'iron' => 58500, 'crop' => 15500, 'time' => 124800), array('wood' => 46500, 'clay' => 57000, 'iron' => 62000, 'crop' => 16500, 'time' => 131040), array('wood' => 49000, 'clay' => 60500, 'iron' => 66000, 'crop' => - 17500, 'time' => 137280), array('wood' => 52000, 'clay' => 64000, 'iron' => 69500, 'crop' => 18500, 'time' => 143520), array('wood' => 54500, 'clay' => 67500, 'iron' => 73500, 'crop' => 19500, 'time' => 149760), array('wood' => 57500, 'clay' => 71000, 'iron' => 77000, 'crop' => 20500, 'time' => 156000), array('wood' => 60500, 'clay' => 74500, 'iron' => 81000, 'crop' => 21500, 'time' => 162240), array('wood' => 63500, 'clay' => 78000, 'iron' => 85000, 'crop' => 23000, 'time' => 168480), array('wood' => - 66500, 'clay' => 82000, 'iron' => 89000, 'crop' => 24000, 'time' => 174720), array('wood' => 69500, 'clay' => 85500, 'iron' => 93000, 'crop' => 25000, 'time' => 180960), array('wood' => 72500, 'clay' => 89000, 'iron' => 97000, 'crop' => 26000, 'time' => 187200), array('wood' => 75500, 'clay' => 93000, 'iron' => 101000, 'crop' => 27000, 'time' => 193440), array('wood' => 78500, 'clay' => 96500, 'iron' => 105000, 'crop' => 28000, 'time' => 199680), array('wood' => 81500, 'clay' => 100500, 'iron' => - 109000, 'crop' => 29500, 'time' => 205920), array('wood' => 84500, 'clay' => 104500, 'iron' => 113500, 'crop' => 30500, 'time' => 212160), array('wood' => 87500, 'clay' => 108000, 'iron' => 117500, 'crop' => 31500, 'time' => 218400), array('wood' => 91000, 'clay' => 112000, 'iron' => 121500, 'crop' => 32500, 'time' => 224640), array('wood' => 94000, 'clay' => 116000, 'iron' => 126000, 'crop' => 34000, 'time' => 230880), array('wood' => 97000, 'clay' => 120000, 'iron' => 130000, 'crop' => 35000, - 'time' => 237120), array('wood' => 100500, 'clay' => 124000, 'iron' => 134500, 'crop' => 36000, 'time' => 243360), array('wood' => 103500, 'clay' => 128000, 'iron' => 139000, 'crop' => 37000, 'time' => 249600), array('wood' => 107000, 'clay' => 132000, 'iron' => 143000, 'crop' => 38500, 'time' => 255840), array('wood' => 110000, 'clay' => 136000, 'iron' => 147500, 'crop' => 39500, 'time' => 262080), array('wood' => 113500, 'clay' => 140000, 'iron' => 152000, 'crop' => 40500, 'time' => 268320), - array('wood' => 116500, 'clay' => 144000, 'iron' => 156500, 'crop' => 42000, 'time' => 274560), array('wood' => 120000, 'clay' => 148000, 'iron' => 161000, 'crop' => 43000, 'time' => 280800), array('wood' => 123500, 'clay' => 152000, 'iron' => 165500, 'crop' => 44500, 'time' => 287040), array('wood' => 127000, 'clay' => 156500, 'iron' => 170000, 'crop' => 45500, 'time' => 293280), array('wood' => 130000, 'clay' => 160500, 'iron' => 174500, 'crop' => 46500, 'time' => 299520), array('wood' => - 133500, 'clay' => 164500, 'iron' => 179000, 'crop' => 48000, 'time' => 305760), array('wood' => 137000, 'clay' => 169000, 'iron' => 183500, 'crop' => 49000, 'time' => 312000), array('wood' => 140500, 'clay' => 173000, 'iron' => 188000, 'crop' => 50500, 'time' => 318240), array('wood' => 144000, 'clay' => 177500, 'iron' => 192500, 'crop' => 51500, 'time' => 324480), array('wood' => 147500, 'clay' => 181500, 'iron' => 197500, 'crop' => 53000, 'time' => 330720), array('wood' => 151000, 'clay' => - 186000, 'iron' => 202000, 'crop' => 54000, 'time' => 336960), array('wood' => 154500, 'clay' => 190000, 'iron' => 206500, 'crop' => 55500, 'time' => 343200), array('wood' => 158000, 'clay' => 194500, 'iron' => 211500, 'crop' => 56500, 'time' => 349440), array('wood' => 161500, 'clay' => 199000, 'iron' => 216000, 'crop' => 58000, 'time' => 355680), array('wood' => 165000, 'clay' => 203500, 'iron' => 221000, 'crop' => 59000, 'time' => 361920), array('wood' => 168500, 'clay' => 207500, 'iron' => - 225500, 'crop' => 60500, 'time' => 368160), array('wood' => 172000, 'clay' => 212000, 'iron' => 230500, 'crop' => 62000, 'time' => 374400), array('wood' => 175500, 'clay' => 216500, 'iron' => 235500, 'crop' => 63000, 'time' => 380640)); - -?> \ No newline at end of file diff --git a/GameEngine/Data/resdata.php b/GameEngine/Data/resdata.php deleted file mode 100755 index f5b04711..00000000 --- a/GameEngine/Data/resdata.php +++ /dev/null @@ -1,97 +0,0 @@ -700,'clay'=>620,'iron'=>1480,'crop'=>580,'time'=>7080); -$r3=array('wood'=>1000,'clay'=>740,'iron'=>1880,'crop'=>640,'time'=>7560); -$r4=array('wood'=>940,'clay'=>740,'iron'=>360,'crop'=>400,'time'=>5880); -$r5=array('wood'=>3400,'clay'=>1860,'iron'=>2760,'crop'=>760,'time'=>9720); -$r6=array('wood'=>3400,'clay'=>2660,'iron'=>6600,'crop'=>1240,'time'=>12360); -$r7=array('wood'=>5500,'clay'=>1540,'iron'=>4200,'crop'=>580,'time'=>15600); -$r8=array('wood'=>5800,'clay'=>5500,'iron'=>5000,'crop'=>700,'time'=>28800); -$r9=array('wood'=>15880,'clay'=>13800,'iron'=>36400,'crop'=>22660,'time'=>24475); -$r12=array('wood'=>970,'clay'=>380,'iron'=>880,'crop'=>400,'time'=>5160); -$r13=array('wood'=>880,'clay'=>580,'iron'=>1560,'crop'=>580,'time'=>5400); -$r14=array('wood'=>1060,'clay'=>500,'iron'=>600,'crop'=>460,'time'=>5160); -$r15=array('wood'=>2320,'clay'=>1180,'iron'=>2520,'crop'=>610,'time'=>9000); -$r16=array('wood'=>2800,'clay'=>2160,'iron'=>4040,'crop'=>640,'time'=>10680); -$r17=array('wood'=>6100,'clay'=>1300,'iron'=>3000,'crop'=>580,'time'=>14400); -$r18=array('wood'=>5500,'clay'=>4900,'iron'=>5000,'crop'=>520,'time'=>28800); -$r19=array('wood'=>18250,'clay'=>13500,'iron'=>20400,'crop'=>16480,'time'=>19425); -$r22=array('wood'=>940,'clay'=>700,'iron'=>1680,'crop'=>520,'time'=>6120); -$r23=array('wood'=>1120,'clay'=>700,'iron'=>360,'crop'=>400,'time'=>5880); -$r24=array('wood'=>2200,'clay'=>1900,'iron'=>2040,'crop'=>520,'time'=>9240); -$r25=array('wood'=>2260,'clay'=>1420,'iron'=>2440,'crop'=>880,'time'=>9480); -$r26=array('wood'=>3100,'clay'=>2580,'iron'=>5600,'crop'=>1180,'time'=>11160); -$r27=array('wood'=>5800,'clay'=>2320,'iron'=>2840,'crop'=>610,'time'=>16800); -$r28=array('wood'=>5860,'clay'=>5900,'iron'=>5240,'crop'=>700,'time'=>28800); -$r29=array('wood'=>15880,'clay'=>22900,'iron'=>25200,'crop'=>22660,'time'=>24475); -$r32=array('wood'=>970,'clay'=>380,'iron'=>880,'crop'=>400,'time'=>5160); -$r33=array('wood'=>880,'clay'=>580,'iron'=>1560,'crop'=>580,'time'=>5400); -$r34=array('wood'=>1060,'clay'=>500,'iron'=>600,'crop'=>460,'time'=>5160); -$r35=array('wood'=>2320,'clay'=>1180,'iron'=>2520,'crop'=>610,'time'=>9000); -$r36=array('wood'=>2800,'clay'=>2160,'iron'=>4040,'crop'=>640,'time'=>10680); -$r37=array('wood'=>6100,'clay'=>1300,'iron'=>3000,'crop'=>580,'time'=>14400); -$r38=array('wood'=>5500,'clay'=>4900,'iron'=>5000,'crop'=>520,'time'=>28800); -$r39=array('wood'=>18250,'clay'=>13500,'iron'=>20400,'crop'=>16480,'time'=>19425); -$r42=array('wood'=>970,'clay'=>380,'iron'=>880,'crop'=>400,'time'=>5160); -$r43=array('wood'=>880,'clay'=>580,'iron'=>1560,'crop'=>580,'time'=>5400); -$r44=array('wood'=>1060,'clay'=>500,'iron'=>600,'crop'=>460,'time'=>5160); -$r45=array('wood'=>2320,'clay'=>1180,'iron'=>2520,'crop'=>610,'time'=>9000); -$r46=array('wood'=>2800,'clay'=>2160,'iron'=>4040,'crop'=>640,'time'=>10680); -$r47=array('wood'=>6100,'clay'=>1300,'iron'=>3000,'crop'=>580,'time'=>14400); -$r48=array('wood'=>5500,'clay'=>4900,'iron'=>5000,'crop'=>520,'time'=>28800); -$r49=array('wood'=>18250,'clay'=>13500,'iron'=>20400,'crop'=>16480,'time'=>19425); - -//Armoury -//Blacksmith -$ab1=array(1=>array('wood'=>940,'clay'=>800,'iron'=>1250,'crop'=>370,'time'=>6600),array('wood'=>1635,'clay'=>1395,'iron'=>2175,'crop'=>645,'time'=>11491),array('wood'=>2265,'clay'=>1925,'iron'=>3010,'crop'=>890,'time'=>15894),array('wood'=>2850,'clay'=>2425,'iron'=>3790,'crop'=>1120,'time'=>20007),array('wood'=>3405,'clay'=>2900,'iron'=>4530,'crop'=>1340,'time'=>23918),array('wood'=>3940,'clay'=>3355,'iron'=>5240,'crop'=>1550,'time'=>27674),array('wood'=>4460,'clay'=>3795,'iron'=>5930,'crop'=>1755,'time'=>31306),array('wood'=>4960,'clay'=>4220,'iron'=>6600,'crop'=>1955,'time'=>34835),array('wood'=>5450,'clay'=>4640,'iron'=>7250,'crop'=>2145,'time'=>38277),array('wood'=>5930,'clay'=>5050,'iron'=>7885,'crop'=>2335,'time'=>41643),array('wood'=>6400,'clay'=>5450,'iron'=>8510,'crop'=>2520,'time'=>44943),array('wood'=>6860,'clay'=>5840,'iron'=>9125,'crop'=>2700,'time'=>48182),array('wood'=>7315,'clay'=>6225,'iron'=>9730,'crop'=>2880,'time'=>51369),array('wood'=>7765,'clay'=>6605,'iron'=>10325,'crop'=>3055,'time'=>54506),array('wood'=>8205,'clay'=>6980,'iron'=>10910,'crop'=>3230,'time'=>57599),array('wood'=>8640,'clay'=>7350,'iron'=>11485,'crop'=>3400,'time'=>60651),array('wood'=>9065,'clay'=>7715,'iron'=>12060,'crop'=>3570,'time'=>63665),array('wood'=>9490,'clay'=>8080,'iron'=>12620,'crop'=>3735,'time'=>66644),array('wood'=>9910,'clay'=>8435,'iron'=>13180,'crop'=>3900,'time'=>69590),array('wood'=>10325,'clay'=>8790,'iron'=>13730,'crop'=>4065,'time'=>72505)); -$ab2=array(1=>array('wood'=>800,'clay'=>1010,'iron'=>1320,'crop'=>650,'time'=>7080),array('wood'=>1395,'clay'=>1760,'iron'=>2300,'crop'=>1130,'time'=>12327),array('wood'=>1925,'clay'=>2430,'iron'=>3180,'crop'=>1565,'time'=>17050),array('wood'=>2425,'clay'=>3060,'iron'=>4000,'crop'=>1970,'time'=>21463),array('wood'=>2900,'clay'=>3660,'iron'=>4785,'crop'=>2355,'time'=>25657),array('wood'=>3355,'clay'=>4235,'iron'=>5535,'crop'=>2725,'time'=>29686),array('wood'=>3795,'clay'=>4790,'iron'=>6260,'crop'=>3085,'time'=>33582),array('wood'=>4220,'clay'=>5330,'iron'=>6965,'crop'=>3430,'time'=>37368),array('wood'=>4640,'clay'=>5860,'iron'=>7655,'crop'=>3770,'time'=>41061),array('wood'=>5050,'clay'=>6375,'iron'=>8330,'crop'=>4100,'time'=>44672),array('wood'=>5450,'clay'=>6880,'iron'=>8990,'crop'=>4425,'time'=>48211),array('wood'=>5840,'clay'=>7375,'iron'=>9635,'crop'=>4745,'time'=>51687),array('wood'=>6225,'clay'=>7860,'iron'=>10275,'crop'=>5060,'time'=>55105),array('wood'=>6605,'clay'=>8340,'iron'=>10900,'crop'=>5370,'time'=>58470),array('wood'=>6980,'clay'=>8815,'iron'=>11520,'crop'=>5675,'time'=>61788),array('wood'=>7350,'clay'=>9280,'iron'=>12130,'crop'=>5975,'time'=>65062),array('wood'=>7715,'clay'=>9745,'iron'=>12735,'crop'=>6270,'time'=>68296),array('wood'=>8080,'clay'=>10200,'iron'=>13330,'crop'=>6565,'time'=>71491),array('wood'=>8435,'clay'=>10650,'iron'=>13920,'crop'=>6855,'time'=>74651),array('wood'=>8790,'clay'=>11095,'iron'=>14500,'crop'=>7140,'time'=>77778)); -$ab3=array(1=>array('wood'=>1150,'clay'=>1220,'iron'=>1670,'crop'=>720,'time'=>7560),array('wood'=>2000,'clay'=>2125,'iron'=>2910,'crop'=>1255,'time'=>13163),array('wood'=>2770,'clay'=>2940,'iron'=>4020,'crop'=>1735,'time'=>18206),array('wood'=>3485,'clay'=>3700,'iron'=>5060,'crop'=>2185,'time'=>22918),array('wood'=>4165,'clay'=>4420,'iron'=>6050,'crop'=>2610,'time'=>27397),array('wood'=>4820,'clay'=>5115,'iron'=>7000,'crop'=>3020,'time'=>31699),array('wood'=>5455,'clay'=>5785,'iron'=>7920,'crop'=>3415,'time'=>35859),array('wood'=>6070,'clay'=>6440,'iron'=>8815,'crop'=>3800,'time'=>39902),array('wood'=>6670,'clay'=>7075,'iron'=>9685,'crop'=>4175,'time'=>43845),array('wood'=>7255,'clay'=>7700,'iron'=>10535,'crop'=>4545,'time'=>47700),array('wood'=>7830,'clay'=>8310,'iron'=>11370,'crop'=>4905,'time'=>51480),array('wood'=>8395,'clay'=>8905,'iron'=>12190,'crop'=>5255,'time'=>55191),array('wood'=>8950,'clay'=>9495,'iron'=>13000,'crop'=>5605,'time'=>58841),array('wood'=>9495,'clay'=>10075,'iron'=>13790,'crop'=>5945,'time'=>62434),array('wood'=>10035,'clay'=>10645,'iron'=>14575,'crop'=>6285,'time'=>65977),array('wood'=>10570,'clay'=>11210,'iron'=>15345,'crop'=>6615,'time'=>69473),array('wood'=>11095,'clay'=>11770,'iron'=>16110,'crop'=>6945,'time'=>72926),array('wood'=>11610,'clay'=>12320,'iron'=>16865,'crop'=>7270,'time'=>76338),array('wood'=>12125,'clay'=>12865,'iron'=>17610,'crop'=>7590,'time'=>79712),array('wood'=>12635,'clay'=>13400,'iron'=>18345,'crop'=>7910,'time'=>83051)); -$ab4=array(1=>array('wood'=>540,'clay'=>610,'iron'=>170,'crop'=>220,'time'=>5880),array('wood'=>940,'clay'=>1060,'iron'=>295,'crop'=>385,'time'=>10238),array('wood'=>1300,'clay'=>1470,'iron'=>410,'crop'=>530,'time'=>14160),array('wood'=>1635,'clay'=>1850,'iron'=>515,'crop'=>665,'time'=>17825),array('wood'=>1955,'clay'=>2210,'iron'=>615,'crop'=>795,'time'=>21309),array('wood'=>2265,'clay'=>2560,'iron'=>715,'crop'=>920,'time'=>24655),array('wood'=>2560,'clay'=>2895,'iron'=>805,'crop'=>1045,'time'=>27890),array('wood'=>2850,'clay'=>3220,'iron'=>895,'crop'=>1160,'time'=>31035),array('wood'=>3130,'clay'=>3540,'iron'=>985,'crop'=>1275,'time'=>34101),array('wood'=>3405,'clay'=>3850,'iron'=>1075,'crop'=>1390,'time'=>37100),array('wood'=>3675,'clay'=>4155,'iron'=>1160,'crop'=>1500,'time'=>40040),array('wood'=>3940,'clay'=>4455,'iron'=>1240,'crop'=>1605,'time'=>42926),array('wood'=>4205,'clay'=>4750,'iron'=>1325,'crop'=>1710,'time'=>45765),array('wood'=>4460,'clay'=>5040,'iron'=>1405,'crop'=>1815,'time'=>48560),array('wood'=>4715,'clay'=>5325,'iron'=>1485,'crop'=>1920,'time'=>51316),array('wood'=>4960,'clay'=>5605,'iron'=>1560,'crop'=>2020,'time'=>54035),array('wood'=>5210,'clay'=>5885,'iron'=>1640,'crop'=>2120,'time'=>56720),array('wood'=>5455,'clay'=>6160,'iron'=>1715,'crop'=>2220,'time'=>59374),array('wood'=>5695,'clay'=>6430,'iron'=>1790,'crop'=>2320,'time'=>61998),array('wood'=>5930,'clay'=>6700,'iron'=>1870,'crop'=>2415,'time'=>64595)); -$ab5=array(1=>array('wood'=>1315,'clay'=>1060,'iron'=>815,'crop'=>285,'time'=>9720),array('wood'=>2290,'clay'=>1845,'iron'=>1415,'crop'=>500,'time'=>16924),array('wood'=>3170,'clay'=>2555,'iron'=>1960,'crop'=>690,'time'=>23408),array('wood'=>3990,'clay'=>3215,'iron'=>2465,'crop'=>870,'time'=>29466),array('wood'=>4770,'clay'=>3840,'iron'=>2945,'crop'=>1040,'time'=>35224),array('wood'=>5520,'clay'=>4445,'iron'=>3410,'crop'=>1200,'time'=>40756),array('wood'=>6245,'clay'=>5030,'iron'=>3860,'crop'=>1360,'time'=>46105),array('wood'=>6950,'clay'=>5595,'iron'=>4295,'crop'=>1515,'time'=>51302),array('wood'=>7635,'clay'=>6150,'iron'=>4715,'crop'=>1665,'time'=>56372),array('wood'=>8310,'clay'=>6690,'iron'=>5130,'crop'=>1810,'time'=>61329),array('wood'=>8965,'clay'=>7220,'iron'=>5540,'crop'=>1950,'time'=>66188),array('wood'=>9610,'clay'=>7740,'iron'=>5940,'crop'=>2095,'time'=>70960),array('wood'=>10250,'clay'=>8250,'iron'=>6330,'crop'=>2230,'time'=>75652),array('wood'=>10875,'clay'=>8755,'iron'=>6715,'crop'=>2365,'time'=>80273),array('wood'=>11490,'clay'=>9250,'iron'=>7100,'crop'=>2500,'time'=>84828),array('wood'=>12100,'clay'=>9740,'iron'=>7475,'crop'=>2635,'time'=>89323),array('wood'=>12700,'clay'=>10225,'iron'=>7845,'crop'=>2765,'time'=>93762),array('wood'=>13295,'clay'=>10705,'iron'=>8215,'crop'=>2895,'time'=>98149),array('wood'=>13885,'clay'=>11175,'iron'=>8575,'crop'=>3025,'time'=>102487),array('wood'=>14465,'clay'=>11645,'iron'=>8935,'crop'=>3150,'time'=>106780)); -$ab6=array(1=>array('wood'=>990,'clay'=>1145,'iron'=>1450,'crop'=>355,'time'=>12360),array('wood'=>1720,'clay'=>1995,'iron'=>2525,'crop'=>620,'time'=>21520),array('wood'=>2380,'clay'=>2755,'iron'=>3490,'crop'=>855,'time'=>29766),array('wood'=>2995,'clay'=>3470,'iron'=>4395,'crop'=>1075,'time'=>37469),array('wood'=>3580,'clay'=>4150,'iron'=>5255,'crop'=>1285,'time'=>44791),array('wood'=>4140,'clay'=>4800,'iron'=>6080,'crop'=>1490,'time'=>51825),array('wood'=>4685,'clay'=>5430,'iron'=>6880,'crop'=>1685,'time'=>58627),array('wood'=>5210,'clay'=>6045,'iron'=>7655,'crop'=>1875,'time'=>65236),array('wood'=>5725,'clay'=>6640,'iron'=>8410,'crop'=>2060,'time'=>71682),array('wood'=>6230,'clay'=>7225,'iron'=>9150,'crop'=>2240,'time'=>77986),array('wood'=>6725,'clay'=>7795,'iron'=>9875,'crop'=>2415,'time'=>84165),array('wood'=>7210,'clay'=>8360,'iron'=>10585,'crop'=>2590,'time'=>90233),array('wood'=>7685,'clay'=>8910,'iron'=>11285,'crop'=>2765,'time'=>96200),array('wood'=>8155,'clay'=>9455,'iron'=>11975,'crop'=>2930,'time'=>102075),array('wood'=>8620,'clay'=>9995,'iron'=>12655,'crop'=>3100,'time'=>107868),array('wood'=>9075,'clay'=>10520,'iron'=>13325,'crop'=>3260,'time'=>113583),array('wood'=>9525,'clay'=>11045,'iron'=>13985,'crop'=>3425,'time'=>119228),array('wood'=>9970,'clay'=>11560,'iron'=>14640,'crop'=>3585,'time'=>124806),array('wood'=>10410,'clay'=>12075,'iron'=>15290,'crop'=>3745,'time'=>130323),array('wood'=>10850,'clay'=>12580,'iron'=>15930,'crop'=>3900,'time'=>135782)); -$ab7=array(1=>array('wood'=>2135,'clay'=>875,'iron'=>1235,'crop'=>215,'time'=>15600),array('wood'=>3715,'clay'=>1520,'iron'=>2145,'crop'=>375,'time'=>27161),array('wood'=>5140,'clay'=>2105,'iron'=>2970,'crop'=>520,'time'=>37568),array('wood'=>6465,'clay'=>2645,'iron'=>3740,'crop'=>655,'time'=>47290),array('wood'=>7730,'clay'=>3165,'iron'=>4470,'crop'=>785,'time'=>56533),array('wood'=>8945,'clay'=>3660,'iron'=>5170,'crop'=>910,'time'=>65410),array('wood'=>10120,'clay'=>4140,'iron'=>5850,'crop'=>1030,'time'=>73995),array('wood'=>11260,'clay'=>4610,'iron'=>6510,'crop'=>1145,'time'=>82337),array('wood'=>12370,'clay'=>5065,'iron'=>7155,'crop'=>1255,'time'=>90473),array('wood'=>13460,'clay'=>5510,'iron'=>7780,'crop'=>1365,'time'=>98429),array('wood'=>14525,'clay'=>5945,'iron'=>8400,'crop'=>1475,'time'=>106228),array('wood'=>15575,'clay'=>6375,'iron'=>9005,'crop'=>1580,'time'=>113886),array('wood'=>16605,'clay'=>6795,'iron'=>9600,'crop'=>1685,'time'=>121417),array('wood'=>17620,'clay'=>7210,'iron'=>10185,'crop'=>1790,'time'=>128833),array('wood'=>18620,'clay'=>7620,'iron'=>10765,'crop'=>1890,'time'=>136144),array('wood'=>19605,'clay'=>8025,'iron'=>11335,'crop'=>1990,'time'=>143358),array('wood'=>20580,'clay'=>8425,'iron'=>11895,'crop'=>2090,'time'=>150482),array('wood'=>21540,'clay'=>8820,'iron'=>12455,'crop'=>2190,'time'=>157523),array('wood'=>22495,'clay'=>9210,'iron'=>13005,'crop'=>2285,'time'=>164485),array('wood'=>23435,'clay'=>9595,'iron'=>13550,'crop'=>2380,'time'=>171375)); -$ab8=array(1=>array('wood'=>1125,'clay'=>1590,'iron'=>735,'crop'=>130,'time'=>28800),array('wood'=>1960,'clay'=>2770,'iron'=>1275,'crop'=>230,'time'=>50144),array('wood'=>2710,'clay'=>3835,'iron'=>1765,'crop'=>315,'time'=>69357),array('wood'=>3410,'clay'=>4825,'iron'=>2225,'crop'=>400,'time'=>87305),array('wood'=>4075,'clay'=>5770,'iron'=>2660,'crop'=>475,'time'=>104368),array('wood'=>4715,'clay'=>6675,'iron'=>3075,'crop'=>550,'time'=>120757),array('wood'=>5335,'clay'=>7550,'iron'=>3480,'crop'=>625,'time'=>136606),array('wood'=>5940,'clay'=>8400,'iron'=>3870,'crop'=>695,'time'=>152007),array('wood'=>6525,'clay'=>9230,'iron'=>4255,'crop'=>765,'time'=>167027),array('wood'=>7100,'clay'=>10045,'iron'=>4625,'crop'=>830,'time'=>181716),array('wood'=>7660,'clay'=>10840,'iron'=>4995,'crop'=>895,'time'=>196113),array('wood'=>8215,'clay'=>11620,'iron'=>5355,'crop'=>960,'time'=>210251),array('wood'=>8755,'clay'=>12390,'iron'=>5710,'crop'=>1025,'time'=>224154),array('wood'=>9290,'clay'=>13145,'iron'=>6055,'crop'=>1085,'time'=>237845),array('wood'=>9820,'clay'=>13890,'iron'=>6400,'crop'=>1150,'time'=>251342),array('wood'=>10340,'clay'=>14625,'iron'=>6740,'crop'=>1210,'time'=>264660),array('wood'=>10850,'clay'=>15355,'iron'=>7075,'crop'=>1270,'time'=>277812),array('wood'=>11360,'clay'=>16070,'iron'=>7405,'crop'=>1330,'time'=>290811),array('wood'=>11860,'clay'=>16780,'iron'=>7730,'crop'=>1390,'time'=>303665),array('wood'=>12360,'clay'=>17485,'iron'=>8055,'crop'=>1445,'time'=>316385)); -$ab11=array(1=>array('wood'=>765,'clay'=>625,'iron'=>480,'crop'=>440,'time'=>3960),array('wood'=>1330,'clay'=>1090,'iron'=>835,'crop'=>765,'time'=>6895),array('wood'=>1840,'clay'=>1505,'iron'=>1155,'crop'=>1060,'time'=>9537),array('wood'=>2320,'clay'=>1895,'iron'=>1455,'crop'=>1335,'time'=>12004),array('wood'=>2770,'clay'=>2265,'iron'=>1740,'crop'=>1595,'time'=>14351),array('wood'=>3210,'clay'=>2620,'iron'=>2015,'crop'=>1845,'time'=>16604),array('wood'=>3630,'clay'=>2965,'iron'=>2275,'crop'=>2085,'time'=>18783),array('wood'=>4040,'clay'=>3300,'iron'=>2535,'crop'=>2320,'time'=>20901),array('wood'=>4435,'clay'=>3625,'iron'=>2785,'crop'=>2550,'time'=>22966),array('wood'=>4825,'clay'=>3945,'iron'=>3030,'crop'=>2775,'time'=>24986),array('wood'=>5210,'clay'=>4255,'iron'=>3270,'crop'=>2995,'time'=>26966),array('wood'=>5585,'clay'=>4565,'iron'=>3505,'crop'=>3210,'time'=>28909),array('wood'=>5955,'clay'=>4865,'iron'=>3735,'crop'=>3425,'time'=>30821),array('wood'=>6320,'clay'=>5160,'iron'=>3965,'crop'=>3635,'time'=>32704),array('wood'=>6675,'clay'=>5455,'iron'=>4190,'crop'=>3840,'time'=>34560),array('wood'=>7030,'clay'=>5745,'iron'=>4410,'crop'=>4045,'time'=>36391),array('wood'=>7380,'clay'=>6030,'iron'=>4630,'crop'=>4245,'time'=>38199),array('wood'=>7725,'clay'=>6310,'iron'=>4845,'crop'=>4445,'time'=>39986),array('wood'=>8065,'clay'=>6590,'iron'=>5060,'crop'=>4640,'time'=>41754),array('wood'=>8405,'clay'=>6865,'iron'=>5275,'crop'=>4835,'time'=>43503)); -$ab12=array(1=>array('wood'=>1115,'clay'=>590,'iron'=>795,'crop'=>440,'time'=>5160),array('wood'=>1940,'clay'=>1025,'iron'=>1385,'crop'=>765,'time'=>8984),array('wood'=>2685,'clay'=>1420,'iron'=>1915,'crop'=>1060,'time'=>12426),array('wood'=>3380,'clay'=>1790,'iron'=>2410,'crop'=>1335,'time'=>15642),array('wood'=>4040,'clay'=>2140,'iron'=>2880,'crop'=>1595,'time'=>18699),array('wood'=>4675,'clay'=>2475,'iron'=>3335,'crop'=>1845,'time'=>21636),array('wood'=>5290,'clay'=>2800,'iron'=>3770,'crop'=>2085,'time'=>24475),array('wood'=>5885,'clay'=>3115,'iron'=>4195,'crop'=>2320,'time'=>27235),array('wood'=>6465,'clay'=>3420,'iron'=>4610,'crop'=>2550,'time'=>29926),array('wood'=>7035,'clay'=>3725,'iron'=>5015,'crop'=>2775,'time'=>32557),array('wood'=>7595,'clay'=>4020,'iron'=>5415,'crop'=>2995,'time'=>35137),array('wood'=>8140,'clay'=>4305,'iron'=>5805,'crop'=>3210,'time'=>37670),array('wood'=>8680,'clay'=>4590,'iron'=>6190,'crop'=>3425,'time'=>40161),array('wood'=>9210,'clay'=>4875,'iron'=>6565,'crop'=>3635,'time'=>42614),array('wood'=>9730,'clay'=>5150,'iron'=>6940,'crop'=>3840,'time'=>45032),array('wood'=>10245,'clay'=>5420,'iron'=>7305,'crop'=>4045,'time'=>47418),array('wood'=>10755,'clay'=>5690,'iron'=>7670,'crop'=>4245,'time'=>49775),array('wood'=>11260,'clay'=>5960,'iron'=>8030,'crop'=>4445,'time'=>52104),array('wood'=>11755,'clay'=>6220,'iron'=>8380,'crop'=>4640,'time'=>54407),array('wood'=>12250,'clay'=>6480,'iron'=>8735,'crop'=>4835,'time'=>56686)); -$ab13=array(1=>array('wood'=>1010,'clay'=>940,'iron'=>1390,'crop'=>650,'time'=>5400),array('wood'=>1760,'clay'=>1635,'iron'=>2420,'crop'=>1130,'time'=>9402),array('wood'=>2430,'clay'=>2265,'iron'=>3345,'crop'=>1565,'time'=>13004),array('wood'=>3060,'clay'=>2850,'iron'=>4215,'crop'=>1970,'time'=>16370),array('wood'=>3660,'clay'=>3405,'iron'=>5035,'crop'=>2355,'time'=>19569),array('wood'=>4235,'clay'=>3940,'iron'=>5830,'crop'=>2725,'time'=>22642),array('wood'=>4790,'clay'=>4460,'iron'=>6595,'crop'=>3085,'time'=>25614),array('wood'=>5330,'clay'=>4960,'iron'=>7335,'crop'=>3430,'time'=>28501),array('wood'=>5860,'clay'=>5450,'iron'=>8060,'crop'=>3770,'time'=>31318),array('wood'=>6375,'clay'=>5930,'iron'=>8770,'crop'=>4100,'time'=>34072),array('wood'=>6880,'clay'=>6400,'iron'=>9465,'crop'=>4425,'time'=>36771),array('wood'=>7375,'clay'=>6860,'iron'=>10150,'crop'=>4745,'time'=>39422),array('wood'=>7860,'clay'=>7315,'iron'=>10820,'crop'=>5060,'time'=>42029),array('wood'=>8340,'clay'=>7765,'iron'=>11480,'crop'=>5370,'time'=>44596),array('wood'=>8815,'clay'=>8205,'iron'=>12130,'crop'=>5675,'time'=>47127),array('wood'=>9280,'clay'=>8640,'iron'=>12775,'crop'=>5975,'time'=>49624),array('wood'=>9745,'clay'=>9065,'iron'=>13410,'crop'=>6270,'time'=>52090),array('wood'=>10200,'clay'=>9490,'iron'=>14035,'crop'=>6565,'time'=>54527),array('wood'=>10650,'clay'=>9910,'iron'=>14655,'crop'=>6855,'time'=>56937),array('wood'=>11095,'clay'=>10325,'iron'=>15270,'crop'=>7140,'time'=>59322)); -$ab14=array(1=>array('wood'=>1220,'clay'=>800,'iron'=>550,'crop'=>510,'time'=>5160),array('wood'=>2125,'clay'=>1395,'iron'=>960,'crop'=>890,'time'=>8984),array('wood'=>2940,'clay'=>1925,'iron'=>1325,'crop'=>1230,'time'=>12426),array('wood'=>3700,'clay'=>2425,'iron'=>1665,'crop'=>1545,'time'=>15642),array('wood'=>4420,'clay'=>2900,'iron'=>1995,'crop'=>1850,'time'=>18699),array('wood'=>5115,'clay'=>3355,'iron'=>2305,'crop'=>2140,'time'=>21636),array('wood'=>5785,'clay'=>3795,'iron'=>2610,'crop'=>2420,'time'=>24475),array('wood'=>6440,'clay'=>4220,'iron'=>2905,'crop'=>2690,'time'=>27235),array('wood'=>7075,'clay'=>4640,'iron'=>3190,'crop'=>2960,'time'=>29926),array('wood'=>7700,'clay'=>5050,'iron'=>3470,'crop'=>3220,'time'=>32557),array('wood'=>8310,'clay'=>5450,'iron'=>3745,'crop'=>3475,'time'=>35137),array('wood'=>8905,'clay'=>5840,'iron'=>4015,'crop'=>3725,'time'=>37670),array('wood'=>9495,'clay'=>6225,'iron'=>4280,'crop'=>3970,'time'=>40161),array('wood'=>10075,'clay'=>6605,'iron'=>4540,'crop'=>4210,'time'=>42614),array('wood'=>10645,'clay'=>6980,'iron'=>4800,'crop'=>4450,'time'=>45032),array('wood'=>11210,'clay'=>7350,'iron'=>5055,'crop'=>4685,'time'=>47418),array('wood'=>11770,'clay'=>7715,'iron'=>5305,'crop'=>4920,'time'=>49775),array('wood'=>12320,'clay'=>8080,'iron'=>5555,'crop'=>5150,'time'=>52104),array('wood'=>12865,'clay'=>8435,'iron'=>5800,'crop'=>5375,'time'=>54407),array('wood'=>13400,'clay'=>8790,'iron'=>6040,'crop'=>5605,'time'=>56686)); -$ab15=array(1=>array('wood'=>1345,'clay'=>995,'iron'=>1115,'crop'=>345,'time'=>9000),array('wood'=>2340,'clay'=>1730,'iron'=>1940,'crop'=>595,'time'=>15670),array('wood'=>3240,'clay'=>2395,'iron'=>2685,'crop'=>825,'time'=>21674),array('wood'=>4075,'clay'=>3015,'iron'=>3380,'crop'=>1040,'time'=>27283),array('wood'=>4875,'clay'=>3605,'iron'=>4040,'crop'=>1240,'time'=>32615),array('wood'=>5640,'clay'=>4170,'iron'=>4675,'crop'=>1435,'time'=>37737),array('wood'=>6380,'clay'=>4720,'iron'=>5290,'crop'=>1625,'time'=>42689),array('wood'=>7100,'clay'=>5250,'iron'=>5885,'crop'=>1810,'time'=>47502),array('wood'=>7800,'clay'=>5770,'iron'=>6465,'crop'=>1985,'time'=>52196),array('wood'=>8485,'clay'=>6280,'iron'=>7035,'crop'=>2160,'time'=>56786),array('wood'=>9160,'clay'=>6775,'iron'=>7595,'crop'=>2330,'time'=>61285),array('wood'=>9820,'clay'=>7265,'iron'=>8140,'crop'=>2500,'time'=>65703),array('wood'=>10470,'clay'=>7745,'iron'=>8680,'crop'=>2665,'time'=>70048),array('wood'=>11110,'clay'=>8215,'iron'=>9210,'crop'=>2830,'time'=>74327),array('wood'=>11740,'clay'=>8685,'iron'=>9730,'crop'=>2990,'time'=>78544),array('wood'=>12360,'clay'=>9145,'iron'=>10245,'crop'=>3145,'time'=>82706),array('wood'=>12975,'clay'=>9600,'iron'=>10755,'crop'=>3305,'time'=>86816),array('wood'=>13580,'clay'=>10045,'iron'=>11260,'crop'=>3460,'time'=>90878),array('wood'=>14180,'clay'=>10490,'iron'=>11755,'crop'=>3610,'time'=>94895),array('wood'=>14775,'clay'=>10930,'iron'=>12250,'crop'=>3765,'time'=>98870)); -$ab16=array(1=>array('wood'=>1085,'clay'=>1235,'iron'=>1185,'crop'=>240,'time'=>10680),array('wood'=>1885,'clay'=>2150,'iron'=>2065,'crop'=>420,'time'=>18595),array('wood'=>2610,'clay'=>2975,'iron'=>2860,'crop'=>580,'time'=>25720),array('wood'=>3285,'clay'=>3745,'iron'=>3595,'crop'=>730,'time'=>32376),array('wood'=>3925,'clay'=>4475,'iron'=>4300,'crop'=>870,'time'=>38703),array('wood'=>4540,'clay'=>5180,'iron'=>4975,'crop'=>1005,'time'=>44781),array('wood'=>5140,'clay'=>5860,'iron'=>5630,'crop'=>1140,'time'=>50658),array('wood'=>5720,'clay'=>6520,'iron'=>6265,'crop'=>1265,'time'=>56369),array('wood'=>6285,'clay'=>7160,'iron'=>6880,'crop'=>1390,'time'=>61939),array('wood'=>6835,'clay'=>7790,'iron'=>7485,'crop'=>1515,'time'=>67386),array('wood'=>7375,'clay'=>8410,'iron'=>8080,'crop'=>1635,'time'=>72725),array('wood'=>7910,'clay'=>9015,'iron'=>8665,'crop'=>1750,'time'=>77968),array('wood'=>8430,'clay'=>9610,'iron'=>9235,'crop'=>1870,'time'=>83124),array('wood'=>8945,'clay'=>10200,'iron'=>9800,'crop'=>1980,'time'=>88201),array('wood'=>9455,'clay'=>10780,'iron'=>10355,'crop'=>2095,'time'=>93206),array('wood'=>9955,'clay'=>11350,'iron'=>10905,'crop'=>2205,'time'=>98145),array('wood'=>10450,'clay'=>11915,'iron'=>11445,'crop'=>2315,'time'=>103022),array('wood'=>10940,'clay'=>12470,'iron'=>11980,'crop'=>2425,'time'=>107842),array('wood'=>11425,'clay'=>13020,'iron'=>12510,'crop'=>2530,'time'=>112609),array('wood'=>11900,'clay'=>13565,'iron'=>13035,'crop'=>2635,'time'=>117326)); -$ab17=array(1=>array('wood'=>2365,'clay'=>735,'iron'=>885,'crop'=>215,'time'=>14400),array('wood'=>4120,'clay'=>1275,'iron'=>1540,'crop'=>375,'time'=>25072),array('wood'=>5700,'clay'=>1765,'iron'=>2125,'crop'=>520,'time'=>34678),array('wood'=>7175,'clay'=>2225,'iron'=>2680,'crop'=>655,'time'=>43653),array('wood'=>8575,'clay'=>2660,'iron'=>3200,'crop'=>785,'time'=>52184),array('wood'=>9925,'clay'=>3075,'iron'=>3705,'crop'=>910,'time'=>60379),array('wood'=>11225,'clay'=>3480,'iron'=>4190,'crop'=>1030,'time'=>68303),array('wood'=>12490,'clay'=>3870,'iron'=>4660,'crop'=>1145,'time'=>76004),array('wood'=>13725,'clay'=>4255,'iron'=>5125,'crop'=>1255,'time'=>83513),array('wood'=>14935,'clay'=>4625,'iron'=>5575,'crop'=>1365,'time'=>90858),array('wood'=>16115,'clay'=>4995,'iron'=>6015,'crop'=>1475,'time'=>98057),array('wood'=>17280,'clay'=>5355,'iron'=>6450,'crop'=>1580,'time'=>105125),array('wood'=>18420,'clay'=>5710,'iron'=>6875,'crop'=>1685,'time'=>112077),array('wood'=>19545,'clay'=>6055,'iron'=>7295,'crop'=>1790,'time'=>118923),array('wood'=>20655,'clay'=>6400,'iron'=>7710,'crop'=>1890,'time'=>125671),array('wood'=>21750,'clay'=>6740,'iron'=>8115,'crop'=>1990,'time'=>132330),array('wood'=>22830,'clay'=>7075,'iron'=>8520,'crop'=>2090,'time'=>138906),array('wood'=>23900,'clay'=>7405,'iron'=>8920,'crop'=>2190,'time'=>145405),array('wood'=>24955,'clay'=>7730,'iron'=>9315,'crop'=>2285,'time'=>151833),array('wood'=>26000,'clay'=>8055,'iron'=>9705,'crop'=>2380,'time'=>158193)); -$ab18=array(1=>array('wood'=>1065,'clay'=>1415,'iron'=>735,'crop'=>95,'time'=>28800),array('wood'=>1855,'clay'=>2465,'iron'=>1275,'crop'=>170,'time'=>50144),array('wood'=>2570,'clay'=>3410,'iron'=>1765,'crop'=>235,'time'=>69357),array('wood'=>3235,'clay'=>4295,'iron'=>2225,'crop'=>295,'time'=>87305),array('wood'=>3865,'clay'=>5135,'iron'=>2660,'crop'=>350,'time'=>104368),array('wood'=>4470,'clay'=>5940,'iron'=>3075,'crop'=>405,'time'=>120757),array('wood'=>5060,'clay'=>6720,'iron'=>3480,'crop'=>460,'time'=>136606),array('wood'=>5630,'clay'=>7475,'iron'=>3870,'crop'=>510,'time'=>152007),array('wood'=>6185,'clay'=>8215,'iron'=>4255,'crop'=>560,'time'=>167027),array('wood'=>6730,'clay'=>8940,'iron'=>4625,'crop'=>610,'time'=>181716),array('wood'=>7265,'clay'=>9645,'iron'=>4995,'crop'=>660,'time'=>196113),array('wood'=>7785,'clay'=>10340,'iron'=>5355,'crop'=>705,'time'=>210251),array('wood'=>8300,'clay'=>11025,'iron'=>5710,'crop'=>750,'time'=>224154),array('wood'=>8810,'clay'=>11700,'iron'=>6055,'crop'=>800,'time'=>237845),array('wood'=>9310,'clay'=>12365,'iron'=>6400,'crop'=>845,'time'=>251342),array('wood'=>9800,'clay'=>13020,'iron'=>6740,'crop'=>890,'time'=>264660),array('wood'=>10290,'clay'=>13665,'iron'=>7075,'crop'=>930,'time'=>277812),array('wood'=>10770,'clay'=>14305,'iron'=>7405,'crop'=>975,'time'=>290811),array('wood'=>11245,'clay'=>14935,'iron'=>7730,'crop'=>1020,'time'=>303665),array('wood'=>11720,'clay'=>15565,'iron'=>8055,'crop'=>1060,'time'=>316385)); -$ab21=array(1=>array('wood'=>800,'clay'=>1010,'iron'=>585,'crop'=>370,'time'=>4920),array('wood'=>1395,'clay'=>1760,'iron'=>1020,'crop'=>645,'time'=>8566),array('wood'=>1925,'clay'=>2430,'iron'=>1410,'crop'=>890,'time'=>11848),array('wood'=>2425,'clay'=>3060,'iron'=>1775,'crop'=>1120,'time'=>14915),array('wood'=>2900,'clay'=>3660,'iron'=>2120,'crop'=>1340,'time'=>17830),array('wood'=>3355,'clay'=>4235,'iron'=>2455,'crop'=>1550,'time'=>20629),array('wood'=>3795,'clay'=>4790,'iron'=>2775,'crop'=>1755,'time'=>23337),array('wood'=>4220,'clay'=>5330,'iron'=>3090,'crop'=>1955,'time'=>25968),array('wood'=>4640,'clay'=>5860,'iron'=>3395,'crop'=>2145,'time'=>28534),array('wood'=>5050,'clay'=>6375,'iron'=>3690,'crop'=>2335,'time'=>31043),array('wood'=>5450,'clay'=>6880,'iron'=>3985,'crop'=>2520,'time'=>33503),array('wood'=>5840,'clay'=>7375,'iron'=>4270,'crop'=>2700,'time'=>35918),array('wood'=>6225,'clay'=>7860,'iron'=>4555,'crop'=>2880,'time'=>38293),array('wood'=>6605,'clay'=>8340,'iron'=>4830,'crop'=>3055,'time'=>40632),array('wood'=>6980,'clay'=>8815,'iron'=>5105,'crop'=>3230,'time'=>42938),array('wood'=>7350,'clay'=>9280,'iron'=>5375,'crop'=>3400,'time'=>45213),array('wood'=>7715,'clay'=>9745,'iron'=>5645,'crop'=>3570,'time'=>47460),array('wood'=>8080,'clay'=>10200,'iron'=>5905,'crop'=>3735,'time'=>49680),array('wood'=>8435,'clay'=>10650,'iron'=>6170,'crop'=>3900,'time'=>51876),array('wood'=>8790,'clay'=>11095,'iron'=>6425,'crop'=>4065,'time'=>54049)); -$ab22=array(1=>array('wood'=>1080,'clay'=>1150,'iron'=>1495,'crop'=>580,'time'=>6120),array('wood'=>1880,'clay'=>2000,'iron'=>2605,'crop'=>1010,'time'=>10656),array('wood'=>2600,'clay'=>2770,'iron'=>3600,'crop'=>1395,'time'=>14738),array('wood'=>3275,'clay'=>3485,'iron'=>4530,'crop'=>1760,'time'=>18552),array('wood'=>3915,'clay'=>4165,'iron'=>5420,'crop'=>2100,'time'=>22178),array('wood'=>4530,'clay'=>4820,'iron'=>6270,'crop'=>2430,'time'=>25661),array('wood'=>5125,'clay'=>5455,'iron'=>7090,'crop'=>2750,'time'=>29029),array('wood'=>5700,'clay'=>6070,'iron'=>7890,'crop'=>3060,'time'=>32302),array('wood'=>6265,'clay'=>6670,'iron'=>8670,'crop'=>3365,'time'=>35493),array('wood'=>6815,'clay'=>7255,'iron'=>9435,'crop'=>3660,'time'=>38615),array('wood'=>7355,'clay'=>7830,'iron'=>10180,'crop'=>3950,'time'=>41674),array('wood'=>7885,'clay'=>8395,'iron'=>10915,'crop'=>4235,'time'=>44678),array('wood'=>8405,'clay'=>8950,'iron'=>11635,'crop'=>4515,'time'=>47633),array('wood'=>8920,'clay'=>9495,'iron'=>12345,'crop'=>4790,'time'=>50542),array('wood'=>9425,'clay'=>10035,'iron'=>13045,'crop'=>5060,'time'=>53410),array('wood'=>9925,'clay'=>10570,'iron'=>13740,'crop'=>5330,'time'=>56240),array('wood'=>10420,'clay'=>11095,'iron'=>14420,'crop'=>5595,'time'=>59035),array('wood'=>10905,'clay'=>11610,'iron'=>15095,'crop'=>5855,'time'=>61797),array('wood'=>11385,'clay'=>12125,'iron'=>15765,'crop'=>6115,'time'=>64529),array('wood'=>11865,'clay'=>12635,'iron'=>16425,'crop'=>6370,'time'=>67232)); -$ab23=array(1=>array('wood'=>645,'clay'=>575,'iron'=>170,'crop'=>220,'time'=>5880),array('wood'=>1125,'clay'=>1000,'iron'=>295,'crop'=>385,'time'=>10238),array('wood'=>1555,'clay'=>1385,'iron'=>410,'crop'=>530,'time'=>14160),array('wood'=>1955,'clay'=>1745,'iron'=>515,'crop'=>665,'time'=>17825),array('wood'=>2335,'clay'=>2085,'iron'=>615,'crop'=>795,'time'=>21309),array('wood'=>2705,'clay'=>2410,'iron'=>715,'crop'=>920,'time'=>24655),array('wood'=>3060,'clay'=>2725,'iron'=>805,'crop'=>1045,'time'=>27890),array('wood'=>3405,'clay'=>3035,'iron'=>895,'crop'=>1160,'time'=>31035),array('wood'=>3740,'clay'=>3335,'iron'=>985,'crop'=>1275,'time'=>34101),array('wood'=>4070,'clay'=>3630,'iron'=>1075,'crop'=>1390,'time'=>37100),array('wood'=>4390,'clay'=>3915,'iron'=>1160,'crop'=>1500,'time'=>40040),array('wood'=>4710,'clay'=>4200,'iron'=>1240,'crop'=>1605,'time'=>42926),array('wood'=>5020,'clay'=>4475,'iron'=>1325,'crop'=>1710,'time'=>45765),array('wood'=>5325,'clay'=>4750,'iron'=>1405,'crop'=>1815,'time'=>48560),array('wood'=>5630,'clay'=>5020,'iron'=>1485,'crop'=>1920,'time'=>51316),array('wood'=>5925,'clay'=>5285,'iron'=>1560,'crop'=>2020,'time'=>54035),array('wood'=>6220,'clay'=>5545,'iron'=>1640,'crop'=>2120,'time'=>56720),array('wood'=>6515,'clay'=>5805,'iron'=>1715,'crop'=>2220,'time'=>59374),array('wood'=>6800,'clay'=>6065,'iron'=>1790,'crop'=>2320,'time'=>61998),array('wood'=>7085,'clay'=>6315,'iron'=>1870,'crop'=>2415,'time'=>64595)); -$ab24=array(1=>array('wood'=>1275,'clay'=>1625,'iron'=>905,'crop'=>290,'time'=>9240),array('wood'=>2220,'clay'=>2830,'iron'=>1575,'crop'=>505,'time'=>16088),array('wood'=>3070,'clay'=>3915,'iron'=>2180,'crop'=>700,'time'=>22252),array('wood'=>3865,'clay'=>4925,'iron'=>2745,'crop'=>880,'time'=>28010),array('wood'=>4620,'clay'=>5890,'iron'=>3280,'crop'=>1050,'time'=>33485),array('wood'=>5345,'clay'=>6815,'iron'=>3795,'crop'=>1215,'time'=>38743),array('wood'=>6050,'clay'=>7710,'iron'=>4295,'crop'=>1375,'time'=>43828),array('wood'=>6730,'clay'=>8575,'iron'=>4775,'crop'=>1530,'time'=>48769),array('wood'=>7395,'clay'=>9425,'iron'=>5250,'crop'=>1680,'time'=>53588),array('wood'=>8045,'clay'=>10255,'iron'=>5710,'crop'=>1830,'time'=>58300),array('wood'=>8680,'clay'=>11065,'iron'=>6165,'crop'=>1975,'time'=>62920),array('wood'=>9310,'clay'=>11865,'iron'=>6605,'crop'=>2115,'time'=>67455),array('wood'=>9925,'clay'=>12650,'iron'=>7045,'crop'=>2255,'time'=>71916),array('wood'=>10530,'clay'=>13420,'iron'=>7475,'crop'=>2395,'time'=>76309),array('wood'=>11125,'clay'=>14180,'iron'=>7900,'crop'=>2530,'time'=>80639),array('wood'=>11715,'clay'=>14935,'iron'=>8315,'crop'=>2665,'time'=>84912),array('wood'=>12300,'clay'=>15675,'iron'=>8730,'crop'=>2795,'time'=>89131),array('wood'=>12875,'clay'=>16410,'iron'=>9140,'crop'=>2930,'time'=>93302),array('wood'=>13445,'clay'=>17135,'iron'=>9540,'crop'=>3060,'time'=>97426),array('wood'=>14005,'clay'=>17850,'iron'=>9940,'crop'=>3185,'time'=>101507)); -$ab25=array(1=>array('wood'=>1310,'clay'=>1205,'iron'=>1080,'crop'=>500,'time'=>9480),array('wood'=>2280,'clay'=>2100,'iron'=>1880,'crop'=>870,'time'=>16506),array('wood'=>3155,'clay'=>2900,'iron'=>2600,'crop'=>1205,'time'=>22830),array('wood'=>3970,'clay'=>3655,'iron'=>3275,'crop'=>1515,'time'=>28738),array('wood'=>4745,'clay'=>4365,'iron'=>3915,'crop'=>1810,'time'=>34355),array('wood'=>5495,'clay'=>5055,'iron'=>4530,'crop'=>2095,'time'=>39749),array('wood'=>6215,'clay'=>5715,'iron'=>5125,'crop'=>2370,'time'=>44966),array('wood'=>6915,'clay'=>6360,'iron'=>5700,'crop'=>2640,'time'=>50036),array('wood'=>7595,'clay'=>6990,'iron'=>6265,'crop'=>2900,'time'=>54980),array('wood'=>8265,'clay'=>7605,'iron'=>6815,'crop'=>3155,'time'=>59815),array('wood'=>8920,'clay'=>8205,'iron'=>7355,'crop'=>3405,'time'=>64554),array('wood'=>9565,'clay'=>8795,'iron'=>7885,'crop'=>3650,'time'=>69208),array('wood'=>10195,'clay'=>9380,'iron'=>8405,'crop'=>3890,'time'=>73784),array('wood'=>10820,'clay'=>9950,'iron'=>8920,'crop'=>4130,'time'=>78291),array('wood'=>11435,'clay'=>10515,'iron'=>9425,'crop'=>4365,'time'=>82733),array('wood'=>12040,'clay'=>11075,'iron'=>9925,'crop'=>4595,'time'=>87117),array('wood'=>12635,'clay'=>11625,'iron'=>10420,'crop'=>4825,'time'=>91447),array('wood'=>13230,'clay'=>12170,'iron'=>10905,'crop'=>5050,'time'=>95725),array('wood'=>13815,'clay'=>12705,'iron'=>11385,'crop'=>5270,'time'=>99957),array('wood'=>14390,'clay'=>13240,'iron'=>11865,'crop'=>5495,'time'=>104144)); -$ab26=array(1=>array('wood'=>1200,'clay'=>1480,'iron'=>1640,'crop'=>450,'time'=>11160),array('wood'=>2090,'clay'=>2575,'iron'=>2860,'crop'=>785,'time'=>19431),array('wood'=>2890,'clay'=>3565,'iron'=>3955,'crop'=>1085,'time'=>26876),array('wood'=>3640,'clay'=>4485,'iron'=>4975,'crop'=>1365,'time'=>33831),array('wood'=>4350,'clay'=>5365,'iron'=>5950,'crop'=>1630,'time'=>40443),array('wood'=>5030,'clay'=>6205,'iron'=>6885,'crop'=>1885,'time'=>46793),array('wood'=>5690,'clay'=>7020,'iron'=>7785,'crop'=>2135,'time'=>52935),array('wood'=>6335,'clay'=>7810,'iron'=>8665,'crop'=>2375,'time'=>58903),array('wood'=>6960,'clay'=>8585,'iron'=>9520,'crop'=>2610,'time'=>64723),array('wood'=>7570,'clay'=>9340,'iron'=>10360,'crop'=>2840,'time'=>70415),array('wood'=>8170,'clay'=>10080,'iron'=>11180,'crop'=>3065,'time'=>75994),array('wood'=>8760,'clay'=>10805,'iron'=>11985,'crop'=>3285,'time'=>81472),array('wood'=>9340,'clay'=>11520,'iron'=>12775,'crop'=>3500,'time'=>86860),array('wood'=>9910,'clay'=>12225,'iron'=>13560,'crop'=>3715,'time'=>92165),array('wood'=>10475,'clay'=>12915,'iron'=>14325,'crop'=>3925,'time'=>97395),array('wood'=>11030,'clay'=>13600,'iron'=>15085,'crop'=>4135,'time'=>102556),array('wood'=>11575,'clay'=>14275,'iron'=>15835,'crop'=>4340,'time'=>107652),array('wood'=>12115,'clay'=>14945,'iron'=>16575,'crop'=>4545,'time'=>112689),array('wood'=>12655,'clay'=>15605,'iron'=>17310,'crop'=>4745,'time'=>117670),array('wood'=>13185,'clay'=>16260,'iron'=>18035,'crop'=>4945,'time'=>122599)); -$ab27=array(1=>array('wood'=>2250,'clay'=>1330,'iron'=>835,'crop'=>230,'time'=>16800),array('wood'=>3915,'clay'=>2315,'iron'=>1455,'crop'=>400,'time'=>29250),array('wood'=>5420,'clay'=>3200,'iron'=>2015,'crop'=>550,'time'=>40458),array('wood'=>6820,'clay'=>4025,'iron'=>2535,'crop'=>690,'time'=>50928),array('wood'=>8155,'clay'=>4815,'iron'=>3030,'crop'=>825,'time'=>60881),array('wood'=>9435,'clay'=>5570,'iron'=>3510,'crop'=>955,'time'=>70442),array('wood'=>10670,'clay'=>6300,'iron'=>3970,'crop'=>1085,'time'=>79687),array('wood'=>11875,'clay'=>7010,'iron'=>4415,'crop'=>1205,'time'=>88671),array('wood'=>13050,'clay'=>7705,'iron'=>4850,'crop'=>1325,'time'=>97432),array('wood'=>14195,'clay'=>8380,'iron'=>5280,'crop'=>1440,'time'=>106001),array('wood'=>15320,'clay'=>9045,'iron'=>5695,'crop'=>1555,'time'=>114399),array('wood'=>16425,'clay'=>9695,'iron'=>6110,'crop'=>1665,'time'=>122646),array('wood'=>17510,'clay'=>10340,'iron'=>6510,'crop'=>1775,'time'=>130757),array('wood'=>18580,'clay'=>10970,'iron'=>6910,'crop'=>1885,'time'=>138743),array('wood'=>19635,'clay'=>11595,'iron'=>7300,'crop'=>1995,'time'=>146616),array('wood'=>20675,'clay'=>12205,'iron'=>7690,'crop'=>2100,'time'=>154385),array('wood'=>21705,'clay'=>12815,'iron'=>8070,'crop'=>2205,'time'=>162057),array('wood'=>22720,'clay'=>13415,'iron'=>8450,'crop'=>2305,'time'=>169640),array('wood'=>23725,'clay'=>14005,'iron'=>8820,'crop'=>2410,'time'=>177138),array('wood'=>24720,'clay'=>14595,'iron'=>9190,'crop'=>2510,'time'=>184558)); -$ab28=array(1=>array('wood'=>1135,'clay'=>1710,'iron'=>770,'crop'=>130,'time'=>28800),array('wood'=>1980,'clay'=>2975,'iron'=>1340,'crop'=>230,'time'=>50144),array('wood'=>2735,'clay'=>4115,'iron'=>1850,'crop'=>315,'time'=>69357),array('wood'=>3445,'clay'=>5180,'iron'=>2330,'crop'=>400,'time'=>87305),array('wood'=>4120,'clay'=>6190,'iron'=>2785,'crop'=>475,'time'=>104368),array('wood'=>4765,'clay'=>7165,'iron'=>3220,'crop'=>550,'time'=>120757),array('wood'=>5390,'clay'=>8105,'iron'=>3645,'crop'=>625,'time'=>136606),array('wood'=>6000,'clay'=>9015,'iron'=>4055,'crop'=>695,'time'=>152007),array('wood'=>6590,'clay'=>9910,'iron'=>4455,'crop'=>765,'time'=>167027),array('wood'=>7170,'clay'=>10780,'iron'=>4850,'crop'=>830,'time'=>181716),array('wood'=>7740,'clay'=>11635,'iron'=>5230,'crop'=>895,'time'=>196113),array('wood'=>8300,'clay'=>12470,'iron'=>5610,'crop'=>960,'time'=>210251),array('wood'=>8845,'clay'=>13295,'iron'=>5980,'crop'=>1025,'time'=>224154),array('wood'=>9385,'clay'=>14110,'iron'=>6345,'crop'=>1085,'time'=>237845),array('wood'=>9920,'clay'=>14910,'iron'=>6705,'crop'=>1150,'time'=>251342),array('wood'=>10445,'clay'=>15700,'iron'=>7060,'crop'=>1210,'time'=>264660),array('wood'=>10965,'clay'=>16480,'iron'=>7410,'crop'=>1270,'time'=>277812),array('wood'=>11480,'clay'=>17250,'iron'=>7760,'crop'=>1330,'time'=>290811),array('wood'=>11985,'clay'=>18015,'iron'=>8100,'crop'=>1390,'time'=>303665),array('wood'=>12485,'clay'=>18765,'iron'=>8440,'crop'=>1445,'time'=>316385)); -$ab31=array(1=>array('wood'=>765,'clay'=>625,'iron'=>480,'crop'=>440,'time'=>3960),array('wood'=>1330,'clay'=>1090,'iron'=>835,'crop'=>765,'time'=>6895),array('wood'=>1840,'clay'=>1505,'iron'=>1155,'crop'=>1060,'time'=>9537),array('wood'=>2320,'clay'=>1895,'iron'=>1455,'crop'=>1335,'time'=>12004),array('wood'=>2770,'clay'=>2265,'iron'=>1740,'crop'=>1595,'time'=>14351),array('wood'=>3210,'clay'=>2620,'iron'=>2015,'crop'=>1845,'time'=>16604),array('wood'=>3630,'clay'=>2965,'iron'=>2275,'crop'=>2085,'time'=>18783),array('wood'=>4040,'clay'=>3300,'iron'=>2535,'crop'=>2320,'time'=>20901),array('wood'=>4435,'clay'=>3625,'iron'=>2785,'crop'=>2550,'time'=>22966),array('wood'=>4825,'clay'=>3945,'iron'=>3030,'crop'=>2775,'time'=>24986),array('wood'=>5210,'clay'=>4255,'iron'=>3270,'crop'=>2995,'time'=>26966),array('wood'=>5585,'clay'=>4565,'iron'=>3505,'crop'=>3210,'time'=>28909),array('wood'=>5955,'clay'=>4865,'iron'=>3735,'crop'=>3425,'time'=>30821),array('wood'=>6320,'clay'=>5160,'iron'=>3965,'crop'=>3635,'time'=>32704),array('wood'=>6675,'clay'=>5455,'iron'=>4190,'crop'=>3840,'time'=>34560),array('wood'=>7030,'clay'=>5745,'iron'=>4410,'crop'=>4045,'time'=>36391),array('wood'=>7380,'clay'=>6030,'iron'=>4630,'crop'=>4245,'time'=>38199),array('wood'=>7725,'clay'=>6310,'iron'=>4845,'crop'=>4445,'time'=>39986),array('wood'=>8065,'clay'=>6590,'iron'=>5060,'crop'=>4640,'time'=>41754),array('wood'=>8405,'clay'=>6865,'iron'=>5275,'crop'=>4835,'time'=>43503)); -$ab32=array(1=>array('wood'=>1115,'clay'=>590,'iron'=>795,'crop'=>440,'time'=>5160),array('wood'=>1940,'clay'=>1025,'iron'=>1385,'crop'=>765,'time'=>8984),array('wood'=>2685,'clay'=>1420,'iron'=>1915,'crop'=>1060,'time'=>12426),array('wood'=>3380,'clay'=>1790,'iron'=>2410,'crop'=>1335,'time'=>15642),array('wood'=>4040,'clay'=>2140,'iron'=>2880,'crop'=>1595,'time'=>18699),array('wood'=>4675,'clay'=>2475,'iron'=>3335,'crop'=>1845,'time'=>21636),array('wood'=>5290,'clay'=>2800,'iron'=>3770,'crop'=>2085,'time'=>24475),array('wood'=>5885,'clay'=>3115,'iron'=>4195,'crop'=>2320,'time'=>27235),array('wood'=>6465,'clay'=>3420,'iron'=>4610,'crop'=>2550,'time'=>29926),array('wood'=>7035,'clay'=>3725,'iron'=>5015,'crop'=>2775,'time'=>32557),array('wood'=>7595,'clay'=>4020,'iron'=>5415,'crop'=>2995,'time'=>35137),array('wood'=>8140,'clay'=>4305,'iron'=>5805,'crop'=>3210,'time'=>37670),array('wood'=>8680,'clay'=>4590,'iron'=>6190,'crop'=>3425,'time'=>40161),array('wood'=>9210,'clay'=>4875,'iron'=>6565,'crop'=>3635,'time'=>42614),array('wood'=>9730,'clay'=>5150,'iron'=>6940,'crop'=>3840,'time'=>45032),array('wood'=>10245,'clay'=>5420,'iron'=>7305,'crop'=>4045,'time'=>47418),array('wood'=>10755,'clay'=>5690,'iron'=>7670,'crop'=>4245,'time'=>49775),array('wood'=>11260,'clay'=>5960,'iron'=>8030,'crop'=>4445,'time'=>52104),array('wood'=>11755,'clay'=>6220,'iron'=>8380,'crop'=>4640,'time'=>54407),array('wood'=>12250,'clay'=>6480,'iron'=>8735,'crop'=>4835,'time'=>56686)); -$ab33=array(1=>array('wood'=>1010,'clay'=>940,'iron'=>1390,'crop'=>650,'time'=>5400),array('wood'=>1760,'clay'=>1635,'iron'=>2420,'crop'=>1130,'time'=>9402),array('wood'=>2430,'clay'=>2265,'iron'=>3345,'crop'=>1565,'time'=>13004),array('wood'=>3060,'clay'=>2850,'iron'=>4215,'crop'=>1970,'time'=>16370),array('wood'=>3660,'clay'=>3405,'iron'=>5035,'crop'=>2355,'time'=>19569),array('wood'=>4235,'clay'=>3940,'iron'=>5830,'crop'=>2725,'time'=>22642),array('wood'=>4790,'clay'=>4460,'iron'=>6595,'crop'=>3085,'time'=>25614),array('wood'=>5330,'clay'=>4960,'iron'=>7335,'crop'=>3430,'time'=>28501),array('wood'=>5860,'clay'=>5450,'iron'=>8060,'crop'=>3770,'time'=>31318),array('wood'=>6375,'clay'=>5930,'iron'=>8770,'crop'=>4100,'time'=>34072),array('wood'=>6880,'clay'=>6400,'iron'=>9465,'crop'=>4425,'time'=>36771),array('wood'=>7375,'clay'=>6860,'iron'=>10150,'crop'=>4745,'time'=>39422),array('wood'=>7860,'clay'=>7315,'iron'=>10820,'crop'=>5060,'time'=>42029),array('wood'=>8340,'clay'=>7765,'iron'=>11480,'crop'=>5370,'time'=>44596),array('wood'=>8815,'clay'=>8205,'iron'=>12130,'crop'=>5675,'time'=>47127),array('wood'=>9280,'clay'=>8640,'iron'=>12775,'crop'=>5975,'time'=>49624),array('wood'=>9745,'clay'=>9065,'iron'=>13410,'crop'=>6270,'time'=>52090),array('wood'=>10200,'clay'=>9490,'iron'=>14035,'crop'=>6565,'time'=>54527),array('wood'=>10650,'clay'=>9910,'iron'=>14655,'crop'=>6855,'time'=>56937),array('wood'=>11095,'clay'=>10325,'iron'=>15270,'crop'=>7140,'time'=>59322)); -$ab34=array(1=>array('wood'=>1220,'clay'=>800,'iron'=>550,'crop'=>510,'time'=>5160),array('wood'=>2125,'clay'=>1395,'iron'=>960,'crop'=>890,'time'=>8984),array('wood'=>2940,'clay'=>1925,'iron'=>1325,'crop'=>1230,'time'=>12426),array('wood'=>3700,'clay'=>2425,'iron'=>1665,'crop'=>1545,'time'=>15642),array('wood'=>4420,'clay'=>2900,'iron'=>1995,'crop'=>1850,'time'=>18699),array('wood'=>5115,'clay'=>3355,'iron'=>2305,'crop'=>2140,'time'=>21636),array('wood'=>5785,'clay'=>3795,'iron'=>2610,'crop'=>2420,'time'=>24475),array('wood'=>6440,'clay'=>4220,'iron'=>2905,'crop'=>2690,'time'=>27235),array('wood'=>7075,'clay'=>4640,'iron'=>3190,'crop'=>2960,'time'=>29926),array('wood'=>7700,'clay'=>5050,'iron'=>3470,'crop'=>3220,'time'=>32557),array('wood'=>8310,'clay'=>5450,'iron'=>3745,'crop'=>3475,'time'=>35137),array('wood'=>8905,'clay'=>5840,'iron'=>4015,'crop'=>3725,'time'=>37670),array('wood'=>9495,'clay'=>6225,'iron'=>4280,'crop'=>3970,'time'=>40161),array('wood'=>10075,'clay'=>6605,'iron'=>4540,'crop'=>4210,'time'=>42614),array('wood'=>10645,'clay'=>6980,'iron'=>4800,'crop'=>4450,'time'=>45032),array('wood'=>11210,'clay'=>7350,'iron'=>5055,'crop'=>4685,'time'=>47418),array('wood'=>11770,'clay'=>7715,'iron'=>5305,'crop'=>4920,'time'=>49775),array('wood'=>12320,'clay'=>8080,'iron'=>5555,'crop'=>5150,'time'=>52104),array('wood'=>12865,'clay'=>8435,'iron'=>5800,'crop'=>5375,'time'=>54407),array('wood'=>13400,'clay'=>8790,'iron'=>6040,'crop'=>5605,'time'=>56686)); -$ab35=array(1=>array('wood'=>1345,'clay'=>995,'iron'=>1115,'crop'=>345,'time'=>9000),array('wood'=>2340,'clay'=>1730,'iron'=>1940,'crop'=>595,'time'=>15670),array('wood'=>3240,'clay'=>2395,'iron'=>2685,'crop'=>825,'time'=>21674),array('wood'=>4075,'clay'=>3015,'iron'=>3380,'crop'=>1040,'time'=>27283),array('wood'=>4875,'clay'=>3605,'iron'=>4040,'crop'=>1240,'time'=>32615),array('wood'=>5640,'clay'=>4170,'iron'=>4675,'crop'=>1435,'time'=>37737),array('wood'=>6380,'clay'=>4720,'iron'=>5290,'crop'=>1625,'time'=>42689),array('wood'=>7100,'clay'=>5250,'iron'=>5885,'crop'=>1810,'time'=>47502),array('wood'=>7800,'clay'=>5770,'iron'=>6465,'crop'=>1985,'time'=>52196),array('wood'=>8485,'clay'=>6280,'iron'=>7035,'crop'=>2160,'time'=>56786),array('wood'=>9160,'clay'=>6775,'iron'=>7595,'crop'=>2330,'time'=>61285),array('wood'=>9820,'clay'=>7265,'iron'=>8140,'crop'=>2500,'time'=>65703),array('wood'=>10470,'clay'=>7745,'iron'=>8680,'crop'=>2665,'time'=>70048),array('wood'=>11110,'clay'=>8215,'iron'=>9210,'crop'=>2830,'time'=>74327),array('wood'=>11740,'clay'=>8685,'iron'=>9730,'crop'=>2990,'time'=>78544),array('wood'=>12360,'clay'=>9145,'iron'=>10245,'crop'=>3145,'time'=>82706),array('wood'=>12975,'clay'=>9600,'iron'=>10755,'crop'=>3305,'time'=>86816),array('wood'=>13580,'clay'=>10045,'iron'=>11260,'crop'=>3460,'time'=>90878),array('wood'=>14180,'clay'=>10490,'iron'=>11755,'crop'=>3610,'time'=>94895),array('wood'=>14775,'clay'=>10930,'iron'=>12250,'crop'=>3765,'time'=>98870)); -$ab36=array(1=>array('wood'=>1085,'clay'=>1235,'iron'=>1185,'crop'=>240,'time'=>10680),array('wood'=>1885,'clay'=>2150,'iron'=>2065,'crop'=>420,'time'=>18595),array('wood'=>2610,'clay'=>2975,'iron'=>2860,'crop'=>580,'time'=>25720),array('wood'=>3285,'clay'=>3745,'iron'=>3595,'crop'=>730,'time'=>32376),array('wood'=>3925,'clay'=>4475,'iron'=>4300,'crop'=>870,'time'=>38703),array('wood'=>4540,'clay'=>5180,'iron'=>4975,'crop'=>1005,'time'=>44781),array('wood'=>5140,'clay'=>5860,'iron'=>5630,'crop'=>1140,'time'=>50658),array('wood'=>5720,'clay'=>6520,'iron'=>6265,'crop'=>1265,'time'=>56369),array('wood'=>6285,'clay'=>7160,'iron'=>6880,'crop'=>1390,'time'=>61939),array('wood'=>6835,'clay'=>7790,'iron'=>7485,'crop'=>1515,'time'=>67386),array('wood'=>7375,'clay'=>8410,'iron'=>8080,'crop'=>1635,'time'=>72725),array('wood'=>7910,'clay'=>9015,'iron'=>8665,'crop'=>1750,'time'=>77968),array('wood'=>8430,'clay'=>9610,'iron'=>9235,'crop'=>1870,'time'=>83124),array('wood'=>8945,'clay'=>10200,'iron'=>9800,'crop'=>1980,'time'=>88201),array('wood'=>9455,'clay'=>10780,'iron'=>10355,'crop'=>2095,'time'=>93206),array('wood'=>9955,'clay'=>11350,'iron'=>10905,'crop'=>2205,'time'=>98145),array('wood'=>10450,'clay'=>11915,'iron'=>11445,'crop'=>2315,'time'=>103022),array('wood'=>10940,'clay'=>12470,'iron'=>11980,'crop'=>2425,'time'=>107842),array('wood'=>11425,'clay'=>13020,'iron'=>12510,'crop'=>2530,'time'=>112609),array('wood'=>11900,'clay'=>13565,'iron'=>13035,'crop'=>2635,'time'=>117326)); -$ab37=array(1=>array('wood'=>2365,'clay'=>735,'iron'=>885,'crop'=>215,'time'=>14400),array('wood'=>4120,'clay'=>1275,'iron'=>1540,'crop'=>375,'time'=>25072),array('wood'=>5700,'clay'=>1765,'iron'=>2125,'crop'=>520,'time'=>34678),array('wood'=>7175,'clay'=>2225,'iron'=>2680,'crop'=>655,'time'=>43653),array('wood'=>8575,'clay'=>2660,'iron'=>3200,'crop'=>785,'time'=>52184),array('wood'=>9925,'clay'=>3075,'iron'=>3705,'crop'=>910,'time'=>60379),array('wood'=>11225,'clay'=>3480,'iron'=>4190,'crop'=>1030,'time'=>68303),array('wood'=>12490,'clay'=>3870,'iron'=>4660,'crop'=>1145,'time'=>76004),array('wood'=>13725,'clay'=>4255,'iron'=>5125,'crop'=>1255,'time'=>83513),array('wood'=>14935,'clay'=>4625,'iron'=>5575,'crop'=>1365,'time'=>90858),array('wood'=>16115,'clay'=>4995,'iron'=>6015,'crop'=>1475,'time'=>98057),array('wood'=>17280,'clay'=>5355,'iron'=>6450,'crop'=>1580,'time'=>105125),array('wood'=>18420,'clay'=>5710,'iron'=>6875,'crop'=>1685,'time'=>112077),array('wood'=>19545,'clay'=>6055,'iron'=>7295,'crop'=>1790,'time'=>118923),array('wood'=>20655,'clay'=>6400,'iron'=>7710,'crop'=>1890,'time'=>125671),array('wood'=>21750,'clay'=>6740,'iron'=>8115,'crop'=>1990,'time'=>132330),array('wood'=>22830,'clay'=>7075,'iron'=>8520,'crop'=>2090,'time'=>138906),array('wood'=>23900,'clay'=>7405,'iron'=>8920,'crop'=>2190,'time'=>145405),array('wood'=>24955,'clay'=>7730,'iron'=>9315,'crop'=>2285,'time'=>151833),array('wood'=>26000,'clay'=>8055,'iron'=>9705,'crop'=>2380,'time'=>158193)); -$ab38=array(1=>array('wood'=>1065,'clay'=>1415,'iron'=>735,'crop'=>95,'time'=>28800),array('wood'=>1855,'clay'=>2465,'iron'=>1275,'crop'=>170,'time'=>50144),array('wood'=>2570,'clay'=>3410,'iron'=>1765,'crop'=>235,'time'=>69357),array('wood'=>3235,'clay'=>4295,'iron'=>2225,'crop'=>295,'time'=>87305),array('wood'=>3865,'clay'=>5135,'iron'=>2660,'crop'=>350,'time'=>104368),array('wood'=>4470,'clay'=>5940,'iron'=>3075,'crop'=>405,'time'=>120757),array('wood'=>5060,'clay'=>6720,'iron'=>3480,'crop'=>460,'time'=>136606),array('wood'=>5630,'clay'=>7475,'iron'=>3870,'crop'=>510,'time'=>152007),array('wood'=>6185,'clay'=>8215,'iron'=>4255,'crop'=>560,'time'=>167027),array('wood'=>6730,'clay'=>8940,'iron'=>4625,'crop'=>610,'time'=>181716),array('wood'=>7265,'clay'=>9645,'iron'=>4995,'crop'=>660,'time'=>196113),array('wood'=>7785,'clay'=>10340,'iron'=>5355,'crop'=>705,'time'=>210251),array('wood'=>8300,'clay'=>11025,'iron'=>5710,'crop'=>750,'time'=>224154),array('wood'=>8810,'clay'=>11700,'iron'=>6055,'crop'=>800,'time'=>237845),array('wood'=>9310,'clay'=>12365,'iron'=>6400,'crop'=>845,'time'=>251342),array('wood'=>9800,'clay'=>13020,'iron'=>6740,'crop'=>890,'time'=>264660),array('wood'=>10290,'clay'=>13665,'iron'=>7075,'crop'=>930,'time'=>277812),array('wood'=>10770,'clay'=>14305,'iron'=>7405,'crop'=>975,'time'=>290811),array('wood'=>11245,'clay'=>14935,'iron'=>7730,'crop'=>1020,'time'=>303665),array('wood'=>11720,'clay'=>15565,'iron'=>8055,'crop'=>1060,'time'=>316385)); -$ab41=array(1=>array('wood'=>765,'clay'=>625,'iron'=>480,'crop'=>440,'time'=>3960),array('wood'=>1330,'clay'=>1090,'iron'=>835,'crop'=>765,'time'=>6895),array('wood'=>1840,'clay'=>1505,'iron'=>1155,'crop'=>1060,'time'=>9537),array('wood'=>2320,'clay'=>1895,'iron'=>1455,'crop'=>1335,'time'=>12004),array('wood'=>2770,'clay'=>2265,'iron'=>1740,'crop'=>1595,'time'=>14351),array('wood'=>3210,'clay'=>2620,'iron'=>2015,'crop'=>1845,'time'=>16604),array('wood'=>3630,'clay'=>2965,'iron'=>2275,'crop'=>2085,'time'=>18783),array('wood'=>4040,'clay'=>3300,'iron'=>2535,'crop'=>2320,'time'=>20901),array('wood'=>4435,'clay'=>3625,'iron'=>2785,'crop'=>2550,'time'=>22966),array('wood'=>4825,'clay'=>3945,'iron'=>3030,'crop'=>2775,'time'=>24986),array('wood'=>5210,'clay'=>4255,'iron'=>3270,'crop'=>2995,'time'=>26966),array('wood'=>5585,'clay'=>4565,'iron'=>3505,'crop'=>3210,'time'=>28909),array('wood'=>5955,'clay'=>4865,'iron'=>3735,'crop'=>3425,'time'=>30821),array('wood'=>6320,'clay'=>5160,'iron'=>3965,'crop'=>3635,'time'=>32704),array('wood'=>6675,'clay'=>5455,'iron'=>4190,'crop'=>3840,'time'=>34560),array('wood'=>7030,'clay'=>5745,'iron'=>4410,'crop'=>4045,'time'=>36391),array('wood'=>7380,'clay'=>6030,'iron'=>4630,'crop'=>4245,'time'=>38199),array('wood'=>7725,'clay'=>6310,'iron'=>4845,'crop'=>4445,'time'=>39986),array('wood'=>8065,'clay'=>6590,'iron'=>5060,'crop'=>4640,'time'=>41754),array('wood'=>8405,'clay'=>6865,'iron'=>5275,'crop'=>4835,'time'=>43503)); -$ab42=array(1=>array('wood'=>1115,'clay'=>590,'iron'=>795,'crop'=>440,'time'=>5160),array('wood'=>1940,'clay'=>1025,'iron'=>1385,'crop'=>765,'time'=>8984),array('wood'=>2685,'clay'=>1420,'iron'=>1915,'crop'=>1060,'time'=>12426),array('wood'=>3380,'clay'=>1790,'iron'=>2410,'crop'=>1335,'time'=>15642),array('wood'=>4040,'clay'=>2140,'iron'=>2880,'crop'=>1595,'time'=>18699),array('wood'=>4675,'clay'=>2475,'iron'=>3335,'crop'=>1845,'time'=>21636),array('wood'=>5290,'clay'=>2800,'iron'=>3770,'crop'=>2085,'time'=>24475),array('wood'=>5885,'clay'=>3115,'iron'=>4195,'crop'=>2320,'time'=>27235),array('wood'=>6465,'clay'=>3420,'iron'=>4610,'crop'=>2550,'time'=>29926),array('wood'=>7035,'clay'=>3725,'iron'=>5015,'crop'=>2775,'time'=>32557),array('wood'=>7595,'clay'=>4020,'iron'=>5415,'crop'=>2995,'time'=>35137),array('wood'=>8140,'clay'=>4305,'iron'=>5805,'crop'=>3210,'time'=>37670),array('wood'=>8680,'clay'=>4590,'iron'=>6190,'crop'=>3425,'time'=>40161),array('wood'=>9210,'clay'=>4875,'iron'=>6565,'crop'=>3635,'time'=>42614),array('wood'=>9730,'clay'=>5150,'iron'=>6940,'crop'=>3840,'time'=>45032),array('wood'=>10245,'clay'=>5420,'iron'=>7305,'crop'=>4045,'time'=>47418),array('wood'=>10755,'clay'=>5690,'iron'=>7670,'crop'=>4245,'time'=>49775),array('wood'=>11260,'clay'=>5960,'iron'=>8030,'crop'=>4445,'time'=>52104),array('wood'=>11755,'clay'=>6220,'iron'=>8380,'crop'=>4640,'time'=>54407),array('wood'=>12250,'clay'=>6480,'iron'=>8735,'crop'=>4835,'time'=>56686)); -$ab43=array(1=>array('wood'=>1010,'clay'=>940,'iron'=>1390,'crop'=>650,'time'=>5400),array('wood'=>1760,'clay'=>1635,'iron'=>2420,'crop'=>1130,'time'=>9402),array('wood'=>2430,'clay'=>2265,'iron'=>3345,'crop'=>1565,'time'=>13004),array('wood'=>3060,'clay'=>2850,'iron'=>4215,'crop'=>1970,'time'=>16370),array('wood'=>3660,'clay'=>3405,'iron'=>5035,'crop'=>2355,'time'=>19569),array('wood'=>4235,'clay'=>3940,'iron'=>5830,'crop'=>2725,'time'=>22642),array('wood'=>4790,'clay'=>4460,'iron'=>6595,'crop'=>3085,'time'=>25614),array('wood'=>5330,'clay'=>4960,'iron'=>7335,'crop'=>3430,'time'=>28501),array('wood'=>5860,'clay'=>5450,'iron'=>8060,'crop'=>3770,'time'=>31318),array('wood'=>6375,'clay'=>5930,'iron'=>8770,'crop'=>4100,'time'=>34072),array('wood'=>6880,'clay'=>6400,'iron'=>9465,'crop'=>4425,'time'=>36771),array('wood'=>7375,'clay'=>6860,'iron'=>10150,'crop'=>4745,'time'=>39422),array('wood'=>7860,'clay'=>7315,'iron'=>10820,'crop'=>5060,'time'=>42029),array('wood'=>8340,'clay'=>7765,'iron'=>11480,'crop'=>5370,'time'=>44596),array('wood'=>8815,'clay'=>8205,'iron'=>12130,'crop'=>5675,'time'=>47127),array('wood'=>9280,'clay'=>8640,'iron'=>12775,'crop'=>5975,'time'=>49624),array('wood'=>9745,'clay'=>9065,'iron'=>13410,'crop'=>6270,'time'=>52090),array('wood'=>10200,'clay'=>9490,'iron'=>14035,'crop'=>6565,'time'=>54527),array('wood'=>10650,'clay'=>9910,'iron'=>14655,'crop'=>6855,'time'=>56937),array('wood'=>11095,'clay'=>10325,'iron'=>15270,'crop'=>7140,'time'=>59322)); -$ab44=array(1=>array('wood'=>1220,'clay'=>800,'iron'=>550,'crop'=>510,'time'=>5160),array('wood'=>2125,'clay'=>1395,'iron'=>960,'crop'=>890,'time'=>8984),array('wood'=>2940,'clay'=>1925,'iron'=>1325,'crop'=>1230,'time'=>12426),array('wood'=>3700,'clay'=>2425,'iron'=>1665,'crop'=>1545,'time'=>15642),array('wood'=>4420,'clay'=>2900,'iron'=>1995,'crop'=>1850,'time'=>18699),array('wood'=>5115,'clay'=>3355,'iron'=>2305,'crop'=>2140,'time'=>21636),array('wood'=>5785,'clay'=>3795,'iron'=>2610,'crop'=>2420,'time'=>24475),array('wood'=>6440,'clay'=>4220,'iron'=>2905,'crop'=>2690,'time'=>27235),array('wood'=>7075,'clay'=>4640,'iron'=>3190,'crop'=>2960,'time'=>29926),array('wood'=>7700,'clay'=>5050,'iron'=>3470,'crop'=>3220,'time'=>32557),array('wood'=>8310,'clay'=>5450,'iron'=>3745,'crop'=>3475,'time'=>35137),array('wood'=>8905,'clay'=>5840,'iron'=>4015,'crop'=>3725,'time'=>37670),array('wood'=>9495,'clay'=>6225,'iron'=>4280,'crop'=>3970,'time'=>40161),array('wood'=>10075,'clay'=>6605,'iron'=>4540,'crop'=>4210,'time'=>42614),array('wood'=>10645,'clay'=>6980,'iron'=>4800,'crop'=>4450,'time'=>45032),array('wood'=>11210,'clay'=>7350,'iron'=>5055,'crop'=>4685,'time'=>47418),array('wood'=>11770,'clay'=>7715,'iron'=>5305,'crop'=>4920,'time'=>49775),array('wood'=>12320,'clay'=>8080,'iron'=>5555,'crop'=>5150,'time'=>52104),array('wood'=>12865,'clay'=>8435,'iron'=>5800,'crop'=>5375,'time'=>54407),array('wood'=>13400,'clay'=>8790,'iron'=>6040,'crop'=>5605,'time'=>56686)); -$ab45=array(1=>array('wood'=>1345,'clay'=>995,'iron'=>1115,'crop'=>345,'time'=>9000),array('wood'=>2340,'clay'=>1730,'iron'=>1940,'crop'=>595,'time'=>15670),array('wood'=>3240,'clay'=>2395,'iron'=>2685,'crop'=>825,'time'=>21674),array('wood'=>4075,'clay'=>3015,'iron'=>3380,'crop'=>1040,'time'=>27283),array('wood'=>4875,'clay'=>3605,'iron'=>4040,'crop'=>1240,'time'=>32615),array('wood'=>5640,'clay'=>4170,'iron'=>4675,'crop'=>1435,'time'=>37737),array('wood'=>6380,'clay'=>4720,'iron'=>5290,'crop'=>1625,'time'=>42689),array('wood'=>7100,'clay'=>5250,'iron'=>5885,'crop'=>1810,'time'=>47502),array('wood'=>7800,'clay'=>5770,'iron'=>6465,'crop'=>1985,'time'=>52196),array('wood'=>8485,'clay'=>6280,'iron'=>7035,'crop'=>2160,'time'=>56786),array('wood'=>9160,'clay'=>6775,'iron'=>7595,'crop'=>2330,'time'=>61285),array('wood'=>9820,'clay'=>7265,'iron'=>8140,'crop'=>2500,'time'=>65703),array('wood'=>10470,'clay'=>7745,'iron'=>8680,'crop'=>2665,'time'=>70048),array('wood'=>11110,'clay'=>8215,'iron'=>9210,'crop'=>2830,'time'=>74327),array('wood'=>11740,'clay'=>8685,'iron'=>9730,'crop'=>2990,'time'=>78544),array('wood'=>12360,'clay'=>9145,'iron'=>10245,'crop'=>3145,'time'=>82706),array('wood'=>12975,'clay'=>9600,'iron'=>10755,'crop'=>3305,'time'=>86816),array('wood'=>13580,'clay'=>10045,'iron'=>11260,'crop'=>3460,'time'=>90878),array('wood'=>14180,'clay'=>10490,'iron'=>11755,'crop'=>3610,'time'=>94895),array('wood'=>14775,'clay'=>10930,'iron'=>12250,'crop'=>3765,'time'=>98870)); -$ab46=array(1=>array('wood'=>1085,'clay'=>1235,'iron'=>1185,'crop'=>240,'time'=>10680),array('wood'=>1885,'clay'=>2150,'iron'=>2065,'crop'=>420,'time'=>18595),array('wood'=>2610,'clay'=>2975,'iron'=>2860,'crop'=>580,'time'=>25720),array('wood'=>3285,'clay'=>3745,'iron'=>3595,'crop'=>730,'time'=>32376),array('wood'=>3925,'clay'=>4475,'iron'=>4300,'crop'=>870,'time'=>38703),array('wood'=>4540,'clay'=>5180,'iron'=>4975,'crop'=>1005,'time'=>44781),array('wood'=>5140,'clay'=>5860,'iron'=>5630,'crop'=>1140,'time'=>50658),array('wood'=>5720,'clay'=>6520,'iron'=>6265,'crop'=>1265,'time'=>56369),array('wood'=>6285,'clay'=>7160,'iron'=>6880,'crop'=>1390,'time'=>61939),array('wood'=>6835,'clay'=>7790,'iron'=>7485,'crop'=>1515,'time'=>67386),array('wood'=>7375,'clay'=>8410,'iron'=>8080,'crop'=>1635,'time'=>72725),array('wood'=>7910,'clay'=>9015,'iron'=>8665,'crop'=>1750,'time'=>77968),array('wood'=>8430,'clay'=>9610,'iron'=>9235,'crop'=>1870,'time'=>83124),array('wood'=>8945,'clay'=>10200,'iron'=>9800,'crop'=>1980,'time'=>88201),array('wood'=>9455,'clay'=>10780,'iron'=>10355,'crop'=>2095,'time'=>93206),array('wood'=>9955,'clay'=>11350,'iron'=>10905,'crop'=>2205,'time'=>98145),array('wood'=>10450,'clay'=>11915,'iron'=>11445,'crop'=>2315,'time'=>103022),array('wood'=>10940,'clay'=>12470,'iron'=>11980,'crop'=>2425,'time'=>107842),array('wood'=>11425,'clay'=>13020,'iron'=>12510,'crop'=>2530,'time'=>112609),array('wood'=>11900,'clay'=>13565,'iron'=>13035,'crop'=>2635,'time'=>117326)); -$ab47=array(1=>array('wood'=>2365,'clay'=>735,'iron'=>885,'crop'=>215,'time'=>14400),array('wood'=>4120,'clay'=>1275,'iron'=>1540,'crop'=>375,'time'=>25072),array('wood'=>5700,'clay'=>1765,'iron'=>2125,'crop'=>520,'time'=>34678),array('wood'=>7175,'clay'=>2225,'iron'=>2680,'crop'=>655,'time'=>43653),array('wood'=>8575,'clay'=>2660,'iron'=>3200,'crop'=>785,'time'=>52184),array('wood'=>9925,'clay'=>3075,'iron'=>3705,'crop'=>910,'time'=>60379),array('wood'=>11225,'clay'=>3480,'iron'=>4190,'crop'=>1030,'time'=>68303),array('wood'=>12490,'clay'=>3870,'iron'=>4660,'crop'=>1145,'time'=>76004),array('wood'=>13725,'clay'=>4255,'iron'=>5125,'crop'=>1255,'time'=>83513),array('wood'=>14935,'clay'=>4625,'iron'=>5575,'crop'=>1365,'time'=>90858),array('wood'=>16115,'clay'=>4995,'iron'=>6015,'crop'=>1475,'time'=>98057),array('wood'=>17280,'clay'=>5355,'iron'=>6450,'crop'=>1580,'time'=>105125),array('wood'=>18420,'clay'=>5710,'iron'=>6875,'crop'=>1685,'time'=>112077),array('wood'=>19545,'clay'=>6055,'iron'=>7295,'crop'=>1790,'time'=>118923),array('wood'=>20655,'clay'=>6400,'iron'=>7710,'crop'=>1890,'time'=>125671),array('wood'=>21750,'clay'=>6740,'iron'=>8115,'crop'=>1990,'time'=>132330),array('wood'=>22830,'clay'=>7075,'iron'=>8520,'crop'=>2090,'time'=>138906),array('wood'=>23900,'clay'=>7405,'iron'=>8920,'crop'=>2190,'time'=>145405),array('wood'=>24955,'clay'=>7730,'iron'=>9315,'crop'=>2285,'time'=>151833),array('wood'=>26000,'clay'=>8055,'iron'=>9705,'crop'=>2380,'time'=>158193)); -$ab48=array(1=>array('wood'=>1065,'clay'=>1415,'iron'=>735,'crop'=>95,'time'=>28800),array('wood'=>1855,'clay'=>2465,'iron'=>1275,'crop'=>170,'time'=>50144),array('wood'=>2570,'clay'=>3410,'iron'=>1765,'crop'=>235,'time'=>69357),array('wood'=>3235,'clay'=>4295,'iron'=>2225,'crop'=>295,'time'=>87305),array('wood'=>3865,'clay'=>5135,'iron'=>2660,'crop'=>350,'time'=>104368),array('wood'=>4470,'clay'=>5940,'iron'=>3075,'crop'=>405,'time'=>120757),array('wood'=>5060,'clay'=>6720,'iron'=>3480,'crop'=>460,'time'=>136606),array('wood'=>5630,'clay'=>7475,'iron'=>3870,'crop'=>510,'time'=>152007),array('wood'=>6185,'clay'=>8215,'iron'=>4255,'crop'=>560,'time'=>167027),array('wood'=>6730,'clay'=>8940,'iron'=>4625,'crop'=>610,'time'=>181716),array('wood'=>7265,'clay'=>9645,'iron'=>4995,'crop'=>660,'time'=>196113),array('wood'=>7785,'clay'=>10340,'iron'=>5355,'crop'=>705,'time'=>210251),array('wood'=>8300,'clay'=>11025,'iron'=>5710,'crop'=>750,'time'=>224154),array('wood'=>8810,'clay'=>11700,'iron'=>6055,'crop'=>800,'time'=>237845),array('wood'=>9310,'clay'=>12365,'iron'=>6400,'crop'=>845,'time'=>251342),array('wood'=>9800,'clay'=>13020,'iron'=>6740,'crop'=>890,'time'=>264660),array('wood'=>10290,'clay'=>13665,'iron'=>7075,'crop'=>930,'time'=>277812),array('wood'=>10770,'clay'=>14305,'iron'=>7405,'crop'=>975,'time'=>290811),array('wood'=>11245,'clay'=>14935,'iron'=>7730,'crop'=>1020,'time'=>303665),array('wood'=>11720,'clay'=>15565,'iron'=>8055,'crop'=>1060,'time'=>316385)); - -?> \ No newline at end of file diff --git a/GameEngine/Data/unitdata.php b/GameEngine/Data/unitdata.php deleted file mode 100755 index f61ad18a..00000000 --- a/GameEngine/Data/unitdata.php +++ /dev/null @@ -1,91 +0,0 @@ -array(1,2,3,11,12,13,14,21,22,31,32,33,34,41,42,43,44),'cavalry'=>array(4,5,6,15,16,23,24,25,26,35,36,45,46),'siege'=>array(7,8,17,18,27,28,37,38,47,48),'ram'=>array(7,17,27,47),'catapult'=>array(8,18,28,48),'expansion'=>array(9,10,19,20,29,30,39,40,49,50),'scout'=>array(4,14,23,44),'chief'=>array(9,19,29,49)); - -$u1=array('atk'=>40,'di'=>35,'dc'=>50,'wood'=>120,'clay'=>100,'iron'=>150,'crop'=>30,'pop'=>1,'speed'=>6,'time'=>1600,'cap'=>50); -$u2=array('atk'=>30,'di'=>65,'dc'=>35,'wood'=>100,'clay'=>130,'iron'=>160,'crop'=>70,'pop'=>1,'speed'=>5,'time'=>1760,'cap'=>20); -$u3=array('atk'=>70,'di'=>40,'dc'=>25,'wood'=>150,'clay'=>160,'iron'=>210,'crop'=>80,'pop'=>1,'speed'=>7,'time'=>1920,'cap'=>50); -$u4=array('atk'=>0,'di'=>20,'dc'=>10,'wood'=>140,'clay'=>160,'iron'=>20,'crop'=>40,'pop'=>2,'speed'=>16,'time'=>1360,'cap'=>0,'drinking'=>10); -$u5=array('atk'=>120,'di'=>65,'dc'=>50,'wood'=>550,'clay'=>440,'iron'=>320,'crop'=>100,'pop'=>3,'speed'=>14,'time'=>2640,'cap'=>100,'drinking'=>15); -$u6=array('atk'=>180,'di'=>80,'dc'=>105,'wood'=>550,'clay'=>640,'iron'=>800,'crop'=>180,'pop'=>4,'speed'=>10,'time'=>3520,'cap'=>70,'drinking'=>20); -$u7=array('atk'=>60,'di'=>30,'dc'=>75,'wood'=>900,'clay'=>360,'iron'=>500,'crop'=>70,'pop'=>3,'speed'=>4,'time'=>4600,'cap'=>0); -$u8=array('atk'=>75,'di'=>60,'dc'=>10,'wood'=>950,'clay'=>1350,'iron'=>600,'crop'=>90,'pop'=>6,'speed'=>3,'time'=>9000,'cap'=>0); -$u9=array('atk'=>50,'di'=>40,'dc'=>30,'wood'=>30750,'clay'=>27200,'iron'=>45000,'crop'=>37500,'pop'=>5,'speed'=>5,'time'=>90700,'cap'=>0); -$u10=array('atk'=>0,'di'=>80,'dc'=>80,'wood'=>5800,'clay'=>5300,'iron'=>7200,'crop'=>5500,'pop'=>1,'speed'=>5,'time'=>26900,'cap'=>3000); -$u11=array('atk'=>40,'di'=>20,'dc'=>5,'wood'=>95,'clay'=>75,'iron'=>40,'crop'=>40,'pop'=>1,'speed'=>7,'time'=>720,'cap'=>60); -$u12=array('atk'=>10,'di'=>35,'dc'=>60,'wood'=>145,'clay'=>70,'iron'=>85,'crop'=>40,'pop'=>1,'speed'=>7,'time'=>1120,'cap'=>40); -$u13=array('atk'=>60,'di'=>30,'dc'=>30,'wood'=>130,'clay'=>120,'iron'=>170,'crop'=>70,'pop'=>1,'speed'=>6,'time'=>1200,'cap'=>50); -$u14=array('atk'=>0,'di'=>10,'dc'=>5,'wood'=>160,'clay'=>100,'iron'=>50,'crop'=>50,'pop'=>1,'speed'=>9,'time'=>1120,'cap'=>0); -$u15=array('atk'=>55,'di'=>100,'dc'=>40,'wood'=>370,'clay'=>270,'iron'=>290,'crop'=>75,'pop'=>2,'speed'=>10,'time'=>2400,'cap'=>110); -$u16=array('atk'=>150,'di'=>50,'dc'=>75,'wood'=>450,'clay'=>515,'iron'=>480,'crop'=>80,'pop'=>3,'speed'=>9,'time'=>2960,'cap'=>80); -$u17=array('atk'=>65,'di'=>30,'dc'=>80,'wood'=>1000,'clay'=>300,'iron'=>350,'crop'=>70,'pop'=>3,'speed'=>4,'time'=>4200,'cap'=>0); -$u18=array('atk'=>50,'di'=>60,'dc'=>10,'wood'=>900,'clay'=>1200,'iron'=>600,'crop'=>60,'pop'=>6,'speed'=>3,'time'=>9000,'cap'=>0); -$u19=array('atk'=>40,'di'=>60,'dc'=>40,'wood'=>35500,'clay'=>26600,'iron'=>25000,'crop'=>27200,'pop'=>4,'speed'=>5,'time'=>70500,'cap'=>0); -$u20=array('atk'=>10,'di'=>80,'dc'=>80,'wood'=>7200,'clay'=>5500,'iron'=>5800,'crop'=>6500,'pop'=>1,'speed'=>5,'time'=>31000,'cap'=>3000); -$u21=array('atk'=>15,'di'=>40,'dc'=>50,'wood'=>100,'clay'=>130,'iron'=>55,'crop'=>30,'pop'=>1,'speed'=>7,'time'=>1040,'cap'=>35); -$u22=array('atk'=>65,'di'=>35,'dc'=>20,'wood'=>140,'clay'=>150,'iron'=>185,'crop'=>60,'pop'=>1,'speed'=>6,'time'=>1440,'cap'=>45); -$u23=array('atk'=>0,'di'=>20,'dc'=>10,'wood'=>170,'clay'=>150,'iron'=>20,'crop'=>40,'pop'=>2,'speed'=>17,'time'=>1360,'cap'=>0); -$u24=array('atk'=>90,'di'=>25,'dc'=>40,'wood'=>350,'clay'=>450,'iron'=>230,'crop'=>60,'pop'=>2,'speed'=>19,'time'=>2480,'cap'=>75); -$u25=array('atk'=>45,'di'=>115,'dc'=>55,'wood'=>360,'clay'=>330,'iron'=>280,'crop'=>120,'pop'=>2,'speed'=>16,'time'=>2560,'cap'=>35); -$u26=array('atk'=>140,'di'=>50,'dc'=>165,'wood'=>500,'clay'=>620,'iron'=>675,'crop'=>170,'pop'=>3,'speed'=>13,'time'=>3120,'cap'=>65); -$u27=array('atk'=>50,'di'=>30,'dc'=>105,'wood'=>950,'clay'=>555,'iron'=>330,'crop'=>75,'pop'=>3,'speed'=>4,'time'=>5000,'cap'=>0); -$u28=array('atk'=>70,'di'=>45,'dc'=>10,'wood'=>960,'clay'=>1450,'iron'=>630,'crop'=>90,'pop'=>6,'speed'=>3,'time'=>9000,'cap'=>0); -$u29=array('atk'=>40,'di'=>50,'dc'=>50,'wood'=>30750,'clay'=>45400,'iron'=>31000,'crop'=>37500,'pop'=>4,'speed'=>4,'time'=>90700,'cap'=>0); -$u30=array('atk'=>0,'di'=>80,'dc'=>80,'wood'=>5500,'clay'=>7000,'iron'=>5300,'crop'=>4900,'pop'=>1,'speed'=>5,'time'=>22700,'cap'=>3000); -$u31=array('atk'=>10,'di'=>25,'dc'=>20,'wood'=>85,'clay'=>75,'iron'=>120,'crop'=>25,'speed'=>7,'pop'=>1,'time'=>1600,'cap'=>45); -$u32=array('atk'=>20,'di'=>35,'dc'=>40,'wood'=>125,'clay'=>130,'iron'=>60,'crop'=>40,'speed'=>7,'pop'=>1,'time'=>1800,'cap'=>65); -$u33=array('atk'=>60,'di'=>40,'dc'=>60,'wood'=>140,'clay'=>150,'iron'=>40,'crop'=>60,'speed'=>6,'pop'=>1,'time'=>1900,'cap'=>80); -$u34=array('atk'=>10,'di'=>66,'dc'=>50,'wood'=>95,'clay'=>120,'iron'=>65,'crop'=>25,'speed'=>9,'pop'=>1,'time'=>2000,'cap'=>0); -$u35=array('atk'=>50,'di'=>70,'dc'=>33,'wood'=>250,'clay'=>200,'iron'=>125,'crop'=>45,'speed'=>10,'pop'=>2,'time'=>2000,'cap'=>120); -$u36=array('atk'=>100,'di'=>80,'dc'=>70,'wood'=>250,'clay'=>125,'iron'=>250,'crop'=>150,'speed'=>9,'pop'=>2,'time'=>2000,'cap'=>150); -$u37=array('atk'=>250,'di'=>140,'dc'=>200,'wood'=>250,'clay'=>220,'iron'=>135,'crop'=>50,'speed'=>4,'pop'=>3,'time'=>2000,'cap'=>125); -$u38=array('atk'=>450,'di'=>380,'dc'=>240,'wood'=>125,'clay'=>250,'iron'=>300,'crop'=>65,'speed'=>3,'pop'=>3,'time'=>2000,'cap'=>0); -$u39=array('atk'=>200,'di'=>170,'dc'=>250,'wood'=>350,'clay'=>350,'iron'=>125,'crop'=>80,'speed'=>5,'pop'=>3,'time'=>70500,'cap'=>0); -$u40=array('atk'=>600,'di'=>440,'dc'=>520,'wood'=>350,'clay'=>250,'iron'=>135,'crop'=>100,'speed'=>5,'pop'=>5,'time'=>31000,'cap'=>3000); -$u41=array('atk'=>20,'di'=>35,'dc'=>50,'wood'=>0,'clay'=>0,'iron'=>0,'crop'=>0,'pop'=>1,'speed'=>6,'time'=>0,'cap'=>0); -$u42=array('atk'=>65,'di'=>30,'dc'=>10,'wood'=>0,'clay'=>0,'iron'=>0,'crop'=>0,'pop'=>1,'speed'=>7,'time'=>0,'cap'=>0); -$u43=array('atk'=>100,'di'=>90,'dc'=>75,'wood'=>0,'clay'=>0,'iron'=>0,'crop'=>0,'pop'=>1,'speed'=>6,'time'=>0,'cap'=>0); -$u44=array('atk'=>0,'di'=>50,'dc'=>25,'wood'=>0,'clay'=>0,'iron'=>0,'crop'=>0,'pop'=>2,'speed'=>25,'time'=>0,'cap'=>0); -$u45=array('atk'=>155,'di'=>80,'dc'=>50,'wood'=>0,'clay'=>0,'iron'=>0,'crop'=>0,'pop'=>2,'speed'=>14,'time'=>0,'cap'=>0); -$u46=array('atk'=>170,'di'=>140,'dc'=>80,'wood'=>0,'clay'=>0,'iron'=>0,'crop'=>0,'pop'=>3,'speed'=>12,'time'=>0,'cap'=>0); -$u47=array('atk'=>250,'di'=>120,'dc'=>150,'wood'=>0,'clay'=>0,'iron'=>0,'crop'=>0,'pop'=>4,'speed'=>5,'time'=>0,'cap'=>0); -$u48=array('atk'=>60,'di'=>45,'dc'=>10,'wood'=>0,'clay'=>0,'iron'=>0,'crop'=>0,'pop'=>5,'speed'=>3,'time'=>0,'cap'=>0); -$u49=array('atk'=>80,'di'=>50,'dc'=>50,'wood'=>0,'clay'=>0,'iron'=>0,'crop'=>0,'pop'=>1,'speed'=>5,'time'=>0,'cap'=>0); -$u50=array('atk'=>30,'di'=>40,'dc'=>40,'wood'=>0,'clay'=>0,'iron'=>0,'crop'=>0,'pop'=>1,'speed'=>5,'time'=>0,'cap'=>0); -$u51=array('atk'=>10,'di'=>25,'dc'=>20,'wood'=>85,'clay'=>75,'iron'=>120,'crop'=>25,'speed'=>7,'pop'=>1,'time'=>1600,'cap'=>45); -$u52=array('atk'=>20,'di'=>35,'dc'=>40,'wood'=>125,'clay'=>130,'iron'=>60,'crop'=>40,'speed'=>7,'pop'=>1,'time'=>1800,'cap'=>65); -$u53=array('atk'=>60,'di'=>40,'dc'=>60,'wood'=>140,'clay'=>150,'iron'=>40,'crop'=>60,'speed'=>6,'pop'=>1,'time'=>1900,'cap'=>80); -$u54=array('atk'=>10,'di'=>66,'dc'=>50,'wood'=>95,'clay'=>120,'iron'=>65,'crop'=>25,'speed'=>9,'pop'=>1,'time'=>2000,'cap'=>0); -$u55=array('atk'=>50,'di'=>70,'dc'=>33,'wood'=>250,'clay'=>200,'iron'=>125,'crop'=>45,'speed'=>10,'pop'=>2,'time'=>2000,'cap'=>120); -$u56=array('atk'=>100,'di'=>80,'dc'=>70,'wood'=>250,'clay'=>125,'iron'=>250,'crop'=>150,'speed'=>9,'pop'=>2,'time'=>2000,'cap'=>150); -$u57=array('atk'=>250,'di'=>140,'dc'=>200,'wood'=>250,'clay'=>220,'iron'=>135,'crop'=>50,'speed'=>4,'pop'=>3,'time'=>2000,'cap'=>125); -$u58=array('atk'=>450,'di'=>380,'dc'=>240,'wood'=>125,'clay'=>250,'iron'=>300,'crop'=>65,'speed'=>3,'pop'=>3,'time'=>2000,'cap'=>0); -$u59=array('atk'=>200,'di'=>170,'dc'=>250,'wood'=>350,'clay'=>350,'iron'=>125,'crop'=>80,'speed'=>5,'pop'=>3,'time'=>70500,'cap'=>0); -$u60=array('atk'=>600,'di'=>440,'dc'=>520,'wood'=>350,'clay'=>250,'iron'=>135,'crop'=>100,'speed'=>5,'pop'=>5,'time'=>31000,'cap'=>3000); -$u99=array('atk'=>0,'di'=>0,'dc'=>0,'wood'=>20,'clay'=>30,'iron'=>10,'crop'=>20,'speed'=>0,'pop'=>0,'time'=>600,'cap'=>0); -// Hero data base values and increase per point -$h1=array('atk'=>50,'atkp'=>54,'di'=>60,'dip'=>49,'dc'=>85,'dcp'=>62.5); -$h2=array('atk'=>40,'atkp'=>46.5,'di'=>100,'dip'=>75.5,'dc'=>60,'dcp'=>47.5); -$h3=array('atk'=>90,'atkp'=>74,'di'=>65,'dip'=>57,'dc'=>40,'dcp'=>42); -$h5=array('atk'=>150,'atkp'=>107.5,'di'=>100,'dip'=>73,'dc'=>85,'dcp'=>59); -$h6=array('atk'=>225,'atkp'=>147.5,'di'=>135,'dip'=>79,'dc'=>175,'dcp'=>99); -$h11=array('atk'=>50,'atkp'=>54,'di'=>35,'dip'=>49.5,'dc'=>10,'dcp'=>24); -$h12=array('atk'=>15,'atkp'=>34,'di'=>60,'dip'=>48,'dc'=>100,'dcp'=>70.5); -$h13=array('atk'=>75,'atkp'=>67.5,'di'=>50,'dip'=>47.5,'dc'=>50,'dcp'=>47.5); -$h15=array('atk'=>70,'atkp'=>64,'di'=>165,'dip'=>100,'dc'=>65,'dcp'=>39.5); -$h16=array('atk'=>190,'atkp'=>127.5,'di'=>85,'dip'=>58.5,'dc'=>125,'dcp'=>80); -$h21=array('atk'=>20,'atkp'=>37.5,'di'=>65,'dip'=>53,'dc'=>85,'dcp'=>62); -$h22=array('atk'=>80,'atkp'=>71,'di'=>60,'dip'=>54,'dc'=>35,'dcp'=>38); -$h24=array('atk'=>115,'atkp'=>87.5,'di'=>40,'dip'=>42,'dc'=>65,'dcp'=>57); -$h25=array('atk'=>55,'atkp'=>57.5,'di'=>190,'dip'=>108.5,'dc'=>90,'dcp'=>60.5); -$h26=array('atk'=>175,'atkp'=>121,'di'=>85,'dip'=>55,'dc'=>275,'dcp'=>145); -?> diff --git a/GameEngine/Database.php b/GameEngine/Database.php deleted file mode 100755 index 447c5335..00000000 --- a/GameEngine/Database.php +++ /dev/null @@ -1,8409 +0,0 @@ -hostname = $hostname; - $this->port = $port; - $this->username = $username; - $this->password = $password; - $this->dbname = $dbname; - - // connect to the DB - if (!$this->connect()) die(mysqli_error($this->dblink)); - - // we will operate in UTF8 - mysqli_query($this->dblink,"SET NAMES 'UTF8'"); - } - - /** - * {@inheritDoc} - * @see \App\Database\IDbConnection::connect() - */ - public function connect() { - // try to connect - try { - $this->dblink = mysqli_connect( $this->hostname, $this->username, $this->password, $this->dbname, $this->port ); - } catch (\Exception $exception) { - $this->dblink = mysqli_connect( $this->hostname . ':' . $this->port, $this->username, $this->password ); - - // return on error - if (mysqli_error($this->dblink)) { - return false; - } - - // select the DB to use - mysqli_select_db($this->dblink, $this->dbname); - } - - // return on error - if (mysqli_error($this->dblink)) { - return false; - } else { - // connected and DB exists, we're good to go - return true; - } - } - - /** - * {@inheritDoc} - * @see \App\Database\IDbConnection::disconnect() - */ - public function disconnect() { - if ($this->dblink) { - if (!$this->dblink->close()) { - return false; - } - - $this->dblink = null; - } - - return true; - } - - /** - * {@inheritDoc} - * @see \App\Database\IDbConnection::reconnect() - */ - public function reconnect() { - $this->disconnect(); - return $this->connect(); - } - - /** - * {@inheritDoc} - * @see \App\Database\IDbConnection::query_new() - */ - public function query_new($statement, ...$params) { - if ($prep = mysqli_prepare($this->dblink, $statement)) { - // if we're doing a multi-update/insert/delete query, - // we'll need to mark it as such - $is_multi_query = false; - - // determine the nature of this query - preg_match('/[^AZ-az]*(\()?[^AZ-az]*SELECT/i', $statement, $select_matches); - preg_match('/[^AZ-az]*(\()?[^AZ-az]*DELETE/i', $statement, $delete_matches); - preg_match('/[^AZ-az]*(\()?[^AZ-az]*INSERT/i', $statement, $insert_matches); - preg_match('/[^AZ-az]*(\()?[^AZ-az]*REPLACE/i', $statement, $replace_matches); - preg_match('/[^AZ-az]*(\()?[^AZ-az]*UPDATE/i', $statement, $update_matches); - - // a single array parameter means that we're batching multiple - // value feeds for a single prepared statement, so we just use - // the first array value to actually prepare the statement - // and determine all the binding types - if (count($params) == 1) { - $paramsArray = $params[0]; - $is_multi_query = true; - } else { - $paramsArray = $params; - // convert method parameters into an array, - // so we can reuse it in both cases - when we're executing - // just a single prepared statement and also when we're - // batching up multiple values for an insert/update/delete statement - $params = [$params]; - } - - // determine and prepare parameter types - $types = []; - foreach ($paramsArray as $param) { - // default to string, change if neccessary - $paramType = 's'; - - if (Math::isInt($param)) { - $paramType = 'i'; - } else if (Math::isFloat($param)) { - $paramType = 'd'; - } - - $types[] = $paramType; - } - - // dynamically bind each data batch using previously - // defined parameters - $implodedNames = [implode('', $types)]; - $outputValues = []; - - foreach ($params as $dataBatch) { - $bind_names = $implodedNames; - for ($i=0; $iselectQueryCount++; - $queryResult = []; - - // read metadata, so we know what fields we were actually selecting - // and can prepare our temporary variables to read them into - $resultMetaData = mysqli_stmt_result_metadata($prep); - - $stmtRow = array(); - $rowReferences = array(); - while ($field = mysqli_fetch_field($resultMetaData)) { - $rowReferences[] = &$stmtRow[$field->name]; - } - mysqli_free_result($resultMetaData); - - // now call bind_result with all our variables to recive the data prepared - call_user_func_array(array($prep, 'bind_result'), $rowReferences); - - // prepare the array-ed result - while(mysqli_stmt_fetch($prep)){ - $row = array(); - foreach($stmtRow as $key => $value){ - $row[$key] = $value; - } - $queryResult[] = $row; - } - - // free the result - mysqli_stmt_free_result($prep); - - $outputValues[] = $queryResult; - } else { - throw new Exception('Failed to execute an SQL statement!'); - } - } - } - - // free the prepared statement - mysqli_stmt_close($prep); - - // return the expected result - if (count($select_matches)) { - // if there is only a single result, return it alone - if (count($outputValues) === 1) { - return $outputValues[0]; - } else { - // otherwise, return all the data - return $outputValues; - } - } - } else { - throw new Exception('Failed to prepare an SQL statement!'); - } - - return false; - } - - /** - * {@inheritDoc} - * @see \App\Database\IDbConnection::is_connected() - */ - public function is_connected() { - return ($this->dblink ? true : false); - } - - /*************************** - Function to process MYSQLi->fetch_all (Only exist in MYSQL) - References: Result - ***************************/ - function mysqli_fetch_all($result) { - list($result) = $this->escape_input($result); - - $all = []; - if($result) { - while($row = mysqli_fetch_assoc($result)) { - $all[] = $row; - } - return $all; - } - } - - function query_return($q) { - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - /*************************** - Function to do free query - References: Query - ***************************/ - function query($query) { - return mysqli_query($this->dblink,$query); - } - - function RemoveXSS($val) { - list($val) = $this->escape_input($val); - - return htmlspecialchars($val, ENT_QUOTES); - } - - /** - * Returns a value previously cached from the database, if present. - * - * @param $arrayVariable array Reference to the static array in Database class to use for the lookup. - * @param $arrayFieldName string The actual array field name to look a cached value for. - * - * @return Returns the requested cached value or null if it's not cached yet. - */ - private static function returnCachedContent(&$arrayVariable, $arrayStructure) { - if (!isset($arrayVariable[$arrayStructure])) { - $arrayVariable[$arrayStructure] = []; - } - - if (isset($arrayVariable[$arrayStructure]) && !empty($arrayVariable[$arrayStructure])) { - return $arrayVariable[$arrayStructure]; - } - else return null; - } - - /** - * Clears cached village data, so after automation is run, we can re-load new data (like resource levels etc) - * to be displayed in the front-end. - */ - public static function clearVillageCache() { - self::$villageFieldsCache = []; - self::$villageFieldsCacheByWorldID = []; - } - - /** - * Returns a string value safely escaped to be used in mysqli_query() method. - * - * @param $value string The value to sanitize. - * - * @return string Returns a sanitized string, safe for SQL queries. - */ - function escape($value) { - if (is_string($value)) { - $value = stripslashes( $value ); - return mysqli_real_escape_string($this->dblink, $value); - } else { - return $value; - } - } - - /** - * Returns a list of safely escaped values which can be used to re-retrieve - * them in a list() method. - * - * @example list($username, $password) = $database->escape_input($username, $password); - * - * @return array Returns an array with all items sanitized and safe to be used in SQL statements. - */ - function escape_input() { - $numargs = func_num_args(); - $arg_list = func_get_args(); - $ret = []; - - for ($i = 0; $i < $numargs; $i++) { - if (is_string($arg_list[$i])) { - $arg_list[$i] = stripslashes($arg_list[$i]); - $res[] = mysqli_real_escape_string($this->dblink, $arg_list[$i]); - } else { - $res[] = $arg_list[$i]; - } - } - - return $res; - } - - function return_link() { - return $this->dblink; - } - - function register($username, $password, $email, $tribe, $act, $uid = 0, $desc = null) { - list($username, $password, $email, $tribe, $act, $uid, $desc) = $this->escape_input($username, $password, $email, (int) $tribe, $act, (int) $uid, $desc); - - $time = time(); - $startTime = strtotime(START_DATE) - strtotime(date('d.m.Y')) + strtotime(START_TIME); - - //If we're registering the Natars tribe, the protection must be 0 - $protectionTime = $uid != 3 ? (($startTime > $time) ? $stime : $time) + PROTECTION : 0; - - $q = "INSERT INTO " . TB_PREFIX . "users (id, username, password, access, email, timestamp, tribe, act, protect, lastupdate, regtime, desc2, is_bcrypt) VALUES ($uid, '$username', '$password', " . USER . ", '$email', $time, $tribe, '$act', $protectionTime, $time, $time, '$desc', 1)"; - - if(mysqli_query($this->dblink, $q)) return mysqli_insert_id($this->dblink); - else - { - // if an error has occured, we probably don't have DB converted to handle bcrypt passwords yet - $q = "INSERT INTO " . TB_PREFIX . "users (id, username, password, access, email, timestamp, tribe, act, protect, lastupdate, regtime, desc2) VALUES ($uid, '$username', '$password', " . USER . ", '$email', $time, $tribe, '$act', $protectionTime, $time, $time, '$desc')"; - if(mysqli_query($this->dblink, $q)) return mysqli_insert_id($this->dblink); - else return false; - } - } - - function activate($username, $password, $email, $tribe, $locate, $act, $act2) { - list($username, $password, $email, $tribe, $locate, $act, $act2) = $this->escape_input($username, $password, $email, $tribe, $locate, $act, $act2); - - $time = time(); - $q = "INSERT INTO " . TB_PREFIX . "activate (username,password,access,email,tribe,timestamp,location,act,act2) VALUES ('$username', '$password', " . USER . ", '$email', " . (int) $tribe .", $time, $locate, '$act', '$act2')"; - if(mysqli_query($this->dblink,$q)) return mysqli_insert_id($this->dblink); - else return false; - } - - function unreg($username) { - list($username) = $this->escape_input($username); - - $q = "DELETE from " . TB_PREFIX . "activate where username = '$username'"; - return mysqli_query($this->dblink,$q); - } - function deleteReinf($id) { - list($id) = $this->escape_input((int) $id); - - $q = "DELETE from " . TB_PREFIX . "enforcement where id = '$id'"; - mysqli_query($this->dblink,$q); - self::clearReinforcementsCache(); - } - - function updateResource($vid, $what, $number) { - $vid = (int) $vid; - - if (!is_array($what)) { - $what = [$what]; - $number = [$number]; - } - - $pairs = []; - foreach ($what as $index => $whatValue) { - $pairs[] = $this->escape($whatValue) . ' = ' . (Math::isInt($number[$index]) ? $number[$index] : '"'.$this->escape($number[$index]).'"'); - } - - $q = "UPDATE " . TB_PREFIX . "vdata SET ".implode(', ', $pairs)." WHERE wref = $vid"; - $result = mysqli_query($this->dblink,$q); - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - public function hasBeginnerProtection($vid) { - list($vid) = $this->escape_input($vid); - - $q = "SELECT u.protect FROM ".TB_PREFIX."users u,".TB_PREFIX."vdata v,".TB_PREFIX."odata o WHERE (u.id = v.owner AND v.wref = ".(int) $vid.") OR (u.id = o.owner AND o.wref = ".(int) $vid.") LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - - if(!empty($dbarray)) return time() < $dbarray[0]; - else return false; - } - - function updateUserField($ref, $field, $value, $switch) { - list($ref) = $this->escape_input($ref); - - if (!is_array($field)) { - $field = [$field]; - $value = [$value]; - } - - $pairs = []; - foreach ($field as $index => $fieldName) { - $pairs[] = $this->escape($fieldName) . ' = ' . (Math::isInt($value[$index]) ? $value[$index] : '"'.$this->escape($value[$index]).'"'); - } - - if(!$switch) $q = "UPDATE " . TB_PREFIX . "users SET ".implode(', ', $pairs)." where username = '$ref'"; - else $q = "UPDATE " . TB_PREFIX . "users SET ".implode(', ', $pairs)." where id = " . (int) $ref; - - // update cached values - if ($ret = mysqli_query($this->dblink,$q)) { - foreach ($field as $index => $fieldName) { - if (isset(self::$fieldsCache[$ref.($switch ? 0 : 1)][$fieldName])) - self::$fieldsCache[$ref.($switch ? 0 : 1)][$fieldName] = $value[$index]; - } - } - - return $ret; - } - - // no need to cache this method - function getSitee($uid) { - list($uid) = $this->escape_input((int) $uid); - - $q = "SELECT id from " . TB_PREFIX . "users where sit1 = $uid or sit2 = $uid"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - //TODO: Remove this function to use the more general one - // no need to cache this method - function getVilWref($x, $y) { - list($x, $y) = $this->escape_input((int) $x, (int) $y); - - $q = "SELECT id FROM " . TB_PREFIX . "wdata where x = $x AND y = $y LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - return $dbarray['id']; - } - - /** - * Converts from coordinates to village IDs - * - * @param array $coordinatesArray The coordinates array, containing the coordinates which need to be converted - * @return array Returns the converted coordinates - */ - - function getVilWrefs($coordinatesArray) { - list($coordinatesArray) = $this->escape_input($coordinatesArray); - - if(!is_array($coordinatesArray[0])) $coordinatesArray = [$coordinatesArray]; - - $conditions = []; - foreach($coordinatesArray as $coordinate){ - $conditions[] = "(x = ".round($coordinate[0])." AND y = ".round($coordinate[1]).")"; - } - - $q = "SELECT id FROM " . TB_PREFIX . "wdata WHERE ".implode(" OR ", $conditions); - $result = mysqli_query($this->dblink, $q); - - while($row = mysqli_fetch_assoc($result)) $wids[] = $row['id']; - return $wids; - } - - function removeMeSit($uid, $uid2) { - list($uid, $uid2) = $this->escape_input((int) $uid, (int) $uid2); - - $q = "UPDATE " . TB_PREFIX . "users set sit1 = 0 where id = $uid and sit1 = $uid2"; - mysqli_query($this->dblink,$q); - $q2 = "UPDATE " . TB_PREFIX . "users set sit2 = 0 where id = $uid and sit2 = $uid2"; - mysqli_query($this->dblink,$q2); - } - - function getUserField($ref, $field, $mode, $use_cache = true) { - // update for Multihunter's username and ID - if (($mode && $ref == '') || (!$mode && $ref == 0)) { - $ref = 'Multihunter'; - $mode = 1; - } - - // return all data, don't waste time by selecting fields one by one - $userArray = $this->getUserArray($ref, ($mode ? 0 : 1), $use_cache); - $result = (isset($userArray[$field]) ? $userArray[$field] : null); - - if ($result) { - // will return the result - } elseif($field=="username") { - $result = "[?]"; - } else { - $result = 0; - } - - return $result; - - /*list($ref, $field, $mode) = $this->escape_input($ref, $field, $mode); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$fieldsCache, $ref.$mode)) && !is_null($cachedValue)) { - // check if we have the requested field type cached - if (isset($cachedValue[$field])) { - return $cachedValue[$field]; - } - } - - // update for Multihunter's username and ID - if (($mode && $ref == '') || (!$mode && $ref == 0)) { - $ref = 'Multihunter'; - $mode = 1; - } - - if(!$mode) { - $q = "SELECT $field FROM " . TB_PREFIX . "users where id = " . (int) $ref; - } else { - $q = "SELECT $field FROM " . TB_PREFIX . "users where username = '$ref'"; - } - - $result = mysqli_query($this->dblink,$q) or die(mysqli_error($this->dblink)); - - if ($result) { - $dbarray = mysqli_fetch_array($result); - self::$fieldsCache[$ref.$mode][$field] = $dbarray[$field]; - } elseif($field=="username") { - self::$fieldsCache[$ref.$mode][$field] = "??"; - } else { - self::$fieldsCache[$ref.$mode][$field] = 0; - } - - return self::$fieldsCache[$ref.$mode][$field];*/ - } - - function getUserFields($ref, $fields, $mode, $use_cache = true) { - // update for Multihunter's username and ID - if (($mode && $ref == '') || (!$mode && $ref == 0)) { - $ref = 'Multihunter'; - $mode = 1; - } - - // return all data, don't waste time by selecting fields one by one - return $this->getUserArray($ref, ($mode ? 0 : 1), $use_cache); - - /*list($ref, $fields, $mode) = $this->escape_input($ref, $fields, $mode); - - // update for Multihunter's username and ID - if (($mode && $ref == '') || (!$mode && $ref == 0)) { - $ref = 'Multihunter'; - $mode = 1; - } - - // check fields one by one to see which ones we can return cached - if ($use_cache) { - $allFieldsFound = false; - $fieldsLeft = []; - $fieldValues = []; - - // split fields - $fields = explode(',', str_replace(', ', ',', $fields)); - - // iterate over all the fields and see what we have cached - foreach ($fields as $fieldName) { - if (($cached = self::returnCachedContent(self::$fieldsCache, $ref.$mode)) && !is_null($cached) && isset($cached[$fieldName])) { - $fieldValues[$fieldName] = $cached[$fieldName]; - } else { - $fieldsLeft[] = $fieldName; - } - } - - // check if we should return here (if we have all the values) or continue with the rest below - if (!count($fieldsLeft)) { - return $fieldValues; - } - } - - if(!$mode) { - $q = "SELECT ".implode(', ', $fieldsLeft)." FROM " . TB_PREFIX . "users where id = " . (int) $ref; - } else { - $q = "SELECT ".implode(', ', $fieldsLeft)." FROM " . TB_PREFIX . "users where username = '$ref'"; - } - - $result = mysqli_query($this->dblink,$q) or die(mysqli_error($this->dblink)); - if($result) { - $ret = mysqli_fetch_array($result, MYSQLI_ASSOC); - } else { - $ret = [0]; - } - - // cache results and return everything that we have - foreach ($ret as $fieldName => $fieldValue) { - $fieldValues[$fieldName] = $fieldValue; - self::$fieldsCache[$ref.$mode][$fieldName] = $fieldValue; - } - - return $fieldValues;*/ - } - - // no need to cache this method - function getInvitedUser($uid) { - list($uid) = $this->escape_input((int) $uid); - - $q = "SELECT * FROM " . TB_PREFIX . "users where invited = $uid order by regtime desc"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - function getVrefField($ref, $field, $use_cache = true) { - return $this->getVillage($ref, 0, $use_cache)[$field]; - } - - // no need to cache this method - function getVrefCapital($ref) { - $vdata = $this->getProfileVillages($ref); - - foreach($vdata as $village){ - if($village['capital']) return $village; - } - return false; - } - - // no need to cache this method - function getStarvation() { - return $this->getProfileVillages(0, 2); - } - - // no need to cache this method - function getActivateField($ref, $field, $mode) { - list($ref, $field, $mode) = $this->escape_input($ref, $field, $mode); - - if(!$mode) { - $q = "SELECT $field FROM " . TB_PREFIX . "activate where id = " . (int) $ref . " LIMIT 1"; - } else { - $q = "SELECT $field FROM " . TB_PREFIX . "activate where username = '$ref' LIMIT 1"; - } - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - return $dbarray[$field]; - } - - function login($username, $password) { - static $cachedResult = null; - - if ($cachedResult !== null) { - return $cachedResult; - } - - list($username, $password) = $this->escape_input($username, $password); - $q = "SELECT id,password,sessid,is_bcrypt FROM " . TB_PREFIX . "users where username = '$username'"; - $result = mysqli_query($this->dblink,$q); - - // if we didn't update the database for bcrypt hashes yet... - if (mysqli_error($this->dblink) != '') { - $q = "SELECT id, password,sessid,0 as is_bcrypt FROM " . TB_PREFIX . "users where username = '$username' LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $bcrypt_update_done = false; - } else { - $bcrypt_update_done = true; - } - - $dbarray = mysqli_fetch_array($result); - - // even if we didn't do a DB conversion for bcrypt passwords, - // we still need to check if this password wasn't encrypted via password_hash, - // since all methods were updated to use that instead of md5 and therefore - // new passwords in DB will be bcrypt already even without the is_bcrypt field present - $bcrypted = true; - $pwOk = password_verify($password, $dbarray['password']); - - if (!$pwOk && !$dbarray['is_bcrypt']) { - $pwOk = ($dbarray['password'] == md5($password)); - $bcrypted = false; - } - - if($pwOk) { - // update password to bcrypt, if correct - if (!$dbarray['is_bcrypt'] && !$bcrypted) { - mysqli_query($this->dblink, "UPDATE " . TB_PREFIX . "users SET password = '".password_hash($password, PASSWORD_BCRYPT,['cost' => 12])."'".($bcrypt_update_done ? ', is_bcrypt = 1' : '')." where id = ".(int) $dbarray['id']); - } - $cachedResult = true; - } else { - $cachedResult = false; - } - - return $cachedResult; - } - - function sitterLogin($username, $password) { - list($username, $password) = $this->escape_input($username, $password); - - $q = "SELECT sit1,sit2 FROM " . TB_PREFIX . "users where username = '$username' and access != " . BANNED ." LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - if($dbarray['sit1'] != 0) { - $q2 = "SELECT password FROM " . TB_PREFIX . "users where id = " . (int) $dbarray['sit1'] . " and access != " . BANNED . " LIMIT 1"; - $result2 = mysqli_query($this->dblink,$q2); - $dbarray2 = mysqli_fetch_array($result2); - } - if($dbarray['sit2'] != 0) { - $q3 = "SELECT password FROM " . TB_PREFIX . "users where id = " . (int) $dbarray['sit2'] . " and access != " . BANNED . " LIMIT 1"; - $result3 = mysqli_query($this->dblink,$q3); - $dbarray3 = mysqli_fetch_array($result3); - } - if($dbarray['sit1'] != 0 || $dbarray['sit2'] != 0) { - if(password_verify($password, $dbarray2['password']) || password_verify($password, $dbarray3['password'])) { - return true; - } else { - return false; - } - } else { - return false; - } - } - - function setDeleting($uid, $mode) { - list($uid, $mode) = $this->escape_input((int) $uid, $mode); - - $time = time() + 72 * 3600; - if(!$mode) { - $q = "INSERT into " . TB_PREFIX . "deleting values ($uid,$time)"; - } else { - $q = "DELETE FROM " . TB_PREFIX . "deleting where uid = $uid"; - } - mysqli_query($this->dblink,$q); - } - - function isDeleting($uid) { - list($uid) = $this->escape_input((int) $uid); - - $q = "SELECT timestamp from " . TB_PREFIX . "deleting where uid = $uid LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - return $dbarray['timestamp']; - } - - function modifyGold($userid, $amt, $mode) { - list($userid, $amt, $mode) = $this->escape_input((int) $userid, (int) $amt, $mode); - - if(!$mode) $q = "UPDATE " . TB_PREFIX . "users set gold = gold - $amt where id = $userid"; - else $q = "UPDATE " . TB_PREFIX . "users set gold = gold + $amt where id = $userid"; - - return mysqli_query($this->dblink,$q); - } - - /** - * Retrieves the user array via Username or ID - * - * @param int $ref The user ID or the username - * @param int $mode 0 --> Search by username, 1 --> Search by user ID - * @param bool $use_cache Will use the cache if true - * @return array Returns the user array - */ - - function getUserArray($ref, $mode, $use_cache = true) { - list($ref, $mode) = $this->escape_input($ref, $mode); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$fieldsCache, $ref.$mode)) && !is_null($cachedValue)) { - return $cachedValue; - } - - if(!$mode) $q = "SELECT * FROM " . TB_PREFIX . "users where username = '$ref' LIMIT 1"; - else $q = "SELECT * FROM " . TB_PREFIX . "users where id = " . (int) $ref . " LIMIT 1"; - - $result = mysqli_query($this->dblink,$q); - - self::$fieldsCache[$ref.$mode] = mysqli_fetch_array($result); - return self::$fieldsCache[$ref.$mode]; - } - - function activeModify($username, $mode) { - list($username, $mode) = $this->escape_input($username, $mode); - - $time = time(); - if(!$mode) { - $q = "INSERT into " . TB_PREFIX . "active VALUES ('$username',$time)"; - } else { - $q = "DELETE FROM " . TB_PREFIX . "active where username = '$username'"; - } - return mysqli_query($this->dblink,$q); - } - - function addActiveUser($username, $time) { - list($username, $time) = $this->escape_input($username, $time); - - $q = "REPLACE into " . TB_PREFIX . "active values ('$username',$time)"; - if(mysqli_query($this->dblink,$q)) { - return true; - } else { - return false; - } - } - - function updateActiveUser($username, $time) { - static $updated = false; - - if ($updated) { - return; - } - - list($username, $time) = $this->escape_input($username, $time); - - $res1 = $this->addActiveUser($username, $time); - $q = "UPDATE " . TB_PREFIX . "users set timestamp = $time where username = '$username'"; - $res2 = mysqli_query($this->dblink,$q); - if($res1 && $res2) { - $updated = true; - return true; - } else { - return false; - } - } - - function submitProfile($uid, $gender, $location, $birthday, $des1, $des2) { - // temporarily replace newlines with placeholders, so they don't get escaped and backslashed stripped out of them - $des1 = str_replace(['\\r', '\\n'], ['[!RETURN_CARRIAGE!]','[!NEW_LINE!]'], $des1); - $des2 = str_replace(['\\r', '\\n'], ['[!RETURN_CARRIAGE!]','[!NEW_LINE!]'], $des2); - - list($uid, $gender, $location, $birthday, $des1, $des2) = $this->escape_input((int) $uid, (int) $gender, $location, $birthday, $des1, $des2); - - // return new lines and return carriages to descriptions - $des1 = str_replace(['[!RETURN_CARRIAGE!]','[!NEW_LINE!]'], ['\\r', '\\n'], $des1); - $des2 = str_replace(['[!RETURN_CARRIAGE!]','[!NEW_LINE!]'], ['\\r', '\\n'], $des2); - - $q = "UPDATE " . TB_PREFIX . "users set gender = $gender, location = '$location', birthday = '$birthday', desc1 = '$des1', desc2 = '$des2' where id = $uid"; - return mysqli_query($this->dblink,$q); - } - - function gpack($uid, $gpack) { - list($uid, $gpack) = $this->escape_input((int) $uid, $gpack); - - $q = "UPDATE " . TB_PREFIX . "users set gpack = '$gpack' where id = $uid"; - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - function GetOnline($uid) { - list($uid) = $this->escape_input((int) $uid); - - $q = "SELECT sit FROM " . TB_PREFIX . "online WHERE uid = $uid LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - return $dbarray['sit']; - } - - function UpdateOnline($mode, $name = "", $time = "", $uid = 0) { - list($mode, $name, $time, $uid) = $this->escape_input($mode, $name, $time, (int) $uid); - - global $session; - if($mode == "login") { - $q = "INSERT IGNORE INTO " . TB_PREFIX . "online (name, uid, time, sit) VALUES ('$name', $uid, '" . time() . "', 0)"; - return mysqli_query($this->dblink,$q); - } else if($mode == "sitter") { - $q = "INSERT IGNORE INTO " . TB_PREFIX . "online (name, uid, time, sit) VALUES ('$name', $uid, '" . time() . "', 1)"; - return mysqli_query($this->dblink,$q); - } else { - $q = "DELETE FROM " . TB_PREFIX . "online WHERE name ='" . $this->escape($session->username) . "'"; - return mysqli_query($this->dblink,$q); - } - } - - /** - * Generates a list of "free to take" villages - * - * @param int $sector The map sector, + | -, - | + , + | +, - | - (0 and > 3, 1, 2, 3) - * @param int $mode 0 if villages need be generated under certain filters, 1 if not - * @param bool $respect_gametime If is false, we generate user base really anywhere - * and that means we can generate farms closer to the middle of the map as well. - * Otherwise we'd only generate farms at corner edges in late game, which - * sucks for people in the middle who registered too soon - * @param int $numberOfVillages Number of villages which need to be generated - * @return array Return the generated villages - */ - - function generateBase($sector, $mode = 0, $numberOfVillages = 1) { - list($sector, $mode, $numberOfVillages) = $this->escape_input((int) $sector, (int) $mode, (int)$numberOfVillages); - - // don't let SQL time out when 30-500 seconds (depending on php.ini) is not enough - @set_time_limit(0); - $num_rows = $count = 0; - $villages = []; - $time = time(); - - while ($numberOfVillages > 0) { - switch($mode){ - case 0: - $daysPassedFromStart = ($time - strtotime(START_DATE) - strtotime(date('d.m.Y')) + strtotime(START_TIME)) / 86400; - - $radiusMin = min(round(pow(2 * ($daysPassedFromStart / 5 * SPEED), 2)), round(pow(WORLD_MAX * 0.8, 2)) + round(pow(WORLD_MAX * 0.8, 2))); - $radiusMax = min(round(pow(4 * ($daysPassedFromStart / 5 * SPEED), 2)), pow(WORLD_MAX, 2) + pow(WORLD_MAX, 2)); - break; - - case 1: - default: - $radiusMin = 1; - $radiusMax = pow(WORLD_MAX, 2); - break; - - case 2: //Small artifacts & WW building plans - $radiusMin = round(pow(WORLD_MAX * 0.50, 2)); - $radiusMax = round(pow(WORLD_MAX * 0.75, 2)); - break; - - case 3: //Large artifacts - $radiusMin = round(pow(WORLD_MAX * 0.35, 2)); - $radiusMax = round(pow(WORLD_MAX * 0.55, 2)); - break; - - case 4: //Unique artifacts - $radiusMin = round(pow(WORLD_MAX * 0.05, 2)); - $radiusMax = round(pow(WORLD_MAX * 0.25, 2)); - break; - - case 5: //WW villages - $radiusMin = round(pow(WORLD_MAX * 0.8, 2)); - $radiusMax = round(pow(WORLD_MAX, 2)); - break; - } - - switch($sector){ - case 1: $sector = "x <= 0 AND y >= 0"; break; // - | + - case 2: $sector = "x >= 0 AND y >= 0"; break; // + | + - case 3: $sector = "x <= 0 AND y <= 0"; break; // - | - - default: $sector = "x >= 0 AND y <= 0"; // + | - - } - - //Choose villages beetween two circumferences, by using their formula (x^2 + y^2 = r^2) - $q = "SELECT id FROM ".TB_PREFIX."wdata WHERE fieldtype = 3 AND ($sector) AND (POWER(x, 2) + POWER(y, 2) >= $radiusMin AND POWER(x, 2) + POWER(y, 2) <= $radiusMax) AND occupied = 0 ORDER BY RAND() LIMIT $numberOfVillages"; - $result = mysqli_query($this->dblink, $q); - - //Prevent an infinite loop - $resultedRows = mysqli_num_rows($result); - if($resultedRows == 0 && $count >= 20) break; - - //Fill the villages array - $villages = array_merge($villages, $this->mysqli_fetch_all($result)); - - $num_rows += $resultedRows; - $numberOfVillages -= $resultedRows; - $count++; - - //If there are no more free cells in that sector, it have to be changed - //This instruction will be used only (in the next cicle(s)) if not all wids have been generated yet - $sector = rand(1, 4); - } - - foreach($villages as $village) $wids[] = $village['id']; - - return $num_rows == 1 ? $wids[0] : $wids; - } - - function setFieldTaken($id) { - if (!is_array($id)) { - $id = [$id]; - } - - foreach ($id as $index => $idValue) { - $id[$index] = (int) $idValue; - } - - $q = "UPDATE " . TB_PREFIX . "wdata SET occupied = 1 WHERE id IN(". implode(', ', $id).")"; - return mysqli_query($this->dblink,$q); - } - - /** - * Creates new villages - * - * @param array $villageArrays The array of the villages which have to be created - * @param int $uid The user ID - * @param string $username The username of the future owner - * @param array $troopsArray The troops that need to be added in the village(s) - * @param array $buildingsArray The buildings that need to be created in the village(s) - * @return array Returns the created villages ID - */ - - function generateVillages($villageArrays, $uid, $username, $troopsArray = null, $buildingsArray = null){ - list($villageArrays, $uid, $username, $troopsArray, $buildingsArray) = $this->escape_input($villageArrays, (int) $uid, $username, $troopsArray, $buildingsArray); - - $wids = $takenWids = $countedWids = $generatedWids = $i = []; - - //Count each kid in its own array, to check how many villages must be created - foreach($villageArrays as $village){ - if($village['wid'] == 0) $countedWids[$village['mode']][$village['kid']]++; - } - - //Generate the number of desired village for each kid - //and merge them with the more general "wids" array - foreach($countedWids as $mode => $totalCount){ - foreach($totalCount as $sector => $count){ - $generatedWids = $this->generateBase($sector, $mode, $count); - $wids[$mode] = array_merge((array)$wids[$mode], !is_array($generatedWids) ? [$generatedWids] : $generatedWids); - if(empty($i[$mode])) $i[$mode] = 0; - } - } - - //Create the villages - foreach($villageArrays as $village){ - - //Check if the village wid isn't already set and assing one among the generated ones - if($village['wid'] == 0) $village['wid'] = $wids[$village['mode']][$i[$village['mode']]++]; - - //Merge the wids into an unique array - $takenWids[] = $village['wid']; - $villageTypes[] = $village['type']; - - //Add the village and its buildings - $this->addVillage($village['wid'], $uid, $username, $village['capital'], $village['pop'], $village['name'], $village['natar']); - } - - //Create tables for the just generated villages - $this->addResourceFields($takenWids, $villageTypes, $buildingsArray); - $this->setFieldTaken($takenWids); - $this->addUnits($takenWids, $troopsArray); - $this->addTech($takenWids); - $this->addABTech($takenWids); - - return count($takenWids) > 1 ? $takenWids : $takenWids[0]; - } - - /** - * - * Create a village - * - * @param int $wid The village ID - * @param int $uid The User ID, the village's owner - * @param string $username The username - * @param int $capital 1 if it's a capital village, 0 otherwise - * @param int $pop The default village population - * @param string $villageName The default village name - * @return bool Returns true if the query was successful, false otherwise - */ - - function addVillage($wid, $uid, $username, $capital, $pop = 2, $villageName = null, $isNatar = 0) { - list($wid, $uid, $username, $capital, $pop, $villageName, $isNatar) = $this->escape_input((int) $wid, (int) $uid, $username, (int) $capital, (int) $pop, $villageName, (int) $isNatar); - - $total = count($this->getVillagesID($uid)); - if($villageName == null) $villageName = $username."\'s village ".($total >= 1 ? $total + 1 : ""); - - $time = time(); - $q = "INSERT into " . TB_PREFIX . "vdata (wref, owner, name, capital, pop, cp, celebration, wood, clay, iron, maxstore, crop, maxcrop, lastupdate, created, natar) values ($wid, $uid, '$villageName', $capital, $pop, 1, 0, 750, 750, 750, ".STORAGE_BASE.", 750, ".STORAGE_BASE.", $time, $time, $isNatar)"; - return mysqli_query($this->dblink,$q); - } - - /** - * - * Add the buildings tables to a specified village(s), and its relative buildings - * - * @param mixed $vid The village ID(s) - * @param mixed $type int if there's only one village, array if there are multiple villages - * @param array $buildingsArray divided in two portion, which contains the types (unidimensional array) and the values of the - * buildings that need to be added (bidimensional array) - * @return bool Return true if the query was successful, false otherwise - */ - - function addResourceFields($vids, $types, $buildingsArray = null) { - list($vids, $types, $buildingsArray) = $this->escape_input($vids, $types, $buildingsArray); - - if(!is_array($vids)){ - $vids = [$vids]; - $types = [$types]; - } - - //Set the default villages structure (resources fields and main building) - $defaultVillage = "vref,f1t,f2t,f3t,f4t,f5t,f6t,f7t,f8t,f9t,f10t,f11t,f12t,f13t,f14t,f15t,f16t,f17t,f18t" - .($buildingsArray != null ? ",".implode(",",$buildingsArray[0]) : ",f26,f26t"); - $defaultValues = []; - - //Select the village type and assemble the building values - foreach($vids as $index => $vid){ - $stringValues = ""; - $stringValues .= "(".$vid.","; - switch($types[$index]) { - case 1: $stringValues .= "4,4,1,4,4,2,3,4,4,3,3,4,4,1,4,2,1,2"; break; - case 2: $stringValues .= "3,4,1,3,2,2,3,4,4,3,3,4,4,1,4,2,1,2"; break; - case 3: $stringValues .= "1,4,1,3,2,2,3,4,4,3,3,4,4,1,4,2,1,2"; break; - case 4: $stringValues .= "1,4,1,2,2,2,3,4,4,3,3,4,4,1,4,2,1,2"; break; - case 5: $stringValues .= "1,4,1,3,1,2,3,4,4,3,3,4,4,1,4,2,1,2"; break; - case 6: $stringValues .= "4,4,1,3,4,4,4,4,4,4,4,4,4,4,4,2,4,4"; break; - case 7: $stringValues .= "1,4,4,1,2,2,3,4,4,3,3,4,4,1,4,2,1,2"; break; - case 8: $stringValues .= "3,4,4,1,2,2,3,4,4,3,3,4,4,1,4,2,1,2"; break; - case 9: $stringValues .= "3,4,4,1,1,2,3,4,4,3,3,4,4,1,4,2,1,2"; break; - case 10: $stringValues .= "3,4,1,2,2,2,3,4,4,3,3,4,4,1,4,2,1,2"; break; - case 11: $stringValues .= "3,1,1,3,1,4,4,3,3,2,2,3,1,4,4,2,4,4"; break; - case 12: $stringValues .= "1,4,1,1,2,2,3,4,4,3,3,4,4,1,4,2,1,2"; break; - default: $stringValues .= "4,4,1,4,4,2,3,4,4,3,3,4,4,1,4,2,1,2"; - } - - $stringValues .= $buildingsArray != null ? ",".implode(",",$buildingsArray[1][$index]).")" : ",1,15)"; - $defaultValues[] = $stringValues; - } - - $q = "INSERT INTO " . TB_PREFIX . "fdata ($defaultVillage) values".implode(",",$defaultValues); - return mysqli_query($this->dblink, $q); - } - - function isVillageOases($wref, $use_cache = true) { - // retirieve form cache - return $this->getVillageByWorldID($wref, $use_cache)['oasistype']; - } - - public function VillageOasisCount($vref, $use_cache = true) { - list($vref) = $this->escape_input((int) $vref); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$oasisCountCache, $vref)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT count(*) FROM `".TB_PREFIX."odata` WHERE conqured=". $vref; - $result = mysqli_query($this->dblink,$q); - $row = mysqli_fetch_row($result); - - self::$oasisCountCache[$vref] = $row[0]; - return self::$oasisCountCache[$vref]; - } - - public function countOasisTroops($vref, $use_cache = true) { - list($vref) = $this->escape_input((int) $vref); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$oasisTroopsCountCache, $vref)) && !is_null($cachedValue)) { - return $cachedValue; - } - - //count oasis troops: $troops_o - $troops_o = 0; - $o_unit = $this->getUnit($vref, $use_cache); - - for ( $i = 1; $i < 51; $i ++ ) { - $troops_o += $o_unit[ 'u'.$i ]; - } - - $troops_o += $o_unit['hero']; - $o_unit2 = $this->getEnforceVillage($vref, 0, $use_cache); - - foreach ($o_unit2 as $o_unit) { - for ( $i = 1; $i < 51; $i ++ ) { - $troops_o += $o_unit[ 'u'.$i ]; - } - - $troops_o += $o_unit['hero']; - } - - self::$oasisTroopsCountCache[$vref] = $troops_o; - return self::$oasisTroopsCountCache[$vref]; - } - - /** - * Calculates the distance from a village to another - * - * @param int $coorx1 X coordinate of the first village - * @param int $coory1 Y coordinate of the second village - * @param int $coorx2 X coordinate of the first village - * @param int $coory2 Y coordinate of the second village - * @return int Returns the calculated distance - */ - - public function getDistance($coorx1, $coory1, $coorx2, $coory2) { - $max = 2 * WORLD_MAX + 1; - $x1 = intval($coorx1); - $y1 = intval($coory1); - $x2 = intval($coorx2); - $y2 = intval($coory2); - $distanceX = min(abs($x2 - $x1), abs($max - abs($x2 - $x1))); - $distanceY = min(abs($y2 - $y1), abs($max - abs($y2 - $y1))); - return round(sqrt(pow($distanceX, 2) + pow($distanceY, 2)), 1); - } - - public function canConquerOasis($vref, $wref, $use_cache = true) { - list($vref,$wref) = $this->escape_input($vref,$wref); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$oasisConquerableCache, $vref.$wref)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $AttackerFields = $this->getResourceLevel( $vref, $use_cache ); - for ( $i = 19; $i <= 38; $i ++ ) { - if ( $AttackerFields[ 'f' . $i . 't' ] == 37 ) { - $HeroMansionLevel = $AttackerFields[ 'f' . $i ]; - } - } - if ( $this->VillageOasisCount( $vref ) < floor( ( $HeroMansionLevel - 5 ) / 5 ) ) { - $OasisInfo = $this->getOasisInfo( $wref ); - //fix by ronix - if ( - $OasisInfo['conqured'] == 0 || - $OasisInfo['conqured'] != 0 && - intval( $OasisInfo['loyalty'] ) < ( 99 / min(3, (4 - $this->VillageOasisCount($OasisInfo['conqured'], $use_cache))) ) - ) { - $CoordsVillage = $this->getCoor( $vref ); - $CoordsOasis = $this->getCoor( $wref ); - $max = 2 * WORLD_MAX + 1; - $x1 = intval( $CoordsOasis['x'] ); - $y1 = intval( $CoordsOasis['y'] ); - $x2 = intval( $CoordsVillage['x'] ); - $y2 = intval( $CoordsVillage['y'] ); - $distanceX = min( abs( $x2 - $x1 ), abs( $max - abs( $x2 - $x1 ) ) ); - $distanceY = min( abs( $y2 - $y1 ), abs( $max - abs( $y2 - $y1 ) ) ); - - if ( $distanceX <= 3 && $distanceY <= 3 ) { - self::$oasisConquerableCache[ $vref . $wref ] = 1; //can - } else { - self::$oasisConquerableCache[ $vref . $wref ] = 2; //can but not in 7x7 field - } - - } else { - self::$oasisConquerableCache[ $vref . $wref ] = 3; //loyalty >0 - } - - } else { - self::$oasisConquerableCache[ $vref . $wref ] = 0; //req level hero mansion - } - - return self::$oasisConquerableCache[ $vref . $wref ]; - } - - public function conquerOasis($vref,$wref) { - list($wref) = $this->escape_input((int) $wref); - - $vinfo = $this->getVillage($vref); - $uid = (int) $vinfo['owner']; - $q = "UPDATE `".TB_PREFIX."odata` SET conqured=".(int) $vref. ",loyalty=100,lastupdated=".time().",owner=$uid,name='Occupied Oasis' WHERE wref=".$wref; - return mysqli_query($this->dblink,$q); - } - - public function modifyOasisLoyalty($wref) { - list($wref) = $this->escape_input((int) $wref); - - if($this->isVillageOases($wref) != 0) { - $OasisInfo = $this->getOasisInfo($wref); - if($OasisInfo['conqured'] != 0) { - $LoyaltyAmendment = floor(100 / min(3,(4-$this->VillageOasisCount($OasisInfo['conqured'])))); - $q = "UPDATE `".TB_PREFIX."odata` SET loyalty=loyalty-$LoyaltyAmendment, lastupdated=".time()." WHERE wref=".$wref; - $result=mysqli_query($this->dblink,$q); - return $OasisInfo['loyalty']-$LoyaltyAmendment; - } - } - } - - function regenerateOasisUnits($wid, $automation = false) { - global $autoprefix; - - if (is_array($wid)) $wid = '(' . implode('),(', $wid) . ')'; - else $wid = '(' . (int) $wid . ')'; - - // load the oasis regeneration (in-game) and units generation (during install) SQL file - // and replace village IDs for the given $wid - $str = file_get_contents($autoprefix."var/db/datagen-oasis-troops-regen.sql"); - $str = preg_replace(["'%PREFIX%'", "'%VILLAGEID%'", "'%NATURE_REG_TIME%'"], [TB_PREFIX, $wid, ($automation ? NATURE_REGTIME : -1)], $str); - $result = $this->dblink->multi_query($str); - - // fetch results of the multi-query in order to allow subsequent query() and multi_query() calls to work - while (mysqli_more_results($this->dblink) && mysqli_next_result($this->dblink)) {;} - - if (!$result) return false; - - return true; - } - - /** - * Remove all oasis of a specified village if the mode is 1, if it's 0, then it'll remove only the selected oasis - * - * @param mixed $wref The village ID(s) (mode = 1)/oasis ID (mode = 0) of the oasis owner - * @return bool Returns true if the query was successful, false otherwise - */ - - function removeOases($wref, $mode = 0) { - list($wref) = $this->escape_input((int) $wref); - - if(!is_array($wref)) $wref = [$wref]; - $wrefs = implode(",", $wref); - - $q = "UPDATE ".TB_PREFIX."odata SET conqured = 0, owner = 2, name = 'Unoccupied Oasis' WHERE ".(!$mode ? "wref IN($wrefs)" : "conqured IN($wrefs)"); - return mysqli_query($this->dblink,$q); - } - - /*************************** - Function to retrieve type of village via ID - References: Village ID - ***************************/ - function getVillageType($wref, $use_cache = true) { - // retrieve this value from the full village data cache - return $this->getVillageByWorldID($wref, $use_cache)['fieldtype']; - } - - /***************************************** - Function to retrieve if is occupied via ID - References: Village ID - *****************************************/ - function getVillageState($wref, $use_cache = true) { - // retrieve this value from the full village data cache - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$villageFieldsCacheByWorldID, $wref)) && !is_null($cachedValue)) { - return ($cachedValue['occupied'] != 0 || $cachedValue['oasistype'] != 0); - } else { - $vil = $this->getVillageByWorldID($wref, $use_cache); - return ($vil['occupied'] != 0 || $vil['oasistype'] != 0); - } - } - - /** - * Get the first free village, if there's one - * - * @param array $wids The village IDs - * @return int Returns the wid of the first free village, if they're all taken, returns 0 - */ - - function getFreeVillage($wids){ - list($wids) = $this->escape_input($wids); - - if(!is_array($wids)) $wids = [$wids]; - - $q = "SELECT id FROM ".TB_PREFIX."wdata WHERE id IN(".implode(",", $wids).") AND occupied = 0 AND oasistype = 0 LIMIT 1"; - $result = mysqli_query($this->dblink, $q); - return mysqli_num_rows($result) > 0 ? mysqli_fetch_array($result)[0] : 0; - } - - // no need to refactor this method - function getProfileMedal($uid) { - list($uid) = $this->escape_input((int) $uid); - - $q = "SELECT id,categorie,plaats,week,img,points from " . TB_PREFIX . "medal where userid = $uid and del = 0 order by id desc"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - - } - - // no need to refactor this method - function getProfileMedalAlly($uid) { - list($uid) = $this->escape_input((int) $uid); - - $q = "SELECT id,categorie,plaats,week,img,points from " . TB_PREFIX . "allimedal where allyid = $uid and del = 0 order by id desc"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - - } - - function getVillageID($uid, $use_cache = true) { - // load cached value - return $this->getVillagesID($uid, $use_cache)[0]; - } - - function getVillagesID($uid, $use_cache = true) { - list($uid) = $this->escape_input((int) $uid); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$villageIDsCache, $uid)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $array = $this->getProfileVillages($uid, 0, $use_cache); - $newarray = array(); - - for($i = 0; $i < count($array); $i++) { - array_push($newarray, $array[$i]['wref']); - } - - self::$villageIDsCache[$uid] = $newarray; - return self::$villageIDsCache[$uid]; - } - - function getVillagesID2($uid, $use_cache = true) { - list($uid) = $this->escape_input((int) $uid); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$villageIDsCacheSimple, $uid)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $array = $this->getProfileVillages($uid, 0, $use_cache); - self::$villageIDsCacheSimple[$uid] = $array; - - return self::$villageIDsCacheSimple[$uid]; - } - - function findAlreadyCachedVillageData($vid, $mode) { - // check if we don't actually have this data cached already in one of the other modes - for ($i = 0; $i <= 4; $i++) { - if ($mode !== $i && isset(self::$villageFieldsCache[$vid.$i])) { - // loop through cached values - foreach (self::$villageFieldsCache[$vid.$i] as $index => $value) { - // check for existing record with our requested ID/name/owner... - switch ($mode) { - case 0: if ($value['wref'] == $vid) { - return $value; - } - break; - - case 1: if ($value['name'] == $vid) { - return $value; - } - break; - - case 2: if ($value['owner'] == $vid) { - return $value; - } - break; - - case 3: if ((isset($value['owner']) && isset($value['capital'])) && $value['owner'] == $vid && $value['capital'] == 1) { - return $value; - } - break; - - case 4: if ($value['owner'] == 4) { - return $value; - } - break; - } - } - } - } - - return false; - } - - function getVillage($vid, $mode = 0, $use_cache = true) { - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$villageFieldsCache, ((int) $vid).$mode)) && !is_null($cachedValue)) { - return $cachedValue; - } - - if ($use_cache && ($altCachedContentSearch = $this->findAlreadyCachedVillageData($vid, $mode))) { - return $altCachedContentSearch; - } - - switch ($mode) { - // by WREF - case 0: $vid = (int) $vid; - $q = "SELECT * FROM " . TB_PREFIX . "vdata WHERE wref = $vid LIMIT 1"; - break; - - // by name - case 1: $name = $this->escape($vid); - $q = "SELECT * FROM " . TB_PREFIX . "vdata WHERE `name` = '$name' LIMIT 1"; - break; - - // by owner ID - case 2: $vid = (int) $vid; - $q = "SELECT * FROM " . TB_PREFIX . "vdata WHERE owner = $vid LIMIT 1"; - break; - - // by owner ID and capital = 1 - case 3: $vid = (int) $vid; - $q = "SELECT * FROM " . TB_PREFIX . "vdata WHERE owner = $vid AND capital = 1 LIMIT 1"; - break; - - // by owner = Taskmaster - case 4: $vid = (int) $vid; - $q = "SELECT * FROM " . TB_PREFIX . "vdata WHERE owner = 4 LIMIT 1"; - break; - } - - $result = mysqli_query($this->dblink,$q); - - self::$villageFieldsCache[$vid.$mode] = mysqli_fetch_array($result, MYSQLI_ASSOC); - return self::$villageFieldsCache[$vid.$mode]; - } - - function getProfileVillages($uid, $mode = 0, $use_cache = true) { - $arrayPassed = is_array($uid); - - if (!$arrayPassed) { - $uid = [(int) $uid]; - } else { - foreach ($uid as $index => $uidValue) { - $uid[$index] = (int) $uidValue; - } - } - - if (!count($uid)) { - return []; - } - - // first of all, check if we should be using cache - if ($use_cache && !$arrayPassed && ($cachedValue = self::returnCachedContent(self::$userVillagesCache, $uid[0].$mode)) && !is_null($cachedValue)) { - return $cachedValue; - } - - // if we've given a number of villages to preload, remove those that already are - if ($use_cache && $arrayPassed) { - $newIDs = []; - foreach ($uid as $id) { - if (!isset(self::$userVillagesCache[$id.$mode])) { - $newIDs[] = $id; - } - } - $uid = $newIDs; - } - - // nothing left to cache, return the full cache - if (!count($uid)) { - return self::$userVillagesCache; - } - - switch ($mode) { - // by owner ID - case 0: $q = "SELECT * FROM " . TB_PREFIX . "vdata WHERE owner IN(".implode(', ', $uid).") ORDER BY capital DESC,pop DESC"; - break; - - // capital villages where owner is a real player (i.e. not Natars etc.) - case 1: $q = "SELECT * FROM " . TB_PREFIX . "vdata WHERE capital = 1 and owner > 5"; - break; - - // villages with starvation data - case 2: $q = "SELECT * FROM " . TB_PREFIX . "vdata WHERE starv != 0 and owner != 3"; - break; - - // field distance calculator query - case 3: $q = "SELECT * FROM " . TB_PREFIX . "vdata WHERE owner > 4 and wref != ".$uid[0]; - break; - - // villages in need of celebration data update - case 4: $q = "SELECT * FROM " . TB_PREFIX . "vdata WHERE celebration < ".$uid[0]." AND celebration != 0"; - break; - - // by vref ID - case 5: $q = "SELECT * FROM " . TB_PREFIX . "vdata WHERE wref IN(".implode(', ', $uid).")"; - break; - - // by loyalty updates required - case 6: $q = "SELECT * FROM " . TB_PREFIX . "vdata WHERE loyalty < 100"; - break; - - // villages without starvation data, Support, Nature, Natars, Taskmaster, Multihunter are all excluded - case 7: $q = "SELECT * FROM " . TB_PREFIX . "vdata WHERE starv = 0 and owner > 5"; - break; - } - - $result = mysqli_query($this->dblink,$q); - - if (!$arrayPassed) { - $result = $this->mysqli_fetch_all($result); - self::$userVillagesCache[ $uid[0].$mode ] = $result; - - // cache each village individually into the fields cache as well - foreach ($result as $v) { - $amode = 0; - self::$villageFieldsCache[((int) $v['wref']).$amode] = $v; - } - } else { - // we're preloading, cache all the data individually - if (mysqli_num_rows($result)) { - $amode = 0; - while ( $row = mysqli_fetch_array( $result, MYSQLI_ASSOC ) ) { - if ( ! isset( self::$userVillagesCache[ $row['owner'].$mode ] ) ) { - self::$userVillagesCache[ $row['owner'].$mode ] = []; - } - - self::$userVillagesCache[ $row['owner'].$mode ][] = $row; - self::$villageFieldsCache[((int) $row['wref']).$amode] = $row; - } - - // just return the full cache if we've given an array of IDs to load villages for - $result = self::$userVillagesCache; - } - } - - return $result; - } - - function cacheVillageByWorldIDs($uid, $mode = 0) { - if (!is_array($uid)) { - $uid = [(int) $uid]; - } else { - foreach ($uid as $index => $uidValue) { - $uid[$index] = (int) $uidValue; - } - } - - $result = mysqli_query($this->dblink, " - SELECT - * - FROM - " . TB_PREFIX . "wdata as wdata - LEFT JOIN " . TB_PREFIX . "vdata as vdata ON wdata.id = vdata.wref - WHERE vdata.owner IN(".implode('', $uid).")" - ); - - if (mysqli_num_rows($result)) { - $result = $this->mysqli_fetch_all($result); - - $amode = 0; - foreach ($result as $row) { - self::$villageFieldsCacheByWorldID[$row['id']] = $row; - - // cache village fields by wref as well, for future use - if (!isset(self::$villageFieldsCache[((int) $row['wref']).$amode])) { - self::$villageFieldsCache[ ( (int) $row['wref'] ) . $amode ] = $row; - } - } - } - } - - function getVillageByWorldID($vid, $use_cache = true) { - $array_passed = is_array($vid); - - if (!$array_passed) { - $vid = [(int) $vid]; - } else { - foreach ($vid as $index => $ivdValue) { - $vid[$index] = (int) $ivdValue; - } - } - - if (!count($vid)) { - return []; - } - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && !$array_passed && isset(self::$villageFieldsCacheByWorldID[$vid[0]]) && is_array(self::$villageFieldsCacheByWorldID[$vid[0]]) && !count(self::$villageFieldsCacheByWorldID[$vid[0]])) { - return self::$villageFieldsCacheByWorldID[$vid[0]]; - } else if ($use_cache && $array_passed) { - // check what we can return from cache - $newVIDs = []; - foreach ($vid as $key) { - if (!isset(self::$villageFieldsCacheByWorldID[$key])) { - $newVIDs [] = $key; - } - } - - // everything's cached, just return the cache - if (!count($newVIDs)) { - return self::$villageFieldsCacheByWorldID; - } else { - // update remaining IDs to select and cache - $vid = $newVIDs; - } - } else if ($use_cache && !$array_passed && ($cachedValue = self::returnCachedContent(self::$villageFieldsCacheByWorldID, $vid[0])) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT * FROM " . TB_PREFIX . "wdata where id IN(".implode(', ', $vid).")"; - $result = $this->mysqli_fetch_all(mysqli_query($this->dblink,$q)); - - // return a single value - if (!$array_passed) { - self::$villageFieldsCacheByWorldID[$vid[0]] = $result[0]; - } else { - if ($result && count($result)) { - foreach ( $result as $record ) { - self::$villageFieldsCacheByWorldID[$record['id']] = $record; - } - } - - // check for any missing IDs and fill them in with blanks, - // since no reinforcements were found for these villages - foreach ($vid as $key) { - if (!isset(self::$villageFieldsCacheByWorldID[$key])) { - self::$villageFieldsCacheByWorldID[$key] = []; - } - } - } - - return ($array_passed ? self::$villageFieldsCacheByWorldID : self::$villageFieldsCacheByWorldID[$vid[0]]); - } - - public function getVillageBattleData($vid, $use_cache = true) { - list($vid) = $this->escape_input((int) $vid); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$villageBattleDataCache, $vid)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT u.id,u.tribe,v.capital,f.f40 AS wall FROM ".TB_PREFIX."users u,".TB_PREFIX."fdata f,".TB_PREFIX."vdata v WHERE u.id=v.owner AND f.vref=v.wref AND v.wref=".$vid." LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - - self::$villageBattleDataCache[$vid] = mysqli_fetch_array($result, MYSQLI_ASSOC); - return self::$villageBattleDataCache[$vid]; - } - - function getOasisV($vid, $use_cache = true) { - list($vid) = $this->escape_input((int) $vid); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$oasisFieldsCache, $vid)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT * FROM " . TB_PREFIX . "odata where wref = $vid LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - - self::$oasisFieldsCache[$vid] = mysqli_fetch_array($result, MYSQLI_ASSOC); - return self::$oasisFieldsCache[$vid]; - } - - function getMInfo($id, $use_cache = true) { - list($id) = $this->escape_input((int) $id); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$worldAndVillageDataCache, $id)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT * FROM " . TB_PREFIX . "wdata left JOIN " . TB_PREFIX . "vdata ON " . TB_PREFIX . "vdata.wref = " . TB_PREFIX . "wdata.id where " . TB_PREFIX . "wdata.id = $id LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - - self::$worldAndVillageDataCache[$id] = mysqli_fetch_array($result); - return self::$worldAndVillageDataCache[$id]; - } - - function getOMInfo($id, $use_cache = true) { - list($id) = $this->escape_input((int) $id); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$worldAndOasisDataCache, $id)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT * FROM " . TB_PREFIX . "wdata left JOIN " . TB_PREFIX . "odata ON " . TB_PREFIX . "odata.wref = " . TB_PREFIX . "wdata.id where " . TB_PREFIX . "wdata.id = $id LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - - self::$worldAndOasisDataCache[$id] = mysqli_fetch_array($result); - return self::$worldAndOasisDataCache[$id]; - } - - function getOasis($vid, $use_cache = true) { - list($vid) = $this->escape_input((int) $vid); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$oasisFieldsCacheByConqueredID, $vid)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT * FROM " . TB_PREFIX . "odata where conqured = $vid"; - $result = mysqli_query($this->dblink,$q); - - self::$oasisFieldsCacheByConqueredID[$vid] = $this->mysqli_fetch_all($result); - return self::$oasisFieldsCacheByConqueredID[$vid]; - } - - function getOasisInfo($wid, $use_cache = true) { - return $this->getOasisV($wid, $use_cache); - } - - function getVillageField($ref, $field, $use_cache = true) { - // return all data, don't waste time by selecting fields one by one - $villageArray = $this->getVillage($ref, 0, $use_cache); - $result = (isset($villageArray[$field]) ? $villageArray[$field] : null); - - if($result){ - // will return the result - }elseif($field=="name"){ - $result = "[?]"; - }else $result = 0; - - return $result; - - /*list($ref, $field) = $this->escape_input((int) $ref, $field); - - $q = "SELECT $field FROM " . TB_PREFIX . "vdata where wref = $ref"; - $result = mysqli_query($this->dblink,$q); - if($result){ - $dbarray = mysqli_fetch_array($result); - return $dbarray[$field]; - }elseif($field=="name"){ - return "??"; - }else return 0;*/ - } - - function getVillageFields($ref, $fields, $use_cache = true) { - // return all data, don't waste time by selecting fields one by one - return $this->getVillage($ref, 0, $use_cache); - - /*list($ref, $field) = $this->escape_input((int) $ref, $fields); - - $q = "SELECT $field FROM " . TB_PREFIX . "vdata where wref = $ref"; - $result = mysqli_query($this->dblink,$q); - if($result) { - return mysqli_fetch_array($result, MYSQLI_ASSOC); - } else return 0;*/ - } - - function getOasisField($ref, $field, $use_cache = true) { - // return all data, don't waste time by selecting fields one by one - $oasisArray = $this->getOasisV($ref, $use_cache); - return (isset($oasisArray[$field]) ? $oasisArray[$field] : null); - } - - function getOasisFields($ref, $use_cache = true) { - // return all data, don't waste time by selecting fields one by one - return $this->getOasisV($ref, $use_cache); - - /*list($ref, $fields) = $this->escape_input((int) $ref, $fields); - - $q = "SELECT $fields FROM " . TB_PREFIX . "odata where wref = $ref"; - return mysqli_fetch_array(mysqli_query($this->dblink,$q), MYSQLI_ASSOC);*/ - } - - function setVillageField($ref, $field, $value) { - if (!is_array($field)) { - $field = [$field]; - $value = [$value]; - } - - $pairs = []; - foreach ($field as $index => $fieldValue) { - $newValue = ((Math::isInt($value[$index]) || Math::isFloat($value[$index])) ? $value[$index] : '"'.$this->escape($value[$index]).'"'); - $pairs[] = $this->escape($fieldValue).' = '.$newValue; - - // update cache - if (isset(self::$villageFieldsCache[$ref])) { - self::$villageFieldsCache[$ref][$fieldValue] = $newValue; - } - } - - $q = "UPDATE " . TB_PREFIX . "vdata SET ".implode(', ', $pairs)." WHERE wref = ".(int) $ref; - return mysqli_query($this->dblink,$q); - } - - function setVillageFields($ref, $fields, $values) { - list($ref, $fields, $values) = $this->escape_input((int) $ref, $fields, $values); - - if (!count($fields)) { - return; - } - - // build the field-value query parts - $fieldValues = []; - foreach ($fields as $id => $fieldName) { - $fieldValues[] = $this->escape($fieldName).' = '.((Math::isInt($values[$id]) || Math::isFloat($values[$id])) ? $values[$id] : '"'.$this->escape($values[$id]).'"'); - } - - $q = "UPDATE " . TB_PREFIX . "vdata set ".implode(', ', $fieldValues)." where wref = $ref"; - return mysqli_query($this->dblink,$q); - } - - function setVillageLevel($ref, $fields, $values) { - list($ref, $fields, $values) = $this->escape_input((int) $ref, $fields, $values); - - // build the field-value query parts - $fieldValues = []; - - if (!is_array($fields)) { - $fields = [$fields]; - $values = [$values]; - } - - foreach ($fields as $id => $fieldName) { - $fieldValues[] = $this->escape($fieldName).' = '.((Math::isInt($values[$id]) || Math::isFloat($values[$id])) ? $values[$id] : '"'.$this->escape($values[$id]).'"'); - } - - $q = "UPDATE " . TB_PREFIX . "fdata set ".implode(', ', $fieldValues)." where vref = " . $ref; - return mysqli_query($this->dblink,$q); - } - - function cacheResourceLevels($vids) { - if (!is_array($vids)) { - $vids = [$vids]; - } - - $newVids = []; - foreach ($vids as $index => $vidValue) { - $vids[ $index ] = (int) $vidValue; - - // don't cache what's cached - if (!isset(self::$resourceLevelsCache[$vids[ $index ]])) { - $newVids[] = $vids[ $index ]; - } - } - $vids = $newVids; - - if (!count($vids)) { - return []; - } - - $q = "SELECT * FROM " . TB_PREFIX . "fdata WHERE vref IN(".implode(', ', $vids).")"; - $result = mysqli_query($this->dblink,$q); - - foreach ( $this->mysqli_fetch_all( $result ) as $row ) { - self::$resourceLevelsCache[ $row['vref'] ] = $row; - } - - return self::$resourceLevelsCache; - } - - function getResourceLevel($vid, $use_cache = true) { - list($vid) = $this->escape_input((int) $vid); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$resourceLevelsCache, $vid)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT * from " . TB_PREFIX . "fdata where vref = $vid"; - $result = mysqli_query($this->dblink,$q); - - self::$resourceLevelsCache[$vid] = mysqli_fetch_assoc($result); - return self::$resourceLevelsCache[$vid]; - } - - public static function clearResourseLevelsCache() { - self::$resourceLevelsCache = []; - self::$fieldLevelsInVillageSearchCache = []; - self::$fieldLevelsCache = []; - } - - function getAdminLog() { - $q = "SELECT id,user,log,time from " . TB_PREFIX . "admin_log where id != 0 ORDER BY id DESC"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - //fix market log - function getMarketLog() { - $q = "SELECT id,wid,log from " . TB_PREFIX . "market_log where id != 0 ORDER BY id ASC"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - function getMarketLogVillage($village) { - list($village) = $this->escape_input((int) $village); - - $q = "SELECT wref,owner,name from " . TB_PREFIX . "vdata where wref =$village "; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - function getMarketLogUsers($id_user) { - list($id_user) = $this->escape_input((int) $id_user); - - $q = "SELECT id,username from " . TB_PREFIX . "users where id = $id_user "; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - //end fix - - function getCoor($wref, $use_cache = true) { - // retirieve form cache - return $this->getVillageByWorldID($wref, $use_cache); - } - - /** - * Get shared forums (and confederation forums), based on user ID and alliance ID - * - * @param int $uid The user ID - * @param int $alliance The alliance ID - * @return array Returns all user's shared forums - */ - - function getSharedForums($uid, $alliance){ - list($uid, $alliance) = $this->escape_input((int) $uid, (int) $alliance); - - $allianceForums = $confForums = $closedForums = []; - - $q = "SELECT * FROM - ".TB_PREFIX."forum_cat - WHERE - display_to_alliances - LIKE - '%,$alliance,%' - OR - display_to_alliances - LIKE - '%,$alliance%' - OR - display_to_alliances - LIKE - '%$alliance,%' - OR - display_to_alliances - = - '$alliance' - OR - display_to_users - LIKE - '%,$uid,%' - OR - display_to_users - LIKE - '%,$uid%' - OR - display_to_users - LIKE - '%$uid,%' - OR - display_to_users - = - '$uid' - "; - $result = mysqli_query($this->dblink, $q); - if(!empty($result)){ - while($row = mysqli_fetch_assoc($result)) { - switch($row['forum_area']){ - case 0: $allianceForums[] = $row; break; - case 2: $confForums[] = $row; break; - case 3: $closedForums[] = $row; break; - } - } - } - - //Get the alliance confederation forums - if($alliance > 0){ - $confederations = $this->diplomacyExistingRelationships($alliance); - if(!empty($confederations)){ - foreach($confederations as $confederation){ - if($confederation['type'] == 1){ - $confederationForums = $this->ForumCat($confederation['alli1'] == $alliance ? $confederation['alli2'] : $confederation['alli1'], 1); - if(!empty($confederationForums)){ - foreach($confederationForums as $forum){ - if($forum['forum_area'] == 2) $confForums[] = $forum; - } - } - } - } - } - } - - return ['alliance' => $allianceForums, 'confederation' => $confForums, 'closed' => $closedForums]; - } - - /** - * Get the total amount of the wanted forum, based on alliance and the forum area - * - * @param int $forumArea The forum Area 0 = alliance, 1 = public, 2 = confederation, 3 = closed - * @param int $ally The alliance ID - * @return int Returns the total amount of the wanted forum - */ - - function countForums($forumArea, $ally){ - list($forumArea, $ally) = $this->escape_input((int) $forumArea, (int) $ally); - - $q = "SELECT Count(*) as Total FROM ".TB_PREFIX."forum_cat WHERE ".($ally != -1 ? "alliance = $ally AND" : "")." forum_area = $forumArea"; - $result = mysqli_fetch_array(mysqli_query($this->dblink, $q), MYSQLI_ASSOC ); - return $result['Total']; - } - - // no need to refactor this method - function CheckForum($id) { - list($id) = $this->escape_input((int) $id); - - $q = "SELECT Count(*) as Total FROM " . TB_PREFIX . "forum_cat where alliance = $id"; - $result = mysqli_fetch_array(mysqli_query($this->dblink, $q), MYSQLI_ASSOC); - return $result['Total'] > 0; - } - - // no need to refactor this method - function CountCat($id) { - list($id) = $this->escape_input($id); - - $q = "SELECT count(id) FROM " . TB_PREFIX . "forum_topic where cat = '$id'"; - $result = mysqli_query($this->dblink,$q); - $row = mysqli_fetch_row($result); - return $row[0]; - } - - // no need to refactor this method - function LastTopic($id) { - list($id) = $this->escape_input($id); - - $q = "SELECT * from " . TB_PREFIX . "forum_topic where cat = '$id' order by post_date"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - function CheckLastTopic($id, $use_cache = true) { - list($id) = $this->escape_input($id); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$lastTopicCheckCache, $id)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT Count(*) as Total from " . TB_PREFIX . "forum_topic where cat = $id"; - $result = mysqli_fetch_array(mysqli_query($this->dblink,$q), MYSQLI_ASSOC); - if($result['Total']) { - self::$lastTopicCheckCache[$id] = true; - } else { - self::$lastTopicCheckCache[$id] = false; - } - - return self::$lastTopicCheckCache[$id]; - } - - function CheckLastPost($id, $use_cache = true) { - list($id) = $this->escape_input($id); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$lastPostForTopicCheckCache, $id)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT Count(*) as Total from " . TB_PREFIX . "forum_post where topic = $id"; - $result = mysqli_fetch_array(mysqli_query($this->dblink,$q), MYSQLI_ASSOC); - if ($result['Total']) { - self::$lastPostForTopicCheckCache[$id] = true; - } else { - self::$lastPostForTopicCheckCache[$id] = false; - } - - return self::$lastPostForTopicCheckCache[$id]; - } - - function LastPost($id, $use_cache = true) { - list($id) = $this->escape_input($id); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$lastPostForTopicCache, $id)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT * from " . TB_PREFIX . "forum_post where topic = '$id'"; - $result = mysqli_query($this->dblink,$q); - - self::$lastPostForTopicCache[$id] = $this->mysqli_fetch_all($result); - return self::$lastPostForTopicCache[$id]; - } - - function CountTopic($id, $use_cache = true) { - list($id) = $this->escape_input($id); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$topicCountCache, $id)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT count(id) FROM " . TB_PREFIX . "forum_post where owner = '$id'"; - $result = mysqli_query($this->dblink,$q); - $row = mysqli_fetch_row($result); - - $qs = "SELECT count(id) FROM " . TB_PREFIX . "forum_topic where owner = '$id'"; - $results = mysqli_query($this->dblink,$qs); - $rows = mysqli_fetch_row($results); - - self::$topicCountCache[$id] = $row[0] + $rows[0]; - return self::$topicCountCache[$id]; - } - - // no need to cache this method - function CountPost($id) { - list($id) = $this->escape_input($id); - - $q = "SELECT count(id) FROM " . TB_PREFIX . "forum_post where topic = '$id'"; - $result = mysqli_query($this->dblink,$q); - $row = mysqli_fetch_row($result); - return $row[0]; - } - - // no need to cache this method - function ForumCat($id, $mode = 0) { - list($id, $mode) = $this->escape_input($id, $mode); - - $q = "SELECT * from " . TB_PREFIX . "forum_cat where alliance = '$id' ".(!$mode ? "OR forum_area = 1" : "")." ORDER BY sorting DESC, id"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - // no need to cache this method - function ForumCatEdit($id) { - list($id) = $this->escape_input($id); - - $q = "SELECT * from " . TB_PREFIX . "forum_cat where id = '$id'"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - // no need to cache this method - function ForumCatAlliance($id) { - list($id) = $this->escape_input($id); - - $q = "SELECT alliance from " . TB_PREFIX . "forum_cat where id = $id LIMIT 1"; - $result = mysqli_query($this->dblink, $q); - $dbarray = mysqli_fetch_array($result); - return $dbarray['alliance']; - } - - // no need to cache this method - function ForumCatName($id) { - list($id) = $this->escape_input($id); - - $q = "SELECT forum_name from " . TB_PREFIX . "forum_cat where id = $id LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - return $dbarray['forum_name']; - } - - // no need to cache this method - function CheckCatTopic($id) { - list($id) = $this->escape_input($id); - - $q = "SELECT Count(*) as Total from " . TB_PREFIX . "forum_topic where cat = $id"; - $result = mysqli_fetch_array(mysqli_query($this->dblink,$q), MYSQLI_ASSOC); - return $result['Total'] > 0; - } - - // no need to cache this method - function CheckResultEdit($alli) { - list($alli) = $this->escape_input($alli); - - $q = "SELECT Count(*) as Total from " . TB_PREFIX . "forum_edit where alliance = $alli"; - $result = mysqli_fetch_array(mysqli_query($this->dblink,$q), MYSQLI_ASSOC); - return $result['Total'] > 0; - } - - // no need to cache this method - function CheckCloseTopic($id) { - list($id) = $this->escape_input((int) $id); - - $q = "SELECT close from " . TB_PREFIX . "forum_topic where id = '$id' LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - return $dbarray['close']; - } - - function CheckEditRes($alli, $use_cache = true) { - list($alli) = $this->escape_input($alli); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$editResultsCache, $alli)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT result from " . TB_PREFIX . "forum_edit where alliance = '$alli' LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - - self::$editResultsCache[$alli] = $dbarray['result']; - return self::$editResultsCache[$alli]; - } - - function CreatResultEdit($alli, $result) { - list($alli, $result) = $this->escape_input($alli, $result); - - $q = "INSERT into " . TB_PREFIX . "forum_edit values (0,'$alli','$result')"; - mysqli_query($this->dblink,$q); - return mysqli_insert_id($this->dblink); - } - - function UpdateResultEdit($alli, $result) { - list($alli, $result) = $this->escape_input($alli, $result); - - $date = time(); - $q = "UPDATE " . TB_PREFIX . "forum_edit set result = '$result' where alliance = '$alli'"; - return mysqli_query($this->dblink,$q); - } - - function getVillageType2($wref) { - // retirieve form cache - return $this->getVillageByWorldID($wref, $use_cache)['oasistype']; - } - - // no need to cache this method - function checkVilExist($wref) { - list($wref) = $this->escape_input((int) $wref); - - // first of all, check if this exists in our cache already - and if so, we don't need an extra query - $mode = 0; - if (isset(self::$villageFieldsCache[((int) $wref).$mode])) { - return true; - } - - $q = "SELECT Count(*) as Total FROM " . TB_PREFIX . "vdata where wref = '$wref'"; - $result = mysqli_fetch_array(mysqli_query($this->dblink,$q), MYSQLI_ASSOC); - - return $result['Total']; - } - - // no need to cache this method - function checkOasisExist($wref) { - list($wref) = $this->escape_input((int) $wref); - - $q = "SELECT Count(*) as Total FROM " . TB_PREFIX . "odata where wref = '$wref'"; - $result = mysqli_fetch_array(mysqli_query($this->dblink,$q), MYSQLI_ASSOC); - if($result['Total']) { - return true; - } else { - return false; - } - } - - function MoveForum($id, $area, $ally, $mode){ - list($id, $area, $ally, $mode) = $this->escape_input((int) $id, (int) $area, (int) $ally, $mode); - - $q = "UPDATE - ".TB_PREFIX."forum_cat - SET - sorting = (SELECT * FROM(SELECT ".(!$mode ? "MIN" : "MAX")."(sorting) FROM ".TB_PREFIX."forum_cat WHERE forum_area = $area ".($area != 1 ? "AND alliance = $ally" : "")." AND id != $id) f) ".(!$mode ? "-" : "+")." 1 - WHERE - id = $id"; - return mysqli_query($this->dblink, $q); - } - - function UpdateEditTopic($id, $title, $cat) { - list($id, $title, $cat) = $this->escape_input((int) $id, $title, $cat); - - $q = "UPDATE " . TB_PREFIX . "forum_topic set title = '$title', cat = '$cat' where id = $id"; - return mysqli_query($this->dblink,$q); - } - - function UpdateEditForum($id, $name, $des, $alliances, $users) { - list($id, $name, $des, $alliances, $users) = $this->escape_input((int) $id, $name, $des, $alliances, $users); - - $q = "UPDATE " . TB_PREFIX . "forum_cat SET forum_name = '$name', forum_des = '$des', display_to_alliances = '$alliances', display_to_users = '$users' WHERE id = $id"; - return mysqli_query($this->dblink,$q); - } - - function StickTopic($id, $mode) { - list($id, $mode) = $this->escape_input((int) $id, (int) $mode); - - $q = "UPDATE " . TB_PREFIX . "forum_topic SET stick = $mode WHERE id = $id"; - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - function ForumCatTopic($id) { - list($id) = $this->escape_input($id); - - $q = "SELECT * from " . TB_PREFIX . "forum_topic where cat = '$id' AND stick = '' ORDER BY post_date desc"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - // no need to cache this method - function ForumCatTopicStick($id) { - list($id) = $this->escape_input($id); - - $q = "SELECT * from " . TB_PREFIX . "forum_topic where cat = '$id' AND stick = '1' ORDER BY post_date desc"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - // no need to cache this method - function ShowTopic($id) { - list($id) = $this->escape_input((int) $id); - - $q = "SELECT * from " . TB_PREFIX . "forum_topic where id = $id"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - // no need to cache this method - function ShowPost($id) { - list($id) = $this->escape_input($id); - - $q = "SELECT * from " . TB_PREFIX . "forum_post where topic = '$id' ORDER BY id ASC"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - // no need to cache this method - function ShowPostEdit($id) { - list($id) = $this->escape_input((int) $id); - - $q = "SELECT * from " . TB_PREFIX . "forum_post where id = $id"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - function CreatForum($owner, $alli, $name, $des, $area, $alliances, $users) { - list($owner, $alli, $name, $des, $area, $alliances, $users) = $this->escape_input($owner, $alli, $name, $des, $area, $alliances, $users); - - $q = "INSERT into " . TB_PREFIX . "forum_cat values (0, 0,'$owner','$alli','$name','$des','$area','$alliances','$users')"; - mysqli_query($this->dblink,$q); - return mysqli_insert_id($this->dblink); - } - - function CreatTopic($title, $post, $cat, $owner, $alli, $ends) { - list($title, $post, $cat, $owner, $alli, $ends) = $this->escape_input($title, $post, (int) $cat, (int) $owner, (int) $alli, (int) $ends); - - $date = time(); - $q = "INSERT into " . TB_PREFIX . "forum_topic values (0,'$title','$post',$date, $date, $cat, $owner, $alli, $ends, 0, 0)"; - mysqli_query($this->dblink,$q); - return mysqli_insert_id($this->dblink); - } - - /************************* - FORUM SUREY - *************************/ - - function createSurvey($topic, $title, $option1, $option2, $option3, $option4, $option5, $option6, $option7, $option8, $ends) { - list($topic, $title, $option1, $option2, $option3, $option4, $option5, $option6, $option7, $option8, $ends) = $this->escape_input($topic, $title, $option1, $option2, $option3, $option4, $option5, $option6, $option7, $option8, $ends); - - $q = "INSERT into " . TB_PREFIX . "forum_survey (topic,title,option1,option2,option3,option4,option5,option6,option7,option8,ends) values ('$topic','$title','$option1','$option2','$option3','$option4','$option5','$option6','$option7','$option8','$ends')"; - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - function getSurvey($topic) { - list($topic) = $this->escape_input((int) $topic); - - $q = "SELECT * FROM " . TB_PREFIX . "forum_survey where topic = $topic LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - return mysqli_fetch_array($result); - } - - // no need to cache this method - function checkSurvey($topic) { - list($topic) = $this->escape_input((int) $topic); - - $q = "SELECT Count(*) as Total FROM " . TB_PREFIX . "forum_survey where topic = $topic"; - $result = mysqli_fetch_array( mysqli_query( $this->dblink, $q ), MYSQLI_ASSOC ); - - if ( $result['Total'] ) { - return true; - } else { - return false; - } - } - - function Vote($topic, $num, $text) { - list($topic, $num, $text) = $this->escape_input((int) $topic, (int) $num, $text); - - $q = "UPDATE " . TB_PREFIX . "forum_survey set vote".$num." = vote".$num." + 1, voted = '$text' where topic = ".$topic.""; - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - function checkVote($topic, $uid) { - list( $topic, $uid ) = $this->escape_input( (int) $topic, $uid ); - - $q = "SELECT voted FROM " . TB_PREFIX . "forum_survey where topic = $topic LIMIT 1"; - $result = mysqli_query( $this->dblink, $q ); - $array = mysqli_fetch_array( $result ); - $text = $array['voted']; - - if ( preg_match( '/,' . $uid . ',/', $text ) ) { - return true; - } else { - return false; - } - } - - // no need to cache this method - function getVoteSum($topic) { - list( $topic ) = $this->escape_input( (int) $topic ); - - $q = "SELECT * FROM " . TB_PREFIX . "forum_survey where topic = $topic LIMIT 1"; - $result = mysqli_query( $this->dblink, $q ); - $array = mysqli_fetch_array( $result ); - $sum = 0; - - for ( $i = 1; $i <= 8; $i ++ ) { - $sum += $array[ 'vote' . $i ]; - } - - return $sum; - } - - - /************************* - FORUM SUREY - *************************/ - - function CreatPost($post, $tids, $owner, $fid2 = 0) { - global $message, $session; - list($post, $tids, $owner, $fid2) = $this->escape_input($post, (int) $tids, $owner, (int) $fid2); - - $date = time(); - $q = "INSERT into " . TB_PREFIX . "forum_post values (0,'$post',$tids,'$owner','$date')"; - mysqli_query($this->dblink,$q); - $postID = mysqli_insert_id($this->dblink); - - // create a message notification for each person subscribed to this topic - // ... for now it's everyone who ever posted there, there is no real un/subscription yet - if(NEW_FUNCTIONS_FORUM_POST_MESSAGE){ - if ($fid2 !== 0) { - $q = "SELECT DISTINCT owner FROM ".TB_PREFIX . "forum_post WHERE topic = $tids"; - $result = mysqli_query($this->dblink, $q); - if ($result->num_rows) { - while ($row = mysqli_fetch_assoc($result)) { - if ($row['owner'] != $owner) { - $this->sendMessage( - (int) $row['owner'], - 4, - 'New Message in Forum', - "Hi!\n\n".$this->escape($session->username)." posted a new message into your common topic. Here\\'s a link that will get you there: forum link\n\nYours sincerely,\nServer Robot :)", - 0, - 0, - 0, - 0, - 0, - true); - } - } - } - } - } - return $postID; - } - - function UpdatePostDate($id) { - list($id) = $this->escape_input((int) $id); - - $date = time(); - $q = "UPDATE " . TB_PREFIX . "forum_topic set post_date = '$date' where id = $id"; - return mysqli_query($this->dblink,$q); - } - - function EditUpdateTopic($id, $post) { - list($id, $post) = $this->escape_input((int) $id, $post); - - $q = "UPDATE " . TB_PREFIX . "forum_topic set post = '$post' where id = $id"; - - return mysqli_query($this->dblink, $q); - } - - function EditUpdatePost($id, $post) { - list($id, $post) = $this->escape_input((int) $id, $post); - - $q = "UPDATE " . TB_PREFIX . "forum_post set post = '$post' where id = $id"; - return mysqli_query($this->dblink,$q); - } - - function LockTopic($id, $mode) { - list($id, $mode) = $this->escape_input((int) $id, $mode); - - $q = "UPDATE " . TB_PREFIX . "forum_topic set close = '$mode' where id = $id"; - return mysqli_query($this->dblink,$q); - } - - function DeleteCat($id) { - list($id) = $this->escape_input($id); - - $qs = "DELETE from " . TB_PREFIX . "forum_cat where id = '$id'"; - $q = "DELETE from " . TB_PREFIX . "forum_topic where cat = '$id'"; - $q2="SELECT id from ".TB_PREFIX."forum_topic where cat ='$id'"; - $result = mysqli_query($this->dblink,$q2); - if (!empty($result)) { - $array=$this->mysqli_fetch_all($result); - $toDelete = []; - foreach($array as $ss) { - $toDelete[] = $ss['id']; - } - $this->DeleteSurvey($toDelete); - } - mysqli_query($this->dblink,$qs); - return mysqli_query($this->dblink,$q); - } - - function DeleteSurvey($id) { - if (!is_array($id)) { - $id = [$id]; - } - - foreach ($id as $index => $idValue) { - $id[$index] = (int) $idValue; - } - - $qs = "DELETE from " . TB_PREFIX . "forum_survey where topic IN(".implode(', ', $id).")"; - return mysqli_query($this->dblink,$qs); - } - - function DeleteTopic($id) { - list($id) = $this->escape_input($id); - - $qs = "DELETE from " . TB_PREFIX . "forum_topic where id = '$id'"; - // $q = "DELETE from ".TB_PREFIX."forum_post where topic = '$id'";// - return mysqli_query($this->dblink,$qs); // - // mysqli_query($this->dblink,$q); - } - - function DeletePost($id) { - list($id) = $this->escape_input($id); - - $q = "DELETE from " . TB_PREFIX . "forum_post where id = '$id'"; - return mysqli_query($this->dblink,$q); - } - - function getAllianceName($id, $use_cache = true) { - // return from cache - return $this->getAlliance($id, $use_cache)['tag']; - } - - // no need to cache this method - function getAlliancePermission($ref, $field, $mode) { - list($ref, $field, $mode) = $this->escape_input($ref, $field, $mode); - - if(!$mode) { - $q = "SELECT $field FROM " . TB_PREFIX . "ali_permission where uid = ". (int) $ref . " LIMIT 1"; - } else { - $q = "SELECT $field FROM " . TB_PREFIX . "ali_permission where username = '$ref' LIMIT 1"; - } - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - return $dbarray[$field]; - } - - function getAlliance($id, $use_cache = true) { - $id = (int) $id; - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$allianceDataCache, $id)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT * from " . TB_PREFIX . "alidata where id = $id"; - $result = mysqli_query($this->dblink,$q); - - self::$allianceDataCache[$id] = mysqli_fetch_assoc($result); - return self::$allianceDataCache[$id]; - } - - function setAlliName($aid, $name, $tag) { - list($aid, $name, $tag) = $this->escape_input((int) $aid, $name, $tag); - - $q = "UPDATE " . TB_PREFIX . "alidata set name = '$name', tag = '$tag' where id = $aid"; - return mysqli_query($this->dblink,$q); - } - - function isAllianceOwner($id, $use_cache = true) { - $id = (int) $id; - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$allianceOwnerCheckCache, $id)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT id from " . TB_PREFIX . "alidata where leader = ". $id; - $result = mysqli_query($this->dblink,$q); - if(mysqli_num_rows($result)) { - $result = mysqli_fetch_assoc($result); - $result = $result['id']; - } - else $result = false; - - self::$allianceOwnerCheckCache[$id] = $result; - return self::$allianceOwnerCheckCache[$id]; - } - - function countAllianceMembers($aid, $use_cache = true) { - $aid = (int) $aid; - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$allianceMembersCountCache, $aid)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT Count(*) as Total from ".TB_PREFIX."users WHERE alliance = ".$aid; - $membersCount = $this->query_return($q); - - self::$allianceMembersCountCache[$aid] = $membersCount[0]['Total']; - return self::$allianceMembersCountCache[$aid]; - } - - // no need to cache this method - function aExist($ref, $type) { - list($ref, $type) = $this->escape_input($ref, $type); - - $q = "SELECT $type FROM " . TB_PREFIX . "alidata where $type = '$ref'"; - $result = mysqli_query($this->dblink,$q); - return mysqli_num_rows($result); - } - - function modifyPoints($aid, $points, $amt) { - $aid = (int) $aid; - - if (!is_array($points)) { - $points = [$points]; - $amt = [$amt]; - } - - $updates = []; - foreach ($points as $index => $value) { - $value = $this->escape($value); - $updates[] = $value.' = ' . $value . ' + ' . (int) $amt[$index]; - } - - $q = "UPDATE " . TB_PREFIX . "users SET ".implode(', ', $updates)." WHERE id = $aid"; - return mysqli_query($this->dblink,$q); - } - - function modifyPointsAlly($aid, $points, $amt) { - $aid = (int) $aid; - - if (!is_array($points)) { - $points = [$points]; - $amt = [$amt]; - } - - $updates = []; - foreach ($points as $index => $value) { - $value = $this->escape($value); - $updates[] = $value.' = ' . $value . ' + ' . (int) $amt[$index]; - } - - $q = "UPDATE " . TB_PREFIX . "alidata SET ".implode(', ', $updates)." WHERE id = $aid"; - return mysqli_query($this->dblink,$q); - } - - /***************************************** - Function to create an alliance - References: - *****************************************/ - function createAlliance($tag, $name, $uid, $max) { - list($tag, $name, $uid, $max) = $this->escape_input($tag, $name, (int) $uid, (int) $max); - - $q = "INSERT into " . TB_PREFIX . "alidata values (0,'$name','$tag',$uid,0,0,0,'','',$max,0,0,0,0,0,0,0,0,0)"; - mysqli_query($this->dblink,$q); - return mysqli_insert_id($this->dblink); - } - - function procAllyPop($aid) { - list($aid) = $this->escape_input($aid); - - $ally = $this->getAlliance($aid); - $memberlist = $this->getAllMember($ally['id']); - $oldrank = 0; - $memberIDs = []; - - foreach($memberlist as $member) { - $memberIDs[] = $member['id']; - } - - $data = $this->getVSumField($memberIDs,"pop"); - - if (count($data)) { - foreach ($data as $row) { - $oldrank += $row['Total']; - } - } - - if($ally['oldrank'] != $oldrank){ - if($ally['oldrank'] < $oldrank) { - $totalpoints = $oldrank - $ally['oldrank']; - $this->addclimberrankpopAlly($ally['id'], $totalpoints); - $this->updateoldrankAlly($ally['id'], $oldrank); - } else - if($ally['oldrank'] > $oldrank) { - $totalpoints = $ally['oldrank'] - $oldrank; - $this->removeclimberrankpopAlly($ally['id'], $totalpoints); - $this->updateoldrankAlly($ally['id'], $oldrank); - } - } - } - - /***************************************** - Function to insert an alliance new - References: - *****************************************/ - function insertAlliNotice($aid, $notice) { - list($aid, $notice) = $this->escape_input($aid, $notice); - - $time = time(); - $q = "INSERT into " . TB_PREFIX . "ali_log values (0,'$aid','$notice',$time)"; - mysqli_query($this->dblink,$q); - return mysqli_insert_id($this->dblink); - } - - /***************************************** - Function to delete alliance if empty - References: - *****************************************/ - function deleteAlliance($aid) { - list($aid) = $this->escape_input((int) $aid); - - $result = mysqli_fetch_array(mysqli_query($this->dblink,"SELECT Count(*) as Total FROM " . TB_PREFIX . "users where alliance = $aid"), MYSQLI_ASSOC); - if ($result['Total'] == 0) { - // remove the alliance - $q = "DELETE FROM " . TB_PREFIX . "alidata WHERE id = $aid"; - mysqli_query($this->dblink,$q); - - // remove all permissions for that alliance - $q = "DELETE FROM " . TB_PREFIX . "ali_permission WHERE alliance = $aid"; - mysqli_query($this->dblink,$q); - - // remove all logs for that alliance - $q = "DELETE FROM " . TB_PREFIX . "ali_log WHERE aid = $aid"; - mysqli_query($this->dblink,$q); - - // remove all medals for that alliance - $q = "DELETE FROM " . TB_PREFIX . "allimedal WHERE allyid = $aid"; - mysqli_query($this->dblink,$q); - - // remove all invitations for that alliance - $q = "DELETE FROM " . TB_PREFIX . "ali_invite WHERE alliance = $aid"; - mysqli_query($this->dblink,$q); - } - } - - /***************************************** - Function to read all alliance news - References: - *****************************************/ - function readAlliNotice($aid) { - list($aid) = $this->escape_input((int) $aid); - - $q = "SELECT * from " . TB_PREFIX . "ali_log where aid = $aid ORDER BY date DESC"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - /***************************************** - Function to create alliance permissions - References: ID, notice, description - *****************************************/ - function createAlliPermissions($uid, $aid, $rank, $opt1, $opt2, $opt3, $opt4, $opt5, $opt6, $opt7, $opt8) { - list($uid, $aid, $rank, $opt1, $opt2, $opt3, $opt4, $opt5, $opt6, $opt7, $opt8) = $this->escape_input($uid, $aid, $rank, $opt1, $opt2, $opt3, $opt4, $opt5, $opt6, $opt7, $opt8); - - - $q = "INSERT into " . TB_PREFIX . "ali_permission values(0,'$uid','$aid','$rank','$opt1','$opt2','$opt3','$opt4','$opt5','$opt6','$opt7','$opt8')"; - mysqli_query($this->dblink,$q); - - // update cache - $insertID = mysqli_insert_id($this->dblink); - self::$alliancePermissionsCache[$uid.$aid] = [ - 'id' => $insertID, - 'uid' => $uid, - 'alliance' => $aid, - 'rank' => $rank, - 'opt1' => $opt1, - 'opt2' => $opt2, - 'opt3' => $opt3, - 'opt4' => $opt4, - 'opt5' => $opt5, - 'opt6' => $opt6, - 'opt7' => $opt7, - 'opt8' => $opt8 - ]; - - return $insertID; - } - - /***************************************** - Function to update alliance permissions - References: - *****************************************/ - function deleteAlliPermissions($uid) { - list($uid) = $this->escape_input($uid); - - $q = "DELETE from " . TB_PREFIX . "ali_permission where uid = '$uid'"; - return mysqli_query($this->dblink,$q); - } - /***************************************** - Function to update alliance permissions - References: - *****************************************/ - function updateAlliPermissions($uid, $aid, $rank, $opt1, $opt2, $opt3, $opt4, $opt5, $opt6, $opt7) { - list($uid, $aid, $rank, $opt1, $opt2, $opt3, $opt4, $opt5, $opt6, $opt7) = $this->escape_input((int) $uid, (int) $aid, $rank, $opt1, $opt2, $opt3, $opt4, $opt5, $opt6, $opt7); - - // update cache - if (isset(self::$alliancePermissionsCache[$uid.$aid])) { - self::$alliancePermissionsCache[ $uid . $aid ]['rank'] = $rank; - self::$alliancePermissionsCache[ $uid . $aid ]['opt1'] = $opt1; - self::$alliancePermissionsCache[ $uid . $aid ]['opt2'] = $opt2; - self::$alliancePermissionsCache[ $uid . $aid ]['opt3'] = $opt3; - self::$alliancePermissionsCache[ $uid . $aid ]['opt4'] = $opt4; - self::$alliancePermissionsCache[ $uid . $aid ]['opt5'] = $opt5; - self::$alliancePermissionsCache[ $uid . $aid ]['opt6'] = $opt6; - self::$alliancePermissionsCache[ $uid . $aid ]['opt7'] = $opt7; - self::$alliancePermissionsCache[ $uid . $aid ]['opt8'] = $opt8; - } - - $q = "UPDATE " . TB_PREFIX . "ali_permission SET rank = '$rank', opt1 = '$opt1', opt2 = '$opt2', opt3 = '$opt3', opt4 = '$opt4', opt5 = '$opt5', opt6 = '$opt6', opt7 = '$opt7' where uid = $uid && alliance =$aid"; - return mysqli_query($this->dblink,$q); - } - - /***************************************** - Function to read alliance permissions - References: ID, notice, description - *****************************************/ - function getAlliPermissions($uid, $aid, $use_cache = true) { - list($uid, $aid) = $this->escape_input((int) $uid, (int) $aid); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$alliancePermissionsCache, $uid.$aid)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT * FROM " . TB_PREFIX . "ali_permission where uid = $uid && alliance = $aid"; - $result = mysqli_query($this->dblink,$q); - - self::$alliancePermissionsCache[$uid.$aid] = mysqli_fetch_assoc($result); - return self::$alliancePermissionsCache[$uid.$aid]; - } - - /***************************************** - Function to update an alliance description and notice - References: ID, notice, description - *****************************************/ - function submitAlliProfile($aid, $notice, $desc) { - list($aid, $notice, $desc) = $this->escape_input((int) $aid, $notice, $desc); - - - $q = "UPDATE " . TB_PREFIX . "alidata SET `notice` = '$notice', `desc` = '$desc' where id = $aid"; - return mysqli_query($this->dblink,$q); - } - - function diplomacyInviteAdd($alli1, $alli2, $type) { - list($alli1, $alli2, $type) = $this->escape_input((int) $alli1, (int) $alli2, $type); - - $q = "INSERT INTO " . TB_PREFIX . "diplomacy (alli1,alli2,type,accepted) VALUES ($alli1,$alli2," . (int)intval($type) . ",0)"; - return mysqli_query($this->dblink,$q); - } - - function diplomacyOwnOffers($sessionAlliance) { - list($sessionAlliance) = $this->escape_input((int) $sessionAlliance); - - $q = "SELECT * FROM " . TB_PREFIX . "diplomacy WHERE alli1 = $sessionAlliance AND accepted = 0"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - // no need to cache this method - function getAllianceID($name) { - list($name) = $this->escape_input($name); - - $q = "SELECT id FROM " . TB_PREFIX . "alidata WHERE tag ='" . $this->RemoveXSS($name) . "' LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - return $dbarray['id']; - } - - function diplomacyCancelOffer($id, $sessionAlliance) { - list($id, $sessionAlliance) = $this->escape_input((int) $id, (int) $sessionAlliance); - - $q = "DELETE FROM " . TB_PREFIX . "diplomacy WHERE id = $id AND alli1 = $sessionAlliance"; - return mysqli_query($this->dblink,$q); - } - - function diplomacyInviteAccept($id, $sessionAlliance) { - list($id, $sessionAlliance) = $this->escape_input((int) $id, (int) $sessionAlliance); - - $q = "UPDATE " . TB_PREFIX . "diplomacy SET accepted = 1 WHERE id = $id AND alli2 = $sessionAlliance"; - return mysqli_query($this->dblink,$q); - } - - function diplomacyInviteDenied($id, $sessionAlliance) { - list($id, $sessionAlliance) = $this->escape_input((int) $id, (int) $sessionAlliance); - - $q = "DELETE FROM " . TB_PREFIX . "diplomacy WHERE id = $id AND alli2 = $sessionAlliance"; - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - function diplomacyInviteCheck($sessionAlliance) { - list($sessionAlliance) = $this->escape_input((int) $sessionAlliance); - - $q = "SELECT * FROM " . TB_PREFIX . "diplomacy WHERE alli2 = $sessionAlliance AND accepted = 0"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - // no need to cache this method - function diplomacyInviteCheck2($ally1, $ally2) { - list($ally1, $ally2) = $this->escape_input((int) $ally1, (int) $ally2); - - $q = "SELECT * FROM " . TB_PREFIX . "diplomacy WHERE (alli1 = $ally1 OR alli2 = $ally1) AND (alli1 = $ally2 OR alli2 = $ally2)"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - // no need to cache this method - function getAllianceDipProfile($aid, $type) { - list($aid, $type) = $this->escape_input($aid, $type); - $q = "SELECT alli1, alli2 FROM ".TB_PREFIX."diplomacy WHERE alli1 = '$aid' AND type = '$type' AND accepted = '1' OR alli2 = '$aid' AND type = '$type' AND accepted = '1'"; - $array = $this->query_return($q); - $text = ""; - - if($array){ - foreach($array as $row){ - if($row['alli1'] == $aid) $alliance = $this->getAlliance($row['alli2']); - elseif($row['alli2'] == $aid) $alliance = $this->getAlliance($row['alli1']); - $text .= ""; - $text .= "" . $alliance['tag'] . "
"; - } - } - if(strlen($text) == 0){ - $text = "-
"; - } - return $text; - } - - // no need to cache this method - function getAllianceWar($aid) { - list($aid) = $this->escape_input($aid); - $q = "SELECT alli1, alli2 FROM ".TB_PREFIX."diplomacy WHERE alli1 = '$aid' AND type = '3' OR alli2 = '$aid' AND type = '3' AND accepted = '1'"; - $array = $this->query_return($q); - $text = ""; - - if ($array) { - foreach($array as $row){ - if($row['alli1'] == $aid){ - $alliance = $this->getAlliance($row['alli2']); - }elseif($row['alli2'] == $aid){ - $alliance = $this->getAlliance($row['alli1']); - } - $text .= ""; - $text .= "".$alliance['tag']."
"; - } - } - if(strlen($text) == 0){ - $text = "-
"; - } - return $text; - } - - function getAllianceAlly($aid, $type, $use_cache = true) { - list($aid, $type) = $this->escape_input($aid, $type); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$allianceAlliesCache, $aid.$type)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT * FROM ".TB_PREFIX."diplomacy WHERE (alli1 = '$aid' or alli2 = '$aid') AND (type = '$type' AND accepted = '1')"; - $result = mysqli_query($this->dblink,$q); - - self::$allianceAlliesCache[$aid.$type] = $this->mysqli_fetch_all($result); - return self::$allianceAlliesCache[$aid.$type]; - } - - // no need to cache this method - function getAllianceWar2($aid) { - list($aid) = $this->escape_input($aid); - $q = "SELECT * FROM ".TB_PREFIX."diplomacy WHERE alli1 = '$aid' AND type = '3' OR alli2 = '$aid' AND type = '3' AND accepted = '1'"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - // no need to cache this method - function diplomacyExistingRelationships($sessionAlliance) { - list($sessionAlliance) = $this->escape_input((int) $sessionAlliance); - - $q = "SELECT * FROM " . TB_PREFIX . "diplomacy WHERE (alli1 = $sessionAlliance OR alli2 = $sessionAlliance) AND accepted = 1"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - function diplomacyCancelExistingRelationship($id, $sessionAlliance) { - list($id, $sessionAlliance) = $this->escape_input((int) $id, (int) $sessionAlliance); - - $q = "DELETE FROM " . TB_PREFIX . "diplomacy WHERE (alli1 = $sessionAlliance OR alli2 = $sessionAlliance) AND id = $id "; - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - function diplomacyCheckLimits($aid, $type) { - list($aid, $type) = $this->escape_input((int) $aid, (int) $type); - if($type == 3) return true; - - $q = "SELECT Count(case when alli1 = $aid then 1 end) as Total1, Count(case when alli2 = $aid then 1 end) as Total2 FROM " . TB_PREFIX . "diplomacy WHERE type = $type"; - $result = mysqli_fetch_array(mysqli_query($this->dblink,$q), MYSQLI_ASSOC); - return $result['Total1'] < 3 && $result['Total2'] < 3; - } - - function setAlliForumdblink($aid, $dblink) { - list($aid, $dblink) = $this->escape_input((int) $aid, $dblink); - - $q = "UPDATE " . TB_PREFIX . "alidata SET `forumlink` = '$dblink' WHERE id = $aid"; - return mysqli_query($this->dblink,$q); - } - - function getUserAlliance($id, $use_cache = true) { - list($id) = $this->escape_input((int) $id); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$userAllianceCache, $id)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT " . TB_PREFIX . "alidata.tag from " . TB_PREFIX . "users join " . TB_PREFIX . "alidata where " . TB_PREFIX . "users.alliance = " . TB_PREFIX . "alidata.id and " . TB_PREFIX . "users.id = $id LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - if($dbarray['tag'] == "") { - self::$userAllianceCache[$id] = "-"; - } else { - self::$userAllianceCache[$id] = $dbarray['tag']; - } - - return self::$userAllianceCache[$id]; - } - - /////////////ADDED BY BRAINIAC - THANK YOU - - function modifyResource($vid, $wood, $clay, $iron, $crop, $mode) { - list($vid, $wood, $clay, $iron, $crop, $mode) = $this->escape_input((int) $vid, $wood, $clay, $iron, $crop, $mode); - $sign = (!$mode ? '-' : '+'); - - $q = " - UPDATE " . TB_PREFIX . "vdata - SET - wood = IF(wood $sign $wood < 0, 0, IF(wood $sign $wood > maxstore, maxstore, wood $sign $wood)), - clay = IF(clay $sign $clay < 0, 0, IF(clay $sign $clay > maxstore, maxstore, clay $sign $clay)), - iron = IF(iron $sign $iron < 0, 0, IF(iron $sign $iron > maxstore, maxstore, iron $sign $iron)), - crop = IF(crop $sign $crop < 0, 0, IF(crop $sign $crop > maxcrop, maxcrop, crop $sign $crop)) - WHERE - wref = " . $vid ; - - return mysqli_query( $this->dblink, $q); - } - - function setMaxStoreForVillage($vid, $maxLevel) { - $vid = (int) $vid; - $maxLevel = (int) $maxLevel; - - $this->query(" - UPDATE - ".TB_PREFIX."vdata - SET - `maxstore` = IF( `maxstore` - $maxLevel < ".STORAGE_BASE.", ".STORAGE_BASE.", `maxstore` - $maxLevel ) - WHERE - wref=$vid"); - } - - function setMaxCropForVillage($vid, $maxLevel) { - $vid = (int) $vid; - $maxLevel = (int) $maxLevel; - - $this->query(" - UPDATE - ".TB_PREFIX."vdata - SET - `maxcrop` = IF( `maxcrop` - $maxLevel < ".STORAGE_BASE.", ".STORAGE_BASE.", `maxcrop` - $maxLevel ) - WHERE - wref=$vid"); - } - - function modifyOasisResource($vid, $wood, $clay, $iron, $crop, $mode) { - list($vid, $wood, $clay, $iron, $crop, $mode) = $this->escape_input((int) $vid, (int) $wood, (int) $clay, (int) $iron, (int) $crop, $mode); - - $negativeResources = false; - $checkres = $this->getOasisV($vid); - - if (!$mode) { - $nwood = $checkres['wood'] - $wood; - $nclay = $checkres['clay'] - $clay; - $niron = $checkres['iron'] - $iron; - $ncrop = $checkres['crop'] - $crop; - - $negativeResources = $nwood < 0 || $nclay < 0 || $niron < 0 || $ncrop < 0; - - $dwood = ($nwood < 0) ? 0 : $nwood; - $dclay = ($nclay < 0) ? 0 : $nclay; - $diron = ($niron < 0) ? 0 : $niron; - $dcrop = ($ncrop < 0) ? 0 : $ncrop; - } else { - $nwood = $checkres['wood'] + $wood; - $nclay = $checkres['clay'] + $clay; - $niron = $checkres['iron'] + $iron; - $ncrop = $checkres['crop'] + $crop; - $dwood = ($nwood > $checkres['maxstore']) ? $checkres['maxstore'] : $nwood; - $dclay = ($nclay > $checkres['maxstore']) ? $checkres['maxstore'] : $nclay; - $diron = ($niron > $checkres['maxstore']) ? $checkres['maxstore'] : $niron; - $dcrop = ($ncrop > $checkres['maxcrop']) ? $checkres['maxcrop'] : $ncrop; - } - - if (!$negativeResources) { - $q = "UPDATE " . TB_PREFIX . "odata SET wood = $dwood, clay = $dclay, iron = $diron, crop = $dcrop WHERE wref = ".$vid; - return mysqli_query($this->dblink, $q); - } - else return false; - } - - function getFieldLevelInVillage($vid, $fieldType, $use_cache = true) { - $vid = (int) $vid; - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$fieldLevelsInVillageSearchCache, $vid.$fieldType)) && !is_null($cachedValue)) { - return $cachedValue; - } - - // $fieldType can be both, integer and string, to be used in the IN statement, - // so we need to handle it correctly here - if (!Math::isInt($fieldType)) { - $fieldType = $this->escape($fieldType); - } - - // please don't scream... - // with the current table structure, there really IS NOT another way - // (except for stored procedures, which we can't rely on to be allowed on the server) - $result = mysqli_query($this->dblink," - SELECT - IF( - f1t IN ($fieldType), - f1, - IF( - f2t IN ($fieldType), - f2, - IF( - f3t IN ($fieldType), - f3, - IF( - f4t IN ($fieldType), - f4, - IF( - f5t IN ($fieldType), - f5, - IF( - f6t IN ($fieldType), - f6, - IF( - f7t IN ($fieldType), - f7, - IF( - f8t IN ($fieldType), - f8, - IF( - f9t IN ($fieldType), - f9, - IF( - f10t IN ($fieldType), - f10, - IF( - f11t IN ($fieldType), - f11, - IF( - f12t IN ($fieldType), - f12, - IF( - f13t IN ($fieldType), - f13, - IF( - f14t IN ($fieldType), - f14, - IF( - f15t IN ($fieldType), - f15, - IF( - f16t IN ($fieldType), - f16, - IF( - f17t IN ($fieldType), - f17, - IF( - f18t IN ($fieldType), - f18, - IF( - f19t IN ($fieldType), - f19, - IF( - f20t IN ($fieldType), - f20, - IF( - f20t IN ($fieldType), - f20, - IF( - f21t IN ($fieldType), - f21, - IF( - f22t IN ($fieldType), - f22, - IF( - f23t IN ($fieldType), - f23, - IF( - f24t IN ($fieldType), - f24, - IF( - f25t IN ($fieldType), - f25, - IF( - f26t IN ($fieldType), - f26, - IF( - f27t IN ($fieldType), - f27, - IF( - f28t IN ($fieldType), - f28, - IF( - f29t IN ($fieldType), - f29, - IF( - f30t IN ($fieldType), - f30, - IF( - f31t IN ($fieldType), - f31, - IF( - f32t IN ($fieldType), - f32, - IF( - f33t IN ($fieldType), - f33, - IF( - f34t IN ($fieldType), - f34, - IF( - f35t IN ($fieldType), - f35, - IF( - f36t IN ($fieldType), - f36, - IF( - f37t IN ($fieldType), - f37, - IF( - f38t IN ($fieldType), - f38, - IF( - f39t IN ($fieldType), - f39, - IF( - f40t IN ($fieldType), - f40, - IF( - f99t IN ($fieldType), - f99, - 0 - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) - ) as level - FROM - ".TB_PREFIX."fdata - WHERE - vref = $vid - AND - (f1t IN ($fieldType) - OR - f2t IN ($fieldType) - OR - f3t IN ($fieldType) - OR - f4t IN ($fieldType) - OR - f5t IN ($fieldType) - OR - f6t IN ($fieldType) - OR - f7t IN ($fieldType) - OR - f8t IN ($fieldType) - OR - f9t IN ($fieldType) - OR - f10t IN ($fieldType) - OR - f11t IN ($fieldType) - OR - f12t IN ($fieldType) - OR - f13t IN ($fieldType) - OR - f14t IN ($fieldType) - OR - f15t IN ($fieldType) - OR - f16t IN ($fieldType) - OR - f17t IN ($fieldType) - OR - f18t IN ($fieldType) - OR - f19t IN ($fieldType) - OR - f20t IN ($fieldType) - OR - f20t IN ($fieldType) - OR - f21t IN ($fieldType) - OR - f22t IN ($fieldType) - OR - f23t IN ($fieldType) - OR - f24t IN ($fieldType) - OR - f25t IN ($fieldType) - OR - f26t IN ($fieldType) - OR - f27t IN ($fieldType) - OR - f28t IN ($fieldType) - OR - f29t IN ($fieldType) - OR - f30t IN ($fieldType) - OR - f30t IN ($fieldType) - OR - f31t IN ($fieldType) - OR - f32t IN ($fieldType) - OR - f33t IN ($fieldType) - OR - f34t IN ($fieldType) - OR - f35t IN ($fieldType) - OR - f36t IN ($fieldType) - OR - f37t IN ($fieldType) - OR - f38t IN ($fieldType) - OR - f39t IN ($fieldType) - OR - f40t IN ($fieldType) - OR - f99t IN ($fieldType)) - LIMIT 1 - "); - $row = mysqli_fetch_array($result, MYSQLI_ASSOC); - - self::$fieldLevelsInVillageSearchCache[$vid.$fieldType] = $row['level']; - return self::$fieldLevelsInVillageSearchCache[$vid.$fieldType]; - } - - function getFieldLevel($vid, $field, $use_cache = true) { - list($vid, $field) = $this->escape_input((int) $vid, $field); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$resourceLevelsCache, $vid.$field)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT f" . $field . " from " . TB_PREFIX . "fdata where vref = $vid LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $row = mysqli_fetch_array($result); - - self::$resourceLevelsCache[$vid.$field] = $row["f" . $field]; - return self::$resourceLevelsCache[$vid.$field]; - } - - function getSingleFieldTypeCount($uid, $field, $lvlComparisonSign = '=', $lvl = false, $use_cache = true) { - $uid = (int) $uid; - $field = (int) $field; - $lvl = ($lvl === false ? $lvl : (int) $lvl); - - if (!in_array($lvlComparisonSign, ['=', '<', '>', '>=', '<=', '!='])) { - $lvlComparisonSign = '='; - } - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$singleFieldTypeCountCache, $uid.$field.$lvlComparisonSign.($lvl ? 1 : 0))) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = " - SELECT - Count(*) as Total - FROM - ".TB_PREFIX."fdata f - LEFT JOIN ".TB_PREFIX."vdata v ON f.vref = v.wref - LEFT JOIN ".TB_PREFIX."users u ON v.owner = u.id - WHERE - u.id = ".$uid." - AND - ( - (f1t = ".$field.($lvl !== false ? ' AND f1 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f2t = ".$field.($lvl !== false ? ' AND f2 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f3t = ".$field.($lvl !== false ? ' AND f3 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f4t = ".$field.($lvl !== false ? ' AND f4 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f5t = ".$field.($lvl !== false ? ' AND f5 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f6t = ".$field.($lvl !== false ? ' AND f6 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f7t = ".$field.($lvl !== false ? ' AND f7 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f8t = ".$field.($lvl !== false ? ' AND f8 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f9t = ".$field.($lvl !== false ? ' AND f9 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f10t = ".$field.($lvl !== false ? ' AND f10 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f11t = ".$field.($lvl !== false ? ' AND f11 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f12t = ".$field.($lvl !== false ? ' AND f12 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f13t = ".$field.($lvl !== false ? ' AND f13 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f14t = ".$field.($lvl !== false ? ' AND f14 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f15t = ".$field.($lvl !== false ? ' AND f15 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f16t = ".$field.($lvl !== false ? ' AND f16 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f17t = ".$field.($lvl !== false ? ' AND f17 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f18t = ".$field.($lvl !== false ? ' AND f18 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f19t = ".$field.($lvl !== false ? ' AND f19 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f20t = ".$field.($lvl !== false ? ' AND f20 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f21t = ".$field.($lvl !== false ? ' AND f21 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f22t = ".$field.($lvl !== false ? ' AND f22 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f23t = ".$field.($lvl !== false ? ' AND f23 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f24t = ".$field.($lvl !== false ? ' AND f24 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f25t = ".$field.($lvl !== false ? ' AND f25 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f26t = ".$field.($lvl !== false ? ' AND f26 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f27t = ".$field.($lvl !== false ? ' AND f27 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f28t = ".$field.($lvl !== false ? ' AND f28 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f29t = ".$field.($lvl !== false ? ' AND f29 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f30t = ".$field.($lvl !== false ? ' AND f30 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f31t = ".$field.($lvl !== false ? ' AND f31 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f32t = ".$field.($lvl !== false ? ' AND f32 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f33t = ".$field.($lvl !== false ? ' AND f33 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f34t = ".$field.($lvl !== false ? ' AND f34 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f35t = ".$field.($lvl !== false ? ' AND f35 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f36t = ".$field.($lvl !== false ? ' AND f36 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f37t = ".$field.($lvl !== false ? ' AND f37 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f38t = ".$field.($lvl !== false ? ' AND f38 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f39t = ".$field.($lvl !== false ? ' AND f39 '.$lvlComparisonSign.' '.$lvl : '').") - OR (f40t = ".$field.($lvl !== false ? ' AND f40 '.$lvlComparisonSign.' '.$lvl : '').") - )"; - - $result = mysqli_query($this->dblink,$q); - $row = mysqli_fetch_array($result); - - self::$singleFieldTypeCountCache[$uid.$field.$lvlComparisonSign.($lvl ? 1 : 0)] = $row["Total"]; - return self::$singleFieldTypeCountCache[$uid.$field.$lvlComparisonSign.($lvl ? 1 : 0)]; - } - - function getFieldType($vid, $field, $use_cache = true) { - list($vid, $field) = $this->escape_input((int) $vid, $field); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$fieldTypeCache, $vid.$field)) && !is_null($cachedValue)) { - return $cachedValue; - } - - if ($field && $vid) { - $q = "SELECT f" . $field . "t from " . TB_PREFIX . "fdata where vref = $vid LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $row = mysqli_fetch_array($result); - self::$fieldTypeCache[$vid.$field] = $row["f" . $field . "t"]; - } else { - self::$fieldTypeCache[$vid.$field] = 0; - } - - return self::$fieldTypeCache[$vid.$field]; - } - - // no need to cache this method - function getFieldDistance($wid) { - list($wid) = $this->escape_input((int) $wid); - - $array = $this->getProfileVillages($wid, 3); - $coor = $this->getCoor($wid); - $x1 = intval($coor['x']); - $y1 = intval($coor['y']); - $prevdist = 0; - $array2 = $this->getVillage(0, 4); - $vill = $array2['wref']; - - if ($array && count($array)){ - foreach($array as $village){ - $coor2 = $this->getCoor($village['wref']); - $max = 2 * WORLD_MAX + 1; - $x2 = intval($coor2['x']); - $y2 = intval($coor2['y']); - $distanceX = min(abs($x2 - $x1), abs($max - abs($x2 - $x1))); - $distanceY = min(abs($y2 - $y1), abs($max - abs($y2 - $y1))); - $dist = sqrt(pow($distanceX, 2) + pow($distanceY, 2)); - if($dist < $prevdist or $prevdist == 0){ - $prevdist = $dist; - $vill = $village['wref']; - } - } - } - return $vill; - } - - function updateVSumField($field) { - list($field) = $this->escape_input($field); - - //fix by ronix - if (SPEED >10) { - $speed = 10; - } else { - $speed = SPEED; - } - - // cultural points to gain during a day - $dur_day = (86400/SPEED); - - if ($dur_day < 3600) { - $dur_day = 3600; - } - - $q = " - UPDATE " . TB_PREFIX . "users as users - SET cp = cp + ( - ( SELECT sum($field) FROM " . TB_PREFIX . "vdata as vdata WHERE vdata.owner = users.id ".($field == 'cp' ? ' AND vdata.natar = 0' : '')." ) * - (UNIX_TIMESTAMP() - lastupdate) / $dur_day - ), - lastupdate = UNIX_TIMESTAMP() - WHERE - lastupdate < (UNIX_TIMESTAMP() - 600) - "; // recount every 10 minutes - - mysqli_query($this->dblink, $q); - } - - function getVSumField($uid, $field, $use_cache = true) { - list($field) = $this->escape_input($field); - - $array_passed = is_array($uid); - if (!$array_passed) { - $uid = [(int) $uid]; - } else { - foreach ($uid as $index => $uidValue) { - $uid[$index] = (int) $uidValue; - } - } - - if (!count($uid)) { - return []; - } - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && !$array_passed && ($cachedValue = self::returnCachedContent(self::$userSumFieldCache, $uid[0].$field)) && !is_null($cachedValue)) { - return $cachedValue; - } - - if($field != "cp"){ - $q = "SELECT owner, MIN(lastupdate), SUM(" . $field . ") as Total FROM " . TB_PREFIX . "vdata where owner IN(".implode(', ', $uid).") GROUP BY owner"; - }else{ - $q = "SELECT owner, MIN(lastupdate), SUM(" . $field . ") as Total FROM " . TB_PREFIX . "vdata where owner IN(".implode(', ', $uid).") and natar = 0 GROUP BY owner"; - } - - $result = mysqli_query($this->dblink,$q); - - // return a single value - if (!$array_passed) { - $row = mysqli_fetch_row( $result ); - self::$userSumFieldCache[$row[0].$field] = $row[2]; - } else { - $result = $this->mysqli_fetch_all($result); - if ($result && count($result)) { - foreach ( $result as $record ) { - self::$userSumFieldCache[ $record['owner'] . $field ] = $record['Total']; - } - } - } - - return ($array_passed ? $result : self::$userSumFieldCache[$uid[0].$field]); - } - - function updateVillage($vid) { - list($vid) = $this->escape_input((int) $vid); - - $time = time(); - $q = "UPDATE " . TB_PREFIX . "vdata set lastupdate = $time where wref = $vid"; - return mysqli_query($this->dblink,$q); - } - - - function updateOasis($vid) { - list($vid) = $this->escape_input((int) $vid); - - $time = time(); - $q = "UPDATE " . TB_PREFIX . "odata set lastupdated = $time where wref = $vid"; - return mysqli_query($this->dblink,$q); - } - - function setVillageName($vid, $name) { - list($vid, $name) = $this->escape_input((int) $vid, $name); - - if(!empty($name)){ - $q = "UPDATE " . TB_PREFIX . "vdata set name = '$name' where wref = $vid"; - return mysqli_query($this->dblink, $q); - } - } - - function modifyPop($vid, $pop, $mode) { - list($vid, $pop, $mode) = $this->escape_input((int) $vid, (int) $pop, $mode); - - if(!$mode) { - $q = "UPDATE " . TB_PREFIX . "vdata set pop = pop + $pop where wref = $vid"; - } else { - $q = "UPDATE " . TB_PREFIX . "vdata set pop = pop - $pop where wref = $vid"; - } - return mysqli_query($this->dblink,$q); - } - - function addCP($ref, $cp) { - list($ref, $cp) = $this->escape_input((int) $ref, (int) $cp); - - $q = "UPDATE " . TB_PREFIX . "vdata set cp = cp + $cp where wref = $ref"; - return mysqli_query($this->dblink,$q); - } - - function addCel($ref, $cel, $type) { - list($ref, $cel, $type) = $this->escape_input((int) $ref, (int) $cel, (int) $type); - - $q = "UPDATE " . TB_PREFIX . "vdata set celebration = $cel, type= $type where wref = $ref"; - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - function getCel() { - return $this->getProfileVillages(time(), 4); - } - - function clearCel($ref) { - list($ref) = $this->escape_input((int) $ref); - - $q = "UPDATE " . TB_PREFIX . "vdata set celebration = 0, type = 0 where wref = $ref"; - return mysqli_query($this->dblink,$q); - } - - function setCelCp($user, $cp) { - list($user, $cp) = $this->escape_input((int) $user, (int) $cp); - - $q = "UPDATE " . TB_PREFIX . "users set cp = cp + $cp where id = $user"; - return mysqli_query($this->dblink,$q); - } - - /** - * Delete a single village or multiple ones - * - * @param mixed $wref The Village ID(s) - */ - - function DelVillage($wref){ - list($wref) = $this->escape_input($wref); - global $units; - - //Check if we've to delete a single village or multiple ones - if(!is_array($wref)) $wref = [$wref]; - - //Create the list of village IDs - $wrefs = implode(", ", $wref); - - $this->clearExpansionSlot($wref); - $q = "DELETE FROM ".TB_PREFIX."abdata where vref IN($wrefs)"; - $this->query($q); - $q = "DELETE FROM ".TB_PREFIX."bdata where wid IN($wrefs)"; - $this->query($q); - $q = "DELETE FROM ".TB_PREFIX."market where vref IN($wrefs)"; - $this->query($q); - $q = "DELETE FROM ".TB_PREFIX."research where vref IN($wrefs)"; - $this->query($q); - $q = "DELETE FROM ".TB_PREFIX."tdata where vref IN($wrefs)"; - $this->query($q); - $q = "DELETE FROM ".TB_PREFIX."fdata where vref IN($wrefs)"; - $this->query($q); - $q = "DELETE FROM ".TB_PREFIX."training where vref IN($wrefs)"; - $this->query($q); - $q = "DELETE FROM ".TB_PREFIX."units where vref IN($wrefs)"; - $this->query($q); - $q = "DELETE FROM ".TB_PREFIX."farmlist where wref IN($wrefs)"; - $this->query($q); - $q = "UPDATE ".TB_PREFIX."artefacts SET del = 1 where vref IN($wrefs)"; - $this->query($q); - $q = "DELETE FROM ".TB_PREFIX."raidlist where towref IN($wrefs)"; - $this->query($q); - $q = "DELETE FROM ".TB_PREFIX."route where wid IN($wrefs) OR `from` IN($wrefs)"; - $this->query($q); - $q = "DELETE FROM ".TB_PREFIX."movement where proc = 0 AND ((`to` IN($wrefs) AND sort_type = 4) OR (`from` IN($wrefs) AND sort_type = 3))"; - $this->query($q); - $this->removeOases($wref, 1); - - $getmovement = $this->getMovement(3, $wref, 1); - - $moveIDs = []; - $time = microtime(true); - $types = []; - $froms = []; - $tos = []; - $refs = []; - $times = []; - $endtimes = []; - - foreach($getmovement as $movedata) { - $time2 = $time - $movedata['starttime']; - $moveIDs[] = $movedata['moveid']; - $types[] = 4; - $froms[] = $movedata['to']; - $tos[] = $movedata['from']; - $refs[] = $movedata['ref']; - $times[] = $time; - $endtimes[] = $time+$time2; - } - - $this->setMovementProc(implode(', ', $moveIDs)); - $this->addMovement($types, $froms, $tos, $refs, $times, $endtimes); - - $q = "DELETE FROM ".TB_PREFIX."enforcement WHERE `from` IN($wrefs)"; - $this->query($q); - - //check return enforcement from del village - foreach($wref as $w) $units->returnTroops($w); - - $q = "DELETE FROM ".TB_PREFIX."vdata WHERE `wref` IN($wrefs)"; - $this->query($q); - - if (mysqli_affected_rows($this->dblink) > 0) { - $q = "UPDATE ".TB_PREFIX."wdata set occupied = 0 where id IN($wrefs)"; - $this->query($q); - - // clear expansion slots, if this village is an expansion of any other village - $this->clearExpansionSlot($wref, 1); - - $getprisoners = $this->getPrisoners($wref); - foreach($getprisoners as $pris) { - $troops = 0; - for($i = 1; $i < 12; $i++) $troops += $pris['t'.$i]; - $this->modifyUnit($pris['wref'], ["99o"], [$troops], [0]); - $this->deletePrisoners($pris['id']); - } - - $getprisoners = $this->getPrisoners($wref, 1); - foreach($getprisoners as $pris) { - $troops = 0; - for($i = 1; $i < 12; $i++) $troops += $pris['t'.$i]; - $this->modifyUnit($pris['wref'], ["99o"], [$troops], [0]); - $this->deletePrisoners($pris['id']); - } - } - } - - /** - * Clear the expansion slots of a specified village(s) - * - * @param mixed $id The village ID(s) - * @param number $mode 0 If there's the need to clear all expansion slots of a village, - * 1 if there's the need to clear a single expansion slot of a village - */ - - function clearExpansionSlot($id, $mode = 0) { - list($id) = $this->escape_input((int) $id); - - if(!is_array($id)) $id = [$id]; - $ids = implode(",", $id); - - if(!$mode){ - $pairs = []; - for($i = 1; $i <= 3; $i++) $pairs[] = 'exp'.$i.' = 0'; - - $q = "UPDATE " . TB_PREFIX . "vdata SET ".implode(',', $pairs)." WHERE wref IN($ids)"; - }else{ - $q = " - UPDATE - ".TB_PREFIX."vdata - SET - exp1 = IF(exp1 IN($ids), 0, exp1), - exp2 = IF(exp2 IN($ids), 0, exp2), - exp3 = IF(exp3 IN($ids), 0, exp3) - WHERE - exp1 IN($ids) OR - exp2 IN($ids) OR - exp3 IN($ids)"; - } - mysqli_query($this->dblink, $q); - } - - // no need to cache this method - function getInvitation($uid) { - list($uid) = $this->escape_input((int) $uid); - - $q = "SELECT * FROM " . TB_PREFIX . "ali_invite where uid = $uid"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - // no need to cache this method - function getInvitation2($uid, $aid) { - list($uid, $aid) = $this->escape_input((int) $uid, (int) $aid); - - $q = "SELECT * FROM " . TB_PREFIX . "ali_invite where uid = $uid and alliance = $aid"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - // no need to cache this method - function getAliInvitations($aid) { - list($aid) = $this->escape_input((int) $aid); - - $q = "SELECT * FROM " . TB_PREFIX . "ali_invite where alliance = $aid && accept = 0"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - function sendInvitation($uid, $alli, $sender) { - list($uid, $alli, $sender) = $this->escape_input((int) $uid, (int) $alli, (int) $sender); - - $time = time(); - $q = "INSERT INTO " . TB_PREFIX . "ali_invite values (0,$uid,$alli,$sender,$time,0)"; - return mysqli_query($this->dblink,$q); - } - - function removeInvitation($id) { - list($id) = $this->escape_input((int) $id); - - $q = "DELETE FROM " . TB_PREFIX . "ali_invite where id = $id"; - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - function getUnreadMessagesCount($uid) { - $uid = (int) $uid; - - $ids = [$uid]; - - if (($this->getUserField($uid, 'access', 0) == ADMIN) && ADMIN_RECEIVE_SUPPORT_MESSAGES) { - $ids[] = 1; - } - - if ($this->getUserField($uid, 'access', 0) == MULTIHUNTER) { - $ids[] = 5; - } - - $q = 'SELECT Count(*) as numUnread FROM '.TB_PREFIX.'mdata WHERE target IN('.implode(', ', $ids).') AND viewed = 0'; - return mysqli_fetch_array(mysqli_query($this->dblink, $q), MYSQLI_ASSOC)['numUnread']; - } - - // no need to cache this method - function getUnreadNoticesCount($uid) { - $uid = (int) $uid; - - return mysqli_fetch_array(mysqli_query($this->dblink, ' - SELECT Count(*) as numUnread FROM '.TB_PREFIX.'ndata WHERE uid = '.$uid.' AND viewed = 0' - ), MYSQLI_ASSOC)['numUnread']; - } - - function sendMessage($client, $owner, $topic, $message, $send, $alliance, $player, $coor, $report, $skip_escaping = false) { - if (!$skip_escaping) { - list($client, $owner, $topic, $message, $send, $alliance, $player, $coor, $report) = $this->escape_input((int) $client, (int) $owner, $topic, $message, (int) $send, (int) $alliance, (int) $player, (int) $coor, (int) $report); - } - - $time = time(); - - // add this message to the query cache, so we save some queries - // if we need to send multiple messages at once - self::$sendMessageQueryCache[] = "(0,$client,$owner,'$topic','$message',0,0,$send,$time,0,0,$alliance,$player,$coor,$report)"; - - // check if we don't have too many messages to be sent out cached, - // in which case we'll flush the cache and start again - $retValue = true; - if (count(self::$sendMessageQueryCache) >= self::$sendMessageQueryCacheMaxRecords) { - $retValue = mysqli_query($this->dblink, "INSERT INTO " . TB_PREFIX . "mdata VALUES " . implode(', ', self::$sendMessageQueryCache)); - self::$sendMessageQueryCache = []; - } - - return $retValue; - } - - public function sendPendingMessages() { - if (count(self::$sendMessageQueryCache)) { - mysqli_query($this->dblink, "INSERT INTO " . TB_PREFIX . "mdata VALUES " . implode(', ', self::$sendMessageQueryCache)); - } - } - - function setArchived($id) { - if (!is_array($id)) { - $id = [$id]; - - foreach ($id as $index => $idValue) { - $id[$index] = (int) $idValue; - } - } - - $q = "UPDATE " . TB_PREFIX . "mdata set archived = 1 where id IN(".implode(', ', $id).")"; - return mysqli_query($this->dblink,$q); - } - - function setNorm($id) { - if (!is_array($id)) { - $id = [$id]; - - foreach ($id as $index => $idValue) { - $id[$index] = (int) $idValue; - } - } - - $q = "UPDATE " . TB_PREFIX . "mdata set archived = 0 where id IN(".implode(',', $id).")"; - return mysqli_query($this->dblink,$q); - } - -/*************************** -Function to get messages -Mode 1: Get inbox -Mode 2: Get sent -Mode 3: Get message -Mode 4: Set viewed -Mode 5: Remove message -Mode 6: Retrieve archive -References: User ID/Message ID, Mode -***************************/ - // no need to cache this method - function getMessage($id, $mode) { - global $session; - - $mode = (int) $mode; - $mode_updated = false; - // update $id if we should show Support messages for Admins and we are an admin - if ( - $session->access == ADMIN - && ADMIN_RECEIVE_SUPPORT_MESSAGES - && in_array($mode, [1,2,6,9,10,11]) - ) { - $id = $id . ', 1'; - $mode_updated = true; - } - - // update $id if we should show Multihunter messages for the current player - if ( - $session->access == MULTIHUNTER - && in_array($mode, [1,2,6,9,10,11]) - ) { - $id = $id . ', 5'; - $mode_updated = true; - } - - if (in_array($mode, [5,7,8])) { - if (!is_array($id)) { - $id = [$id]; - - foreach ($id as $index => $idValue) { - $id[$index] = (int) $idValue; - } - } - } else { - if (!$mode_updated) { - $id = (int) $id; - } - } - - switch($mode) { - case 1: - $q = "SELECT * FROM " . TB_PREFIX . "mdata WHERE target IN($id) and send = 0 and archived = 0 ORDER BY time ".(isset($_GET['o']) && $_GET['o'] == 1 ? 'ASC' : 'DESC'); - break; - case 2: - $q = "SELECT * FROM " . TB_PREFIX . "mdata WHERE owner IN($id) ORDER BY time ".(isset($_GET['o']) && $_GET['o'] == 1 ? 'ASC' : 'DESC'); - break; - case 3: - $q = "SELECT * FROM " . TB_PREFIX . "mdata where id = $id"; - break; - case 4: - $show_target = $session->uid; - if ($session->access == ADMIN && ADMIN_RECEIVE_SUPPORT_MESSAGES) $show_target .= ',1'; - if ($session->access == MULTIHUNTER) $show_target .= ',5'; - - $q = "UPDATE " . TB_PREFIX . "mdata set viewed = 1 where id = $id AND target IN(".$show_target.")"; - break; - case 5: - $q = "UPDATE " . TB_PREFIX . "mdata set deltarget = 1, viewed = 1 where id IN(".implode(', ', $id).")"; - break; - case 6: - $q = "SELECT * FROM " . TB_PREFIX . "mdata where target IN($id) and send = 0 and archived = 1 ORDER BY time ".(isset($_GET['o']) && $_GET['o'] == 1 ? 'ASC' : 'DESC'); - break; - case 7: - $q = "UPDATE " . TB_PREFIX . "mdata set delowner = 1 where id IN(".implode(', ', $id).")"; - break; - case 8: - $q = "UPDATE " . TB_PREFIX . "mdata set deltarget = 1, delowner = 1, viewed = 1 where id IN(".implode(', ', $id).")"; - break; - case 9: - $q = "SELECT * FROM " . TB_PREFIX . "mdata WHERE target IN($id) and send = 0 and archived = 0 and deltarget = 0 ORDER BY time ".(isset($_GET['o']) && $_GET['o'] == 1 ? 'ASC' : 'DESC'); - break; - case 10: - $q = "SELECT * FROM " . TB_PREFIX . "mdata WHERE owner IN($id) and delowner = 0 ORDER BY time ".(isset($_GET['o']) && $_GET['o'] == 1 ? 'ASC' : 'DESC'); - break; - case 11: - $q = "SELECT * FROM " . TB_PREFIX . "mdata where target IN($id) and send = 0 and archived = 1 and deltarget = 0 ORDER BY time ".(isset($_GET['o']) && $_GET['o'] == 1 ? 'ASC' : 'DESC'); - break; - } - - if($mode <= 3 || $mode == 6 || $mode > 8) { - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - else return mysqli_query($this->dblink,$q); - } - - function unarchiveNotice($id) { - if (!is_array($id)) { - $id = [$id]; - - foreach ($id as $index => $idValue) { - $id[$index] = (int) $idValue; - } - } - - $q = "UPDATE " . TB_PREFIX . "ndata set ntype = archive, archive = 0 where id IN(".implode(',', $id).")"; - return mysqli_query($this->dblink,$q); - } - - function archiveNotice($id) { - if (!is_array($id)) { - $id = [$id]; - - foreach ($id as $index => $idValue) { - $id[$index] = (int) $idValue; - } - } - - $q = "update " . TB_PREFIX . "ndata set archive = ntype, ntype = 9 where id IN(".implode(',', $id).")"; - return mysqli_query($this->dblink,$q); - } - - function removeNotice($id) { - if (!is_array($id)) { - $id = [$id]; - - foreach ($id as $index => $idValue) { - $id[$index] = (int) $idValue; - } - } - - $q = "UPDATE " . TB_PREFIX . "ndata set del = 1,viewed = 1 where id IN(".implode(',', $id).")"; - return mysqli_query($this->dblink,$q); - } - - function noticeViewed($id) { - list($id) = $this->escape_input((int) $id); - - $q = "UPDATE " . TB_PREFIX . "ndata set viewed = 1 where id = $id"; - return mysqli_query($this->dblink,$q); - } - - function addNotice($uid, $toWref, $ally, $type, $topic, $data, $time = 0) { - list($uid, $toWref, $ally, $type, $topic, $data, $time) = $this->escape_input((int) $uid, (int) $toWref, (int) $ally, (int) $type, $topic, $data, (int) $time); - - //We don't need to send reports to Nature or Natars - if($uid == 2 || $uid == 3) return; - if($time == 0) $time = time(); - - $q = "INSERT INTO " . TB_PREFIX . "ndata (id, uid, toWref, ally, topic, ntype, data, time, viewed) values (0,'$uid','$toWref','$ally','$topic',$type,'$data',$time,0)"; - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - function getNotice($uid) { - list($uid) = $this->escape_input((int) $uid); - - $q = "SELECT * FROM " . TB_PREFIX . "ndata where uid = $uid and del = 0 ORDER BY time ".(isset($_GET['o']) && $_GET['o'] == 1 ? 'ASC' : 'DESC'); - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - function getNotice2($id, $field = null, $use_cache = true) { - list($id, $field) = $this->escape_input((int) $id, $field); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$noticesCacheById, $id)) && !is_null($cachedValue)) { - return $cachedValue[$field]; - } - - $q = "SELECT * FROM " . TB_PREFIX . "ndata where `id` = $id ORDER BY time ".(isset($_GET['o']) && $_GET['o'] == 1 ? 'ASC' : 'DESC')." LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - - self::$noticesCacheById[$id] = $dbarray; - return is_null($field) ? self::$noticesCacheById[$id] : self::$noticesCacheById[$id][$field]; - } - - function getUnViewNotice($uid) { - list($uid) = $this->escape_input((int) $uid); - - $q = "SELECT * FROM " . TB_PREFIX . "ndata where uid = $uid AND viewed=0 ORDER BY time ".(isset($_GET['o']) && $_GET['o'] == 1 ? 'ASC' : 'DESC'); - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - /** - * Delete expired trade routes - * - */ - - function delTradeRoute() { - $time = time(); - $q = "DELETE from " . TB_PREFIX . "route where timeleft < $time"; - return mysqli_query($this->dblink, $q); - } - - function createTradeRoute($uid,$wid,$from,$r1,$r2,$r3,$r4,$start,$deliveries,$merchant,$time) { - list($uid,$wid,$from,$r1,$r2,$r3,$r4,$start,$deliveries,$merchant,$time) = $this->escape_input((int) $uid,(int) $wid,(int) $from,(int) $r1,(int) $r2,(int) $r3,(int) $r4,(int) $start,(int) $deliveries,(int) $merchant,(int) $time); - - $x = "UPDATE " . TB_PREFIX . "users SET gold = gold - 2 WHERE id = " . $uid; - mysqli_query( $this->dblink, $x ); - $timeleft = time() + 604800; - $q = "INSERT into " . TB_PREFIX . "route values (0,$uid,$wid,$from,$r1,$r2,$r3,$r4,$start,$deliveries,$merchant,$time,$timeleft)"; - - return mysqli_query( $this->dblink, $q ); - } - - // no need to cache this method - function getTradeRoute($from) { - list($from) = $this->escape_input((int) $from); - - $q = "SELECT * FROM " . TB_PREFIX . "route where `from` = $from ORDER BY timestamp ASC"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - // no need to cache this method - function getTradeRoute2($id) { - list($id) = $this->escape_input((int) $id); - - $q = "SELECT * FROM " . TB_PREFIX . "route where id = $id LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - return $dbarray; - } - - // no need to cache this method - function getTradeRouteUid($id) { - list($id) = $this->escape_input((int) $id); - - $q = "SELECT uid FROM " . TB_PREFIX . "route where id = $id LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - return $dbarray['uid']; - } - - function editTradeRoute($id,$column,$value,$mode) { - list($id,$column,$value,$mode) = $this->escape_input((int) $id,$column,(int) $value,$mode); - - if ( ! $mode ) { - $q = "UPDATE " . TB_PREFIX . "route set $column = $value where id = $id"; - } else { - $q = "UPDATE " . TB_PREFIX . "route set $column = $column + $value where id = $id"; - } - - return mysqli_query( $this->dblink, $q ); - } - - function deleteTradeRoute($id) { - list($id) = $this->escape_input((int) $id); - - $q = "DELETE FROM " . TB_PREFIX . "route where id = $id"; - return mysqli_query($this->dblink,$q); - } - - function deleteTradeRoutesByVillage($id) { - list($id) = $this->escape_input((int) $id); - - $q = "DELETE FROM " . TB_PREFIX . "route where `from` = $id"; - return mysqli_query($this->dblink,$q); - } - - function addBuilding($wid, $field, $type, $loop, $time, $master, $level) { - list($wid, $field, $type, $loop, $time, $master, $level) = $this->escape_input((int) $wid, $field, (int) $type, (int) $loop, (int) $time, (int) $master, (int) $level); - - $x = "UPDATE " . TB_PREFIX . "fdata SET f" . $field . "t=" . $type . " WHERE vref=" . $wid; - mysqli_query($this->dblink,$x); - $q = "INSERT into " . TB_PREFIX . "bdata values (0, $wid, $field, $type, $loop, $time, $master, $level)"; - return mysqli_query($this->dblink,$q); - } - - /** - * Get the time required to build a specified building - * - * @param int $id The ID where the building is located - * @param int $tid The type of the building - * @param int $plus The construction queue count - * @param int $wref The village ID - * @param array $buildingArray The array containing the buildings in the village - * @return int Returns the building time - */ - - function getBuildingTime($id, $tid, $plus, $wref, $buildingArray) { - list($id, $tid, $plus, $wref, $buildingArray) = $this->escape_input((int) $id, (int) $tid, (int) $plus, (int) $wref, $buildingArray); - global ${'bid'.$tid}, $bid15; - - $dataArray = ${'bid'.$tid}; - - //Check if we've the main building or not - $mainBuilding = $this->getFieldLevelInVillage($wref, 15); - if($tid == 15){ - if($mainBuilding == 0) return round($dataArray[$buildingArray['f'.$id] + $plus]['time'] / SPEED * 5); - else return round($dataArray[$buildingArray['f'.$id] + $plus]['time'] / SPEED); - }else{ - if($mainBuilding > 0) { - return round($dataArray[$buildingArray['f'.$id] + $plus]['time'] * ($bid15[$mainBuilding]['attri'] / 100) / SPEED); - } - else return round($dataArray[$buildingArray['f'.$id] + $plus]['time'] * 5 / SPEED); - } - } - - /** - * Called when removing a queued building by a player or because destroyed by catapults - * - * @param int $d The ID of the building which needs to be deleted - * @param int $tribe The tribe of the player - * @param int $wid The village ID of the player - * @param array $fieldsArray Optional, the array containing the village building/resource fields - * @return bool Returns true if the building was delete successfully, false otherwise - */ - - function removeBuilding($d, $tribe, $wid, $fieldsArray = []) { - list($d, $tribe, $wid, $fieldsArray) = $this->escape_input((int) $d, (int) $tribe, (int) $wid, $fieldsArray); - - //Variables initialization - $jobToDelete = []; - $canBeRemoved = true; - $time = time(); - $newTime = $loopTime = 0; - if(empty($fieldsArray)) $fieldsArray = $this->getResourceLevel($wid); - $jobs = $this->getJobs($wid); - - //Search the job which needs to be deleted - foreach($jobs as $job){ - //We need to modify waiting loop orders - if(!empty($jobToDelete) && $job['loopcon'] == 1 && ($tribe != 1 || $tribe == 1 && (($jobToDelete['field'] <= 18 && $job['field'] <= 18) || ($jobToDelete['field'] >= 19 && $job['field'] >= 19)))){ - - //Does this job have the same field of the deleted one? - $sameBuilding = $jobToDelete['field'] == $job['field'] ? 1 : 0; - - //Can the building be completely removed from the village? - if($sameBuilding && $canBeRemoved) $canBeRemoved = !$sameBuilding; - - //Get the time required to upgrade the building at the given level - $newTime = $this->getBuildingTime( - $job['field'], - $job['type'], - $job['level'] - $fieldsArray['f'.$job['field']] - $sameBuilding, - $wid, - $fieldsArray); - - //Increase the looptime - $loopTime += $newTime; - - //Update the values - $q = "UPDATE - " .TB_PREFIX. "bdata - SET - ".($job['master'] ? "" : "loopcon = 0,")." - timestamp = ".($job['master'] ? $newTime : $loopTime + $time)." - ".($sameBuilding ? ", level = level - 1" : "")." - WHERE - id = ".$job['id']; - mysqli_query($this->dblink, $q); - - } - - //We found the job that needs to be deleted - if($job['id'] == $d) $jobToDelete = $job; - } - - if($canBeRemoved && $jobToDelete['field'] > 18 && $jobToDelete['field'] != 99 && $jobToDelete['level'] - 1 == 0){ - $this->setVillageLevel($wid, ["f".$jobToDelete['field']."t"], [0]); - } - - $q = "DELETE FROM " . TB_PREFIX . "bdata where id = $d"; - return mysqli_query($this->dblink, $q); - } - - function addDemolition($wid, $field) { - list($wid, $field) = $this->escape_input((int) $wid, (int) $field); - - global $building, $village, $session; - - // check if we're not demolishing an Embassy if the player is in an alliance - if ($this->getFieldType($wid,$field) == 18 && $session->alliance) { - - // get field level, alliance members count and the minimum - // level of Embassy to be able to hold this number of people - $fLevel = $this->getFieldLevel($wid,$field); - $membersCount = $this->countAllianceMembers($session->alliance); - $minEmbassyLevel = $this->getMinEmbassyLevel($membersCount); - $isOwner = $this->isAllianceOwner($session->uid) == $session->alliance; - - // make sure minimum Embassy level is 3 of the player is alliance owner - if ($isOwner && $minEmbassyLevel < 3) { - $minEmbassyLevel = 3; - } - - // check if this user is the founder of the alliance - // and whether we're not trying to demolish under the lowest level - // which can hold current number of members - if ($fLevel == $minEmbassyLevel && $session->alliance && $isOwner) { - // check if we have any other players in this alliance left - if ($membersCount > 1) { - // check if this player has only 1 last Embassy on a sufficient level - if ($this->getSingleFieldTypeCount($session->uid, 18, '>=', $minEmbassyLevel) == 1) { - // cannot demolish Embassy further until the player quits the alliance, - // as they are founder and there are still other players in the alliance, - // thus destroying Embassy would evict this player from the alliance - // and leave a new random leader - return 18; - } - } - } - } - - $q = "DELETE FROM ".TB_PREFIX."bdata WHERE field=$field AND wid=$wid"; - mysqli_query($this->dblink,$q); - $uprequire = $building->resourceRequired($field,$village->resarray['f'.$field.'t'],0); - $q = "INSERT INTO ".TB_PREFIX."demolition VALUES (".$wid.",".$field.",".($fLevel-1).",".(time()+floor($uprequire['time']/2)).")"; - mysqli_query($this->dblink,$q); - - return true; - } - - // no need to cache this method - function getDemolition($wid = 0) { - list($wid) = $this->escape_input((int) $wid); - - if($wid) { - $q = "SELECT * FROM " . TB_PREFIX . "demolition WHERE vref=" . $wid; - } else { - $q = "SELECT * FROM " . TB_PREFIX . "demolition WHERE timetofinish<=" . time(); - } - $result = mysqli_query($this->dblink,$q); - if(!empty($result)) { - return $this->mysqli_fetch_all($result); - } else { - return NULL; - } - } - - function finishDemolition($wid) { - list($wid) = $this->escape_input((int) $wid); - - $q = "UPDATE " . TB_PREFIX . "demolition SET timetofinish=" . time() . " WHERE vref=" . $wid; - $result= mysqli_query($this->dblink,$q); - return mysqli_affected_rows($this->dblink); - } - - function delDemolition($wid, $checkEmbassy = false) { - $wid = (int) $wid; - - if ($checkEmbassy) { - // check if we've demolished an Embassy - // and select the user it belonged to as well, - // so we can potentially evict them from the alliance - // and remove it - if they don't have any more Embassies - // or if the they are founder and they have no more lvl 3+ Embassies - $q = ' - SELECT - u.id, u.username, u.alliance, d.buildnumber, d.lvl - FROM - '.TB_PREFIX.'demolition d - LEFT JOIN '.TB_PREFIX.'vdata v ON d.vref = v.wref - LEFT JOIN '.TB_PREFIX.'users u ON u.id = v.owner - WHERE d.vref = '.$wid; - - $res = $this->mysqli_fetch_all(mysqli_query($this->dblink, $q), MYSQLI_ASSOC); - foreach ($res as $key) { - // if this building being demolished is an Embassy or was demolished completely - // and the player is in an alliance, check and update their alliance status - if (($key['alliance'] > 0) && ($key['lvl'] == 0 || $this->getFieldType($wid, $key['buildnumber']) == 18)) { - $this->checkAllianceEmbassiesStatus($key, true); - } - } - } - - $q = "DELETE FROM " . TB_PREFIX . "demolition WHERE vref=" . $wid; - return mysqli_query($this->dblink,$q); - } - - /** - * Returns a minimum level for an Embassy in order to accomodate - * the given number of members. - * - * @param int $membersCount Number of members for an alliance to accomodate. - * Maximum = 60 - * - * @return number Returns the level of Embassy required to accomodate - * the given number of members. - */ - public function getMinEmbassyLevel($membersCount) { - $membersCount = (int) $membersCount; - - if ($membersCount > 60) { - $membersCount = 60; - } - - if ($membersCount < 0) { - $membersCount = 0; - } - - return ceil((20 / 60) * $membersCount); - } - - /*** - * Returns the number of members an alliance can hold - * with the current level of leader's Embassy. - * - * @param int $embassyLevel Level of leader's Embassy building. - * - * @return number Returns the number of members an alliance - * can hold with the current level of leader's Embassy. - */ - public function getAllianceCapacity($embassyLevel) { - $embassyLevel = (int) $embassyLevel; - - if ($embassyLevel > 20) { - $embassyLevel = 20; - } - - if ($embassyLevel < 0) { - $embassyLevel = 0; - } - - // ceil is not really necessary but to make sure - // decimals won't crack this up, it's here - return ceil((60 / 20) * $embassyLevel); - } - - /** - * Checks and potentially updates the status of a player-alliance - * relationship given the user input. - * - * @param array $userData Data of the user for which we want to check - * the player-alliance relationship. - * @param boolean $demolition Determines whether the request came from - * a buiding demolition (true) or from a battle - * report (false). - * - * @return boolean Returns TRUE if there was no change - * to the player-alliance relationship - * FALSE if the player was an alliance - * leader and the alliance was destroyed - * and 0 when the player was evicted from - * the alliance due to Embassy damage. - */ - public function checkAllianceEmbassiesStatus($userData, $demolition = false, $use_cache = true) { - // TODO: refactor this and break it into more smaler methods - //global $session; - - if ($userData['alliance']) { - // check whether this player is an alliance owner - $isOwner = ($userData['alliance'] && $this->isAllianceOwner($userData['id'], $use_cache) == $userData['alliance']); - - $minimumExistingEmbassyRecords = 1; - - // if they are not an alliance owner, simply check whether we have any Embassies - // at lvl 1+ standing somewhere - if (!$isOwner) { - // TODO: replace magic numbers by constants (18 = Embassy) - if ($this->getSingleFieldTypeCount($userData['id'], 18, '>=', 1, $use_cache) < $minimumExistingEmbassyRecords) { - - // the player has no more Embassies, evict them from the alliance - mysqli_query($this->dblink, 'UPDATE '.TB_PREFIX.'users SET alliance = 0 WHERE id = '.$userData['id']); - - // unset the alliance in session, if we're evicting - // currently logged-in player - //if ($session->uid == $userData['id']) { - // $_SESSION['alliance_user'] = 0; - //} - - // notify them via in-game messaging, if we come from a demolition, - // otherwise return a result which can be used in battle reports - if ($demolition) { - $this->sendMessage( - $userData['id'], - 4, - 'You left the alliance', - $this->escape("Hi, ".$userData['username']."!\n\nThis is to inform you that due to a finished demolition of your last Embassy, you have now successfully left your alliance.\n\nYours sincerely,\nServer Robot :)"), - 0, - 0, - 0, - 0, - 0, - true); - $this->deleteAlliPermissions($userData['id']); - } else { - // player has been removed from the alliance - $this->sendMessage( - $userData['id'], - 4, - 'An attack has forced you to leave the alliance', - $this->escape("Hi, ".$userData['username']."!\n\nThis is to inform you that due to a successful attack and destruction of your last Embassy, you have been forced to leave your alliance.\n\nTo re-establish your position in this alliance, you will need to build a new Embassy and ask the leader to send you an invite again.\n\nYours sincerely,\nServer Robot :)"), - 0, - 0, - 0, - 0, - 0, - true); - $this->deleteAlliPermissions($userData['id']); - return 0; - } - - } - } else { - // the player IS an alliance owner, check if we need to take any action - $membersCount = $this->countAllianceMembers($userData['alliance'], $use_cache); - $minAllianceEmbassyLevel = $this->getMinEmbassyLevel($membersCount); - - // in this case, the minimum Embassy level cannot go below 3, - // since this player is a leader and as such, he needs at least - // a level 3 Embassy - if ($minAllianceEmbassyLevel < 3) { - $minAllianceEmbassyLevel = 3; - } - - $takeAction = ( - // was the Embassy taken below a threshold level? - ($userData['lvl'] <= $minAllianceEmbassyLevel) - && - // check for standing Embassies with sufficient level - // TODO: replace magic numbers by constants (18 = Embassy) - ($this->getSingleFieldTypeCount($userData['id'], 18, '>=', $minAllianceEmbassyLevel, false, $use_cache) < $minimumExistingEmbassyRecords) - ); - - // the Embassy got damaged below a sufficient level and there are no more Embassies - // at that level standing on this player's account, additional actions are needed - if ($takeAction) { - - // load all alliance members - $members = $this->getAllMember($userData['alliance'], 0, $use_cache); - - // if we come from demolition, we need to evict all new members - // that accepted an invitation while level 3 of the last - // Embassy was already under demolition. The demolition dialog itself - // already checks if there are no more people other than the owner - // present before the demolition is allowed. - if ($demolition) { - $evicts = []; - foreach ($members as $member) { - // evict the player from the alliance - $evicts[] = $member['id']; - - // notify them via in-game messaging - $this->sendMessage( - $member['id'], - 4, - 'Your alliance was disbanded', - ( - ($member['id'] == $userData['id']) - ? - $this->escape("Hi, ".$userData['username']."!\n\nThis is to inform you that due to a finished demolition of your last Embassy at level 3, and the fact that you were the leader of your alliance, this alliance has been disbanded.\n\nIn order to found a new alliance, please build a level 3 Embassy again in one of your villages.\n\nYours sincerely,\nServer Robot :)") - : - $this->escape("Hi, ".$member['username']."!\n\nThis is to inform you that due to a demolition of your alliance founder's last Embassy below level 3, this alliance has been disbanded.\n\n\You can now accept invitations from other alliances or found a new alliance yourself.\n\nYours sincerely,\nServer Robot :)") - ), - 0, - 0, - 0, - 0, - 0, - true); - $this->deleteAlliPermissions($member['id']); - } - - mysqli_query($this->dblink, 'UPDATE '.TB_PREFIX.'users SET alliance = 0 WHERE id IN('.implode(',', $evicts).")"); - } else { - // we come from a battle result, therefore we need to check - // for the first player in the alliance who has a sufficient - // level Embassy and to which we can auto-reassign the leadership - $newLeaderFound = false; - - // in case we'll need these later to disband the alliance, - // we'll collect them inside this foeach loop - $memberIDs = []; - - // no need for this whole foreach loop if this player is the lone - // founder and member of their alliance - if ($membersCount > 1) { - foreach ($members as $member) { - if (!$newLeaderFound && $this->getSingleFieldTypeCount($member['id'], 18, '>=', $minAllianceEmbassyLevel) >= 1) { - // found a new leader for the alliance - $newLeaderFound = true; - $newleader = $member['id']; - $q = "UPDATE " . TB_PREFIX . "alidata set leader = ".(int) $newleader." where id = ".(int) $userData['alliance']; - $this->query($q); - $this->updateAlliPermissions($newleader, $userData['alliance'], "Leader", 1, 1, 1, 1, 1, 1, 1); - Automation::updateMax($newleader); - - // update permissions for the old leader - $this->updateAlliPermissions($userData['id'], $userData['alliance'], "Former Leader", 0, 0, 0, 0, 0, 0, 0); - - // notify new leader via in-game messaging - $this->sendMessage( - $newleader, - 4, - 'You are now the alliance leader', - $this->escape("Hi, ".$member['username']."!\n\nThis is to inform you that there was a successful attack on player ".$userData['username']." which has damaged their Embassy badly enough that they are no longer able to sustain the leadership of your alliance.\n\nSince your Embassy level is of a sufficient level, you have been auto-elected to the position of a new leader of your alliance with all duties and responsibilities thereof.\n\nYours sincerely,\nServer Robot :)"), - 0, - 0, - 0, - 0, - 0, - true); - } - - $memberIDs[] = $member['id']; - } - } else { - // if there is only 1 member and it's the actual founder - $memberIDs[] = $userData['id']; - } - - // if there wasn't anyone with a sufficient level of Embassy - // among the existing members, disperse this alliance - if (!$newLeaderFound) { - - // evict all members from the alliance - mysqli_query($this->dblink, 'UPDATE '.TB_PREFIX.'users SET alliance = 0 WHERE id IN('.implode(',', $memberIDs).")"); - - // notify all of them via in-game messaging - foreach ($members as $member) { - $this->sendMessage( - $member['id'], - 4, - 'Your alliance was dispersed', - ( - ($member['id'] == $userData['id']) - ? - $this->escape("Hi, ".$userData['username']."!\n\nThis is to inform you that due to a successful attack that has degraded your last Embassy to a level ".($membersCount > 1 ? "which is unable to hold all ".$membersCount." alliance members, and because there was no other alliance member with an Embassy on a high enough level to overtake the leadership," : "lower then 3 - which is required to found and hold your own alliance - ")." your alliance has been dispersed.\n\nYours sincerely,\nServer Robot :)") - : - $this->escape("Hi, ".$member['username']."!\n\nThis is to inform you that due to a successful attack on your alliance leader's Embassy by another player that degraded it below threshold allowed to hold all ".$membersCount." alliance members, and because there was no other alliance member with an Embassy on a high enough level to overtake the leadership, your alliance has been dispersed.\n\nYours sincerely,\nServer Robot :)") - ), - 0, - 0, - 0, - 0, - 0, - true); - } - $this->deleteAlliPermissions($member['id']); - } else { - // let's determine whether to keep currently attacked player - // in the alliance or not - if ($userData['lvl'] > 0 || $this->getSingleFieldTypeCount($member['id'], 18, '>=', 1, $use_cache) >= $minimumExistingEmbassyRecords) { - $keepCurrentPlayer = true; - } else { - $keepCurrentPlayer = false; - } - - // if a new leader was found, notify all alliance member of this change - // notify all of them via in-game messaging - foreach ($members as $member) { - // don't send duplicate messages to the new leader - if ($member['id'] != $newleader) { - // also, don't send to the attacked player if we're - // not keeping them in alliance - if ($keepCurrentPlayer || (!$keepCurrentPlayer && $member['id'] != $userData['id'])) - $this->sendMessage( - $member['id'], - 4, - 'Your alliance has a new leader', - ( - ($member['id'] == $userData['id']) - ? - $this->escape("Hi, ".$userData['username']."!\n\nThis is to inform you that due to a successful attack that has degraded your last Embassy to a level which is unable to hold all ".$membersCount." alliance members, another alliance member who meets these criteria has been auto-elected as a new alliance leader.\n\nAdditionally - due to the Embassy destruction - you have been forcefuly evicted from your alliance.\n\nPlease re-establish the connection with your alliance by building a new Embassy and contacting the new leader for an invitation.\n\nYours sincerely,\nServer Robot :)") - : - $this->escape("Hi, ".$member['username']."!\n\nThis is to inform you that due to a successful attack on your alliance leader's Embassy by another player, another alliance member with enough Embassy capacity has been auto-elected as the new alliance leader.\n\nYours sincerely,\nServer Robot :)") - ), - 0, - 0, - 0, - 0, - 0, - true); - } - $this->deleteAlliPermissions($member['id']); - } - - // evict current player from the alliance - // if this was their last Embassy and was completely destroyed - if (!$keepCurrentPlayer) { - mysqli_query($this->dblink, 'UPDATE '.TB_PREFIX.'users SET alliance = 0 WHERE id = '.$userData['id']); - - // unset the alliance in session, if we're evicting - // currently logged-in player - if ($session->uid == $userData['id']) { - $_SESSION['alliance_user'] = 0; - } - - // notify the evicted player - $this->sendMessage( - $userData['id'], - 4, - 'An attack has forced you to leave the alliance', - $this->escape("Hi, ".$userData['username']."!\n\nThis is to inform you that due to a successful attack and destruction of your last Embassy, you have been forced to leave your alliance.\n\nTo re-establish your position in this alliance, you will need to build a new Embassy and ask the newly auto-elected leader to send you an invite again.\n\nYours sincerely,\nServer Robot :)"), - 0, - 0, - 0, - 0, - 0, - true); - } - $this->deleteAlliPermissions($userData['id']); - } - } - - // execute a method that will delete an alliance - // if no members are left in it - $this->deleteAlliance($userData['alliance']); - - return isset($newLeaderFound) && $newLeaderFound === true; - } - } - } - - // no changes in player-to-alliance relationship - return true; - } - - function checkEmbassiesAfterBattle($vid, $current_level, $use_cache = true) { - $userData = $this->getUserArray($this->getVillageField($vid, "owner"), 1); - - Automation::updateMax($this->getVillageField($vid,"owner")); - $allianceStatus = $this->checkAllianceEmbassiesStatus([ - 'id' => $userData['id'], - 'alliance' => $userData["alliance"], - 'username' => $userData["username"], - 'lvl' => $current_level - ], false, $use_cache); - - if ($allianceStatus === false) return ' This player\'s alliance has been dispersed.'; - else if ($allianceStatus === 0) return ' Player was forced to leave their alliance.'; - else return ''; // all is good, no need to append additional alliance-related text - } - - function isThereAWinner(){ - $q = "SELECT Count(*) as Total FROM ".TB_PREFIX."fdata WHERE f99 = 100 and f99t = 40"; - $result = mysqli_fetch_array(mysqli_query($this->dblink, $q), MYSQLI_ASSOC); - return $result['Total'] > 0; - } - - /** - * Modify or delete a building being constructed/in queue - * - * @param int The village ID - * @param int $field The field where the building is located - * @param array $levels The new level of the building and the old one - * @param int $tribe The player's tribe - */ - - function modifyBData($wid, $field, $levels, $tribe){ - list($wid, $field, $levels, $tribe) = $this->escape_input((int) $wid, (int) $field, (int) $levels, (int) $tribe); - - if($levels[0] == 0){ - $q = "SELECT id FROM " .TB_PREFIX. "bdata WHERE wid = $wid AND field = $field"; - $orders = $this->mysqli_fetch_all(mysqli_query($this->dblink, $q)); - foreach($orders as $order) $this->removeBuilding($order['id'], $tribe, $wid); - } - else mysqli_query($this->dblink, $q = "UPDATE " .TB_PREFIX. "bdata SET level = level - $levels[1] + $levels[0] WHERE wid = $wid AND field = $field"); - } - - private function getBData($wid, $use_cache = true) { - $wid = (int) $wid; - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && isset(self::$buildingsUnderConstructionCache[$wid]) && is_array(self::$buildingsUnderConstructionCache[$wid]) && !count(self::$buildingsUnderConstructionCache[$wid])) { - return []; - } else if ($use_cache && ($cachedValue = self::returnCachedContent(self::$buildingsUnderConstructionCache, $wid)) && !is_null($cachedValue)) { - return self::$buildingsUnderConstructionCache[$wid]; - } - - $q = "SELECT * FROM " . TB_PREFIX . "bdata where wid = $wid order by master,timestamp ASC"; - $result = $this->mysqli_fetch_all(mysqli_query($this->dblink,$q)); - - self::$buildingsUnderConstructionCache[$wid] = $result; - return $result; - } - - // do not cache output, as building jobs can change when using instant build (PLUS) etc. - function getJobs($wid) { - return $this->getBData($wid, false); - } - - function FinishWoodcutter($wid) { - $bdata = $this->getBData($wid); - $time = time()-1; - - // find our woodcutter - $dbarray = []; - foreach ($bdata as $row) { - if ($row['type'] == 1) { - $dbarray = $row; - break; - } - } - - // no woodcutters? just return - if (!count($dbarray)) { - return; - } - - // make it complete - $q = "UPDATE ".TB_PREFIX."bdata SET timestamp = $time WHERE id = ".$dbarray['id']; - $this->query($q); - - $tribe = $this->getUserField($this->getVillageField($wid, "owner"), "tribe", 0); - - // find first field that's the next one in the loop after our finished woodcutter - $dbarray2 = []; - foreach ($bdata as $row) { - if ($row['loopcon'] == 1 && ($tribe == 1 ? $row['field'] >= 19 : true)) { - $dbarray2 = $row; - break; - } - } - - // if found, update it's finish time by subtracting the resulting time for our woodcutter, - // which is now finished - if (count($dbarray2)){ - $wc_time = $dbarray['timestamp']; - $q2 = "UPDATE ".TB_PREFIX."bdata SET timestamp = timestamp - $wc_time WHERE id = ".$dbarray2['id']; - $this->query($q2); - } - } - - function getMasterJobs($wid) { - // cache data - $bdata = $this->getBData($wid); - - // return all master jobs - $data = []; - foreach ($bdata as $row) { - if ($row['master'] == 1) $data[] = $row; - } - - return $data; - } - - function getMasterJobsByField($wid,$field) { - // cache data - $bdata = $this->getBData($wid); - - // return all master jobs for the requested field - $data = []; - foreach ($bdata as $row) { - if ($row['master'] == 1 && $row['field'] == $field) { - $data[] = $row; - } - } - - return $data; - } - - function getBuildingByField($wid,$field) { - // cache data - $bdata = $this->getBData($wid); - - // return all non-master jobs for the requested field - $data = []; - foreach ($bdata as $row) { - if ($row['master'] == 0 && $row['field'] == $field) { - $data[] = $row; - } - } - - return $data; - } - - // no need to cache this method - function getBuildingByField2($wid,$field) { - list($wid,$field) = $this->escape_input((int) $wid,(int) $field); - - $q = "SELECT Count(*) as Total FROM " . TB_PREFIX . "bdata where wid = $wid and field = $field and master = 0"; - $result = mysqli_fetch_array(mysqli_query($this->dblink,$q), MYSQLI_ASSOC); - return $result['Total']; - } - - function getBuildingByType($wid,$type) { - // cache data - $bdata = $this->getBData($wid); - $type = (strpos($type, ',') === false ? [(int) $type] : explode(',', str_replace(' ', '', $this->escape($type)))); - - // return all jobs which are of the requested type - $data = []; - foreach ($bdata as $row) { - if (in_array($row['field'], $type)) { - $data[] = $row; - } - } - - return $data; - } - - function getBuildingByType2($wid,$type) { - $wid = (int) $wid; - - if (!is_array($type)) { - $type = [$type]; - } else { - foreach ($type as $index => $typeValue) { - $type[$index] = (int) $typeValue; - } - } - - $q = "SELECT CONCAT(type, \"=\", Count(type)) FROM " . TB_PREFIX . "bdata where wid = $wid and type IN(".implode(', ', $type).") and master = 0 GROUP BY type"; - $result = mysqli_query($this->dblink, $q); - $newresult = []; - - if (mysqli_num_rows($result)) { - while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) { - if ($row[0]) { - $val = explode( '=', $row[0] ); - $newresult[ $val[0] ] = $val[1]; - } - } - - $result = $newresult; - - } else { - $result = []; - } - - return $result; - } - - function getDorf1Building($wid) { - // cache data - $bdata = $this->getBData($wid); - - // return all non-master jobs for field type under 19 - $data = []; - foreach ($bdata as $row) { - if ($row['master'] == 0 && $row['field'] < 19) $data[] = $row; - } - - return $data; - } - - function getDorf2Building($wid) { - // cache data - $bdata = $this->getBData($wid); - - // return all non-master jobs for field type above 18 - $data = []; - foreach ($bdata as $row) { - if ($row['master'] == 0 && $row['field'] > 18) $data[] = $row; - } - - return $data; - } - - function updateBuildingWithMaster($id, $time, $loop) { - list($id, $time, $loop) = $this->escape_input((int) $id, (int) $time, (int) $loop); - - $q = "UPDATE " . TB_PREFIX . "bdata SET master = 0, timestamp = ".$time.", loopcon = ".$loop." WHERE id = ".$id.""; - return mysqli_query($this->dblink,$q); - } - - function getVillageByName($name, $use_cache = true) { - return $this->getVillage($name, 1, $use_cache)['wref']; - } - - function getVillageByOwner($uid, $use_cache = true) { - $uid = (int) $uid; - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$villageDataByOwnerCache, $uid)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = 'SELECT * FROM `' . TB_PREFIX . 'vdata` WHERE `owner` = ' . $uid . ' LIMIT 1'; - $result = mysqli_fetch_array(mysqli_query($this->dblink,$q), MYSQLI_ASSOC); - - self::$villageDataByOwnerCache[$uid] = $result; - return self::$villageDataByOwnerCache[$uid]; - } - - /*************************** - Function to set accept flag on market - References: id - ***************************/ - function setMarketAcc($id) { - if (!is_array($id)) { - $id = [$id]; - } - - foreach ($id as $index => $value) { - $id[$index] = (int) $value; - } - - $q = "UPDATE " . TB_PREFIX . "market set accept = 1 where id IN(".implode(', ', $id ).")"; - return mysqli_query($this->dblink,$q); - } - - /*************************** - Function to send resource to other village - Mode 0: Send - Mode 1: Cancel - References: Wood/ID, Clay, Iron, Crop, Mode - ***************************/ - function sendResource($ref, $clay, $iron, $crop, $merchant, $mode) { - // always prepare for multiple inserts at once - if (!is_array($ref)) { - $ref = [$ref]; - $clay = [$clay]; - $iron = [$iron]; - $crop = [$crop]; - $merchant = [$merchant]; - } - - $pairs = []; - foreach ($ref as $index => $refValue) { - if(!$mode) { - $pairs[] = '(0, ' . (int) $refValue . ', ' . (int) $clay[$index] . ', ' . (int) $iron[$index] . ', ' . (int) $crop[$index] . ', ' . (int) $merchant[$index] . ')'; - } else { - $pairs[] = (int) $refValule; - } - } - - if(!$mode) { - $q = "INSERT INTO " . TB_PREFIX . "send VALUES ".implode(', ', $pairs); - mysqli_query($this->dblink,$q); - return mysqli_insert_id($this->dblink); - } else { - $q = "DELETE FROM " . TB_PREFIX . "send WHERE id IN(".implode(', ', $pairs).")"; - return mysqli_query($this->dblink,$q); - } - } - - /*************************** - Function to get resources back if you delete offer - References: VillageRef (vref) - Made by: Dzoki - ***************************/ - - function getResourcesBack($vref, $gtype, $gamt) { - list($vref, $gtype, $gamt) = $this->escape_input((int) $vref, (int) $gtype, (int) $gamt); - - //Xtype (1) = wood, (2) = clay, (3) = iron, (4) = crop - if($gtype == 1) { - $q = "UPDATE " . TB_PREFIX . "vdata SET `wood` = `wood` + $gamt WHERE wref = $vref"; - return mysqli_query($this->dblink,$q); - } else - if($gtype == 2) { - $q = "UPDATE " . TB_PREFIX . "vdata SET `clay` = `clay` + $gamt WHERE wref = $vref"; - return mysqli_query($this->dblink,$q); - } else - if($gtype == 3) { - $q = "UPDATE " . TB_PREFIX . "vdata SET `iron` = `iron` + $gamt WHERE wref = $vref"; - return mysqli_query($this->dblink,$q); - } else - if($gtype == 4) { - $q = "UPDATE " . TB_PREFIX . "vdata SET `crop` = `crop` + $gamt WHERE wref = $vref"; - return mysqli_query($this->dblink,$q); - } - } - - /*************************** - Function to get info about offered resources - References: VillageRef (vref) - Made by: Dzoki - ***************************/ - - function getMarketField($vref, $id, $field, $use_cache = true) { - list($vref, $id, $field) = $this->escape_input($vref, $id, $field); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$marketFieldCache, $vref.$field)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT * FROM " . TB_PREFIX . "market WHERE id = $id AND vref = $vref"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - - self::$marketFieldCache[$vref.$field] = $dbarray[$field]; - return self::$marketFieldCache[$vref.$field]; - } - - function removeAcceptedOffer($id) { - list($id) = $this->escape_input((int) $id); - - $q = "DELETE FROM " . TB_PREFIX . "market where id = $id"; - $result = mysqli_query($this->dblink,$q); - return mysqli_fetch_assoc($result); - } - - /** - * Function to add market offer - * - * Mode 0: Add - * Mode 1: Cancel - * References: Village, Give, Amt, Want, Amt, Time, Alliance, Mode - */ - - function addMarket($vid, $gtype, $gamt, $wtype, $wamt, $time, $alliance, $merchant, $mode) { - list($vid, $gtype, $gamt, $wtype, $wamt, $time, $alliance, $merchant, $mode) = $this->escape_input((int) $vid, (int) $gtype, (int) $gamt, (int) $wtype, (int) $wamt, (int) $time, (int) $alliance, (int) $merchant, $mode); - - if(!$mode) { - $q = "INSERT INTO " . TB_PREFIX . "market values (0,$vid,$gtype,$gamt,$wtype,$wamt,0,$time,$alliance,$merchant)"; - mysqli_query($this->dblink,$q); - return mysqli_insert_id($this->dblink); - } else { - $q = "DELETE FROM " . TB_PREFIX . "market where id = $gtype and vref = $vid"; - return mysqli_query($this->dblink,$q); - } - } - - /*************************** - Function to get market offer - References: Village, Mode - ***************************/ - // no need to cache this method - function getMarket($vid, $mode) { - list($vid, $mode) = $this->escape_input((int) $vid, $mode); - - $alliance = (int) $this->getUserField($this->getVillageField($vid, "owner"), "alliance", 0); - if(!$mode) { - $q = "SELECT * FROM " . TB_PREFIX . "market where vref = $vid and accept = 0"; - } else { - $q = "SELECT * FROM " . TB_PREFIX . "market where vref != $vid and alliance = $alliance or vref != $vid and alliance = 0 and accept = 0"; - } - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - /*************************** - Function to get market offer - References: ID - ***************************/ - // no need to cache this method - function getMarketInfo($id) { - list($id) = $this->escape_input((int) $id); - - $q = "SELECT * FROM " . TB_PREFIX . "market where id = $id"; - $result = mysqli_query($this->dblink,$q); - return mysqli_fetch_assoc($result); - } - - function setMovementProc($moveid) { - if (!Math::isInt($moveid)) { - list($moveid) = $this->escape_input($moveid); - } - - // rather than re-selecting data and updating cache here, let's just - // flush the cache and let it re-cach itself as neccessary - self::$marketMovementCache = []; - - $q = "UPDATE " . TB_PREFIX . "movement set proc = 1 where moveid IN($moveid)"; - return mysqli_query($this->dblink,$q); - } - - /*************************** - Function to retrieve used merchant - References: Village - ***************************/ - function totalMerchantUsed($vid, $use_cache = true) { - list($vid) = $this->escape_input((int) $vid); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$merchantsUseCountCache, $vid)) && !is_null($cachedValue)) { - return $cachedValue; - } - - self::$merchantsUseCountCache[$vid] = mysqli_fetch_array(mysqli_query($this->dblink, ' - SELECT - IFNULL((SELECT sum('.TB_PREFIX.'send.merchant) FROM '.TB_PREFIX.'send, '.TB_PREFIX.'movement WHERE '.TB_PREFIX.'movement.`from` = '.$vid.' AND '.TB_PREFIX.'send.id = '.TB_PREFIX.'movement.ref AND '.TB_PREFIX.'movement.proc = 0 AND sort_type = 0), 0) + - IFNULL((SELECT sum(ref) FROM '.TB_PREFIX.'movement WHERE sort_type = 2 AND '.TB_PREFIX.'movement.`to` = '.$vid.' AND proc = 0), 0) + - IFNULL((SELECT sum(merchant) FROM '.TB_PREFIX.'market WHERE vref = '.$vid.' AND accept = 0), 0) - as merchants_used' - ), MYSQLI_ASSOC)['merchants_used']; - - return self::$merchantsUseCountCache[$vid]; - } - - function getMovement($type, $village, $mode, $use_cache = true) { - $array_passed = is_array($village); - - if (!$array_passed) { - $village = [(int) $village]; - } else { - foreach ($village as $index => $villageValue) { - $village[$index] = (int) $villageValue; - } - } - - if (!count($village)) { - return []; - } - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && !$array_passed && isset(self::$marketMovementCache[$type.$village[0].$mode]) && is_array(self::$marketMovementCache[$type.$village[0].$mode]) && !count(self::$marketMovementCache[$type.$village[0].$mode])) { - return self::$marketMovementCache[$type.$village[0].$mode]; - } else if ($use_cache && $array_passed) { - // check what we can return from cache - $newIDs = []; - foreach ($village as $key) { - if (!isset(self::$marketMovementCache[$type.$key.$mode])) { - $newIDs [] = $key; - } - } - - // everything's cached, just return the cache - if (!count($newIDs)) { - return self::$marketMovementCache; - } else { - // update remaining IDs to select and cache - $village = $newIDs; - } - } else if ($use_cache && !$array_passed && ($cachedValue = self::returnCachedContent(self::$marketMovementCache, $type.$village[0].$mode)) && !is_null($cachedValue)) { - // special case when we have empty arrays cached for this cache only - return ($array_passed ? self::$marketMovementCache: $cachedValue); - } - - $time = time(); - if(!$mode) { - $where = "from"; - } else { - $where = "to"; - } - switch($type) { - case 0: - $q = "SELECT * FROM " . TB_PREFIX . "movement, " . TB_PREFIX . "send where " . TB_PREFIX . "movement.`" . $where . "` IN(".implode(', ', $village).") and " . TB_PREFIX . "movement.ref = " . TB_PREFIX . "send.id and " . TB_PREFIX . "movement.proc = 0 and " . TB_PREFIX . "movement.sort_type = 0 ORDER BY endtime ASC"; - break; - case 1: - $q = "SELECT * FROM " . TB_PREFIX . "movement, " . TB_PREFIX . "send where " . TB_PREFIX . "movement.`" . $where . "` IN(".implode(', ', $village).") and " . TB_PREFIX . "movement.ref = " . TB_PREFIX . "send.id and " . TB_PREFIX . "movement.proc = 0 and " . TB_PREFIX . "movement.sort_type = 6 ORDER BY endtime ASC"; - break; - case 2: - $q = "SELECT * FROM " . TB_PREFIX . "movement where " . TB_PREFIX . "movement.`" . $where . "` IN(".implode(', ', $village).") and " . TB_PREFIX . "movement.proc = 0 and " . TB_PREFIX . "movement.sort_type = 2 ORDER BY endtime ASC"; - break; - case 3: - $q = "SELECT * FROM " . TB_PREFIX . "movement, " . TB_PREFIX . "attacks where " . TB_PREFIX . "movement.`" . $where . "` IN(".implode(', ', $village).") and " . TB_PREFIX . "movement.ref = " . TB_PREFIX . "attacks.id and " . TB_PREFIX . "movement.proc = 0 and " . TB_PREFIX . "movement.sort_type = 3 ORDER BY endtime ASC"; - break; - case 4: - $q = "SELECT * FROM " . TB_PREFIX . "movement, " . TB_PREFIX . "attacks where " . TB_PREFIX . "movement.`" . $where . "` IN(".implode(', ', $village).") and " . TB_PREFIX . "movement.ref = " . TB_PREFIX . "attacks.id and " . TB_PREFIX . "movement.proc = 0 and " . TB_PREFIX . "movement.sort_type = 4 ORDER BY endtime ASC"; - break; - case 5: - $q = "SELECT * FROM " . TB_PREFIX . "movement where " . TB_PREFIX . "movement.`" . $where . "` IN(".implode(', ', $village).") and sort_type = 5 and proc = 0 ORDER BY endtime ASC"; - break; - case 6: - $q = "SELECT * FROM " . TB_PREFIX . "movement," . TB_PREFIX . "odata, " . TB_PREFIX . "attacks where " . TB_PREFIX . "odata.wref IN(".implode(', ', $village).") and " . TB_PREFIX . "movement.to IN(".implode(', ', $village).") and " . TB_PREFIX . "movement.ref = " . TB_PREFIX . "attacks.id and " . TB_PREFIX . "attacks.attack_type != 1 and " . TB_PREFIX . "movement.proc = 0 and " . TB_PREFIX . "movement.sort_type = 3 ORDER BY endtime ASC"; - //$q = "SELECT * FROM " . TB_PREFIX . "movement," . TB_PREFIX . "odata, " . TB_PREFIX . "attacks where " . TB_PREFIX . "odata.conqured IN(".implode(', ', $village).") and " . TB_PREFIX . "movement.to = " . TB_PREFIX . "odata.wref and " . TB_PREFIX . "movement.ref = " . TB_PREFIX . "attacks.id and " . TB_PREFIX . "movement.proc = 0 and " . TB_PREFIX . "movement.sort_type = 3 ORDER BY endtime ASC"; - break; - case 7: - $q = "SELECT * FROM " . TB_PREFIX . "movement where " . TB_PREFIX . "movement.`" . $where . "` IN(".implode(', ', $village).") and sort_type = 4 and ref = 0 and proc = 0 ORDER BY endtime ASC"; - break; - case 8: - $q = "SELECT * FROM " . TB_PREFIX . "movement, " . TB_PREFIX . "attacks where " . TB_PREFIX . "movement.`" . $where . "` IN(".implode(', ', $village).") and " . TB_PREFIX . "movement.ref = " . TB_PREFIX . "attacks.id and " . TB_PREFIX . "movement.proc = 0 and " . TB_PREFIX . "movement.sort_type = 3 and " . TB_PREFIX . "attacks.attack_type = 1 ORDER BY endtime ASC"; - break; - case 34: - $q = "SELECT * FROM " . TB_PREFIX . "movement, " . TB_PREFIX . "attacks where " . TB_PREFIX . "movement.`" . $where . "` IN(".implode(', ', $village).") and " . TB_PREFIX . "movement.ref = " . TB_PREFIX . "attacks.id and " . TB_PREFIX . "movement.proc = 0 and " . TB_PREFIX . "movement.sort_type = 3 or " . TB_PREFIX . "movement.`" . $where . "` IN(".implode(', ', $village).") and " . TB_PREFIX . "movement.ref = " . TB_PREFIX . "attacks.id and " . TB_PREFIX . "movement.proc = 0 and " . TB_PREFIX . "movement.sort_type = 4 ORDER BY endtime ASC"; - break; - default: - return []; - } - - $result = $this->mysqli_fetch_all(mysqli_query($this->dblink,$q)); - - // return a single value - if (!$array_passed) { - self::$marketMovementCache[$type.$village[0].$mode] = $result; - } else { - if ($result && count($result)) { - foreach ( $result as $record ) { - self::$marketMovementCache[ $type . $record[ $where ] . $mode ][] = $record; - } - } - - // check for any missing IDs and fill them in with blanks, - // since no movements were found for these villages - foreach ($village as $key) { - if (!isset(self::$marketMovementCache[$type.$key.$mode])) { - self::$marketMovementCache[$type.$key.$mode] = []; - } - } - } - - return ($array_passed ? self::$marketMovementCache : self::$marketMovementCache[$type.$village[0].$mode]); - } - - function addA2b($ckey, $timestamp, $to, $t1, $t2, $t3, $t4, $t5, $t6, $t7, $t8, $t9, $t10, $t11, $type) { - list($ckey, $timestamp, $to, $t1, $t2, $t3, $t4, $t5, $t6, $t7, $t8, $t9, $t10, $t11, $type) = $this->escape_input($ckey, (int) $timestamp, (int) $to, (int) $t1, (int) $t2, (int) $t3, (int) $t4, (int) $t5, (int) $t6, (int) $t7, (int) $t8, (int) $t9, (int) $t10, (int) $t11, (int) $type); - - $q = "INSERT INTO " . TB_PREFIX . "a2b (ckey,time_check,to_vid,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11,type) VALUES ('$ckey', '$timestamp', '$to', '$t1', '$t2', '$t3', '$t4', '$t5', '$t6', '$t7', '$t8', '$t9', '$t10', '$t11', '$type')"; - mysqli_query($this->dblink,$q); - return mysqli_insert_id($this->dblink); - } - - function remA2b($id) { - $id = (int) $id; - - $q = "DELETE FROM " . TB_PREFIX . "a2b WHERE id = $id"; - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - function getA2b($ckey) { - list($ckey) = $this->escape_input($ckey); - - $q = "SELECT * from " . TB_PREFIX . "a2b where ckey = '" . $ckey . "'"; - $result = mysqli_query($this->dblink,$q); - if($result) return mysqli_fetch_assoc($result); - else return false; - } - - function addMovement($type, $from, $to, $ref, $time, $endtime, $send = 1, $wood = 0, $clay = 0, $iron = 0, $crop = 0, $ref2 = 0) { - // always prepare for multiple inserts at once - if (!is_array($type)) { - $type = [$type]; - $from = [$from]; - $to = [$to]; - $ref = [$ref]; - $time = [$time]; - $endtime = [$endtime]; - $send = [$send]; - $wood = [$wood]; - $clay = [$clay]; - $iron = [$iron]; - $crop = [$crop]; - $ref2 = [$ref2]; - } - - $counter = 0; - $pairs = []; - - foreach ($type as $index => $typeValue) { - $pairs[] = '(0, '.(int) $typeValue.', '.(int) $from[$index].', '.(int) $to[$index].', '.(int) $ref[$index].', '.(int) $ref2[$index].', '.(int) $time[$index].', '.(int) $endtime[$index].', 0, '.(int) $send[$index].', '.(int) $wood[$index].', '.(int) $clay[$index].', '.(int) $iron[$index].', '.(int) $crop[$index].')'; - - if ($counter++ > 25) { - $q = "INSERT INTO " . TB_PREFIX . "movement VALUES ".implode(', ', $pairs); - mysqli_query($this->dblink,$q); - - $pairs = []; - $counter = 0; - } - } - - if ($counter > 0) { - $q = "INSERT INTO " . TB_PREFIX . "movement VALUES " . implode( ', ', $pairs ); - return mysqli_query( $this->dblink, $q ); - } else { - return true; - } - } - - function addAttack($vid, $t1, $t2, $t3, $t4, $t5, $t6, $t7, $t8, $t9, $t10, $t11, $type, $ctar1, $ctar2, $spy,$b1=0,$b2=0,$b3=0,$b4=0,$b5=0,$b6=0,$b7=0,$b8=0) { - if (!is_array($vid)) { - $vid = [$vid]; - $t1 = [$t1]; - $t2 = [$t2]; - $t3 = [$t3]; - $t4 = [$t4]; - $t5 = [$t5]; - $t6 = [$t6]; - $t7 = [$t7]; - $t8 = [$t8]; - $t9 = [$t9]; - $t10 = [$t10]; - $t11 = [$t11]; - $type = [$type]; - $ctar1 = [$ctar1]; - $ctar2 = [$ctar2]; - $spy = [$spy]; - $b1 = [$b1]; - $b2 = [$b2]; - $b3 = [$b3]; - $b4 = [$b4]; - $b5 = [$b5]; - $b6 = [$b6]; - $b7 = [$b7]; - $b8 = [$b8]; - } - - $values = []; - foreach ($vid as $index => $vidValue) { - $values[] = '(0, '.(int) $vidValue.', '.(int) $t1[$index].', '.(int) $t2[$index].', '.(int) $t3[$index].', '. - (int) $t4[$index].', '.(int) $t5[$index].', '.(int) $t6[$index].', '.(int) $t7[$index].', '. - (int) $t8[$index].', '.(int) $t9[$index].', '.(int) $t10[$index].', '.(int) $t11[$index]. - ', '.(int) $type[$index].', '.(int) $ctar1[$index].', '.(int) $ctar2[$index].', '. - (int) $spy[$index].', '.(int) $b1[$index].', '.(int) $b2[$index].', '.(int) $b3[$index]. - ', '.(int) $b4[$index].', '.(int) $b5[$index].', '.(int) $b6[$index].', '.(int) $b7[$index]. - ', '.(int) $b8[$index].')'; - } - - $q = "INSERT INTO " . TB_PREFIX . "attacks VALUES ".implode(', ', $values); - mysqli_query($this->dblink,$q); - - return (count($vid) == 1 ? mysqli_insert_id($this->dblink) : true); - } - - function modifyAttack($aid, $unit, $amt) { - list($aid, $unit, $amt) = $this->escape_input((int) $aid, $unit, (int) $amt); - - $unit = 't' . $unit; - $q = "UPDATE " . TB_PREFIX . "attacks set $unit = $unit - $amt where id = $aid"; - return mysqli_query($this->dblink,$q); - } - - function modifyAttack2($aid, $unit, $amt, $mode = 1) { - list($aid, $unit, $amt) = $this->escape_input((int) $aid, $unit, $amt); - - if (!is_array($unit)) { - $unit = [$unit]; - $amt = [$amt]; - } - - $pairs = []; - foreach ($unit as $index => $unitValue) { - $unitValue = 't' . $this->escape($unitValue); - $pairs[] = $unitValue . ' = ' . $unitValue . (($mode) ? ' + ' : ' - ') . (int) $amt[$index]; - } - - $q = "UPDATE " . TB_PREFIX . "attacks SET ".implode(', ', $pairs)." WHERE id = $aid"; - return mysqli_query($this->dblink,$q); - } - - function modifyAttack3($aid, $units) { - list($aid, $units) = $this->escape_input((int) $aid, $units); - - $q = "UPDATE ".TB_PREFIX."attacks set $units WHERE id = $aid"; - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - function getVRanking() { - $q = "SELECT v.wref,v.name,v.owner,v.pop FROM " . TB_PREFIX . "vdata AS v," . TB_PREFIX . "users AS u WHERE v.owner=u.id AND u.tribe IN(1,2,3".(SHOW_NATARS ? ',5' : '').") AND v.wref != '' AND u.access<" . (INCLUDE_ADMIN ? "10" : "8"); - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - function getARanking($use_cache = true) { - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$allianceRankingCache, 0)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT id,name,tag,oldrank,Aap,Adp FROM " . TB_PREFIX . "alidata where id != '' ORDER BY id DESC"; - $result = mysqli_query($this->dblink,$q); - - self::$allianceRankingCache[0] = $this->mysqli_fetch_all($result); - return self::$allianceRankingCache[0]; - } - - // no need to cache this method - function getUserByTribe($tribe) { - list($tribe) = $this->escape_input((int) $tribe); - $q = "SELECT * FROM " . TB_PREFIX . "users where tribe = $tribe"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - // no need to cache this method - function getUserByAlliance($aid) { - list($aid) = $this->escape_input((int) $aid); - $q = "SELECT * FROM " . TB_PREFIX . "users where alliance = $aid"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - // no need to cache this method - function getHeroRanking() { - $q = "SELECT * FROM " . TB_PREFIX . "hero WHERE dead = 0"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - function getAllMember($aid, $limit = 0, $use_cache = true) { - list($aid) = $this->escape_input((int) $aid); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$allianceMembersCache, $aid)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT * FROM " . TB_PREFIX . "users where alliance = $aid order by (SELECT sum(pop) FROM " . TB_PREFIX . "vdata WHERE owner = " . TB_PREFIX . "users.id) desc, " . TB_PREFIX . "users.id desc".($limit > 0 ? ' LIMIT '.(int) $limit : ''); - $result = mysqli_query($this->dblink,$q); - - self::$allianceMembersCache[$aid] = $this->mysqli_fetch_all($result); - return self::$allianceMembersCache[$aid]; - } - - function getAllMember2($aid) { - return $this->getAllMember($aid, 1); - } - - /** - * Add the unit table(s) and troops if presents - * - * @param mixed $vid The villaged ID(s) - * @param array $troopsArray divided in two portion, which contains the types (unidimensional array) and the values of the - * troops that need to be added (bidimensional array) - * @return bool Returns true if the query was successful, false otherwise - */ - - function addUnits($vid, $troopsArray = null) { - list($vid, $type, $values) = $this->escape_input($vid, $type, $values); - - if (!is_array($vid)) $vid = [$vid]; - $types = $values = ""; - - if($troopsArray != null){ - $types = $troopsArray[0]; - $values = $troopsArray[1]; - - $types = ",u".implode(",u", $types); - } - - foreach ($vid as $index => $vidValue) $vid[$index] = (int) $vidValue.($troopsArray != null ? ",".implode(",", $values[$index]) : ""); - - $q = "INSERT into " . TB_PREFIX . "units (vref$types) values (".implode('),(', $vid).")"; - return mysqli_query($this->dblink,$q); - } - - function getUnit($vid, $use_cache = true) { - $array_passed = is_array($vid); - - if (!$array_passed) { - $singleVillage = true; - $vid = [$vid]; - } else { - foreach ($vid as $index => $vidValue) { - $vid[$index] = (int) $vidValue; - } - } - - $returnArray = []; - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && !$array_passed && ($cachedValue = self::returnCachedContent(self::$unitsCache, (int) $vid[0])) && !is_null($cachedValue)) { - return $cachedValue; - } else if ($use_cache && $array_passed) { - $newIDs = []; - foreach ($vid as $villageID) { - // don't cache what we don't need to cache - if (isset(self::$unitsCache[$villageID])) { - $returnArray[$villageID] = self::$unitsCache[$villageID]; - } else { - // add the uncached ID, so we can select and cache it - $newIDs[] = $villageID; - } - } - $vid = $newIDs; - - // nothing to cache? return what we have - if (!count($vid)) { - return $returnArray; - } - } - - $q = "SELECT * from " . TB_PREFIX . "units where vref IN(".implode(', ', $vid).")"; - $result = mysqli_query($this->dblink,$q); - $resCount = 0; - $vidCount = count($vid); - - if (!empty($result) && ($resCount = mysqli_num_rows($result)) && $resCount) { - while ($row = mysqli_fetch_assoc($result)) { - self::$unitsCache[$row['vref']] = $row; - $returnArray[$row['vref']] = $row; - } - } else { - // fill everything with nulls - foreach ($vid as $id) { - self::$unitsCache[$id] = null; - $returnArray[$id] = null; - } - } - - // check if we're not missing any return values - if ($vidCount != $resCount) { - // fill-in the gaps, as it would mean some of the IDs we got were not found - // (which is super-strange, but it's still a mathematical possibility) - foreach ($vid as $id) { - if (!isset($returnArray[$id])) { - $returnArray[$id] = null; - } - } - } - - return (!isset($singleVillage) ? $returnArray : reset($returnArray)); - } - - // no need to cache this method - function getUnitsNumber($vid, $mode = 1, $use_cache = false) { - list( $vid ) = $this->escape_input( (int) $vid ); - - $dbarray = $this->getUnit( $vid ); - $totalunits = 0; - for ( $i = 1; $i <= 50; $i ++ ) { - $totalunits += $dbarray[ 'u' . $i ]; - } - - $totalunits += $dbarray['hero']; - if(!$mode) return $totalunits; - - $movingunits = $this->getVillageMovement( $vid ); - $reinforcingunits = $this->getEnforceArray( $vid, 1 ); - $owner = $this->getVillageField( $vid, "owner" ); - $ownertribe = $this->getUserField( $owner, "tribe", 0 ); - $start = ( $ownertribe - 1 ) * 10 + 1; - $end = ( $ownertribe * 10 ); - - for ( $i = $start; $i <= $end; $i ++ ) { - $totalunits += $movingunits[ 'u' . $i ]; - $totalunits += $reinforcingunits[ 'u' . $i ]; - } - - $totalunits += $movingunits['hero']; - $totalunits += $reinforcingunits['hero']; - - return $totalunits; - } - - function getHero($uid=0, $all=0, $include_dead = false, $use_cache = true) { - list($uid,$all) = $this->escape_input((int) $uid,$all); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$heroCache, $uid.$all.($include_dead ? 1 : 0))) && !is_null($cachedValue)) { - return $cachedValue; - } - - if ($all) { - $q = "SELECT * FROM ".TB_PREFIX."hero WHERE uid=$uid ORDER BY lastupdate DESC"; - } elseif (!$uid) { - $q = "SELECT * FROM ".TB_PREFIX."hero"; - } else { - $q = "SELECT * FROM ".TB_PREFIX."hero WHERE ".($include_dead ? '' : "dead=0 AND ")."uid=$uid LIMIT 1"; - } - - $result = mysqli_query($this->dblink,$q); - if (!empty($result)) { - self::$heroCache[$uid.$all.($include_dead ? 1 : 0)] = $this->mysqli_fetch_all($result); - } else { - self::$heroCache[$uid.$all.($include_dead ? 1 : 0)] = null; - } - - return self::$heroCache[$uid.$all.($include_dead ? 1 : 0)]; - } - - function getHeroField($uid,$field, $use_cache = true) { - list($uid,$field) = $this->escape_input((int) $uid,$field); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$heroFieldCache, $uid.$field)) && !is_null($cachedValue)) { - return $cachedValue[$field]; - } - - $q = "SELECT * FROM ".TB_PREFIX."hero WHERE uid = $uid AND dead = 0"; - $result = mysqli_query($this->dblink,$q); - - self::$heroFieldCache[$uid.$field] = $this->mysqli_fetch_all($result)[0]; - return self::$heroFieldCache[$uid.$field][$field]; - } - - function modifyHero($column,$value,$heroid,$mode=null) { - if (!is_array($column)) { - $column = [$column]; - $value = [$value]; - $mode = [$mode]; - } - - $pairs = []; - foreach ($column as $index => $columnValue) { - if($mode[$index] === null) { - $pairs[] = "$columnValue = ".(Math::isInt($value[$index]) ? $value[$index] : '"'.$this->escape($value[$index]).'"'); - } elseif($mode[$index]=1) { - $pairs[] = "$columnValue = $columnValue + ".(int) $value[$index]; - } else { - $pairs[] = "$columnValue = $columnValue - ".(int) $value[$index]; - } - } - - $q = "UPDATE `".TB_PREFIX."hero` SET ".implode(', ', $pairs)." WHERE heroid = $heroid"; - return mysqli_query($this->dblink,$q); - } - - function modifyHeroXp($column,$value,$heroid) { - list($column,$value,$heroid) = $this->escape_input($column,(int) $value,(int) $heroid); - - $q = "UPDATE ".TB_PREFIX."hero SET $column = $column + $value WHERE heroid=$heroid"; - return mysqli_query($this->dblink,$q); - } - - function addTech($vid) { - if (!is_array($vid)) { - $vid = [$vid]; - } - - foreach ($vid as $index => $vidValue) { - $vid[$index] = (int) $vidValue; - } - - $q = "INSERT INTO " . TB_PREFIX . "tdata (vref) VALUES (".implode('),(', $vid).")"; - return mysqli_query($this->dblink,$q); - } - - function addABTech($vid) { - if (!is_array($vid)) { - $vid = [$vid]; - } - - foreach ($vid as $index => $vidValue) { - $vid[$index] = (int) $vidValue; - } - - self::$abTechCache = []; - $q = "INSERT INTO " . TB_PREFIX . "abdata (vref) VALUES (".implode('),(', $vid).")"; - return mysqli_query($this->dblink,$q); - } - - function getABTech($vid, $use_cache = true) { - $array_passed = is_array($vid); - - if (!$array_passed) { - $vid = [(int) $vid]; - } else { - foreach ($vid as $index => $ivdValue) { - $vid[$index] = (int) $ivdValue; - } - } - - if (!count($vid)) { - return []; - } - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && !$array_passed && isset(self::$abTechCache[$vid[0]]) && is_array(self::$abTechCache[$vid[0]]) && !count(self::$abTechCache[$vid[0]])) { - return self::$abTechCache[$vid[0]]; - } else if ($use_cache && $array_passed) { - // check what we can return from cache - $newVIDs = []; - foreach ($vid as $key) { - if (!isset(self::$abTechCache[$key])) { - $newVIDs [] = $key; - } - } - - // everything's cached, just return the cache - if (!count($newVIDs)) { - return self::$abTechCache; - } else { - // update remaining IDs to select and cache - $vid = $newVIDs; - } - } else if ($use_cache && !$array_passed && ($cachedValue = self::returnCachedContent(self::$abTechCache, $vid[0])) && !is_null($cachedValue)) { - // special case when we have empty arrays cached for this cache only - return $cachedValue; - } - - $q = "SELECT * FROM " . TB_PREFIX . "abdata where vref IN(".implode(', ', $vid).")"; - $result = $this->mysqli_fetch_all(mysqli_query($this->dblink,$q)); - - // return a single value - if (!$array_passed) { - self::$abTechCache[$vid[0]] = $result[0]; - } else { - if ($result && count($result)) { - foreach ( $result as $record ) { - self::$abTechCache[ $record['vref']] = $record; - } - } - - // check for any missing IDs and fill them in with blanks, - // since no reinforcements were found for these villages - foreach ($vid as $key) { - if (!isset(self::$abTechCache[$key])) { - self::$abTechCache[$key] = []; - } - } - } - - return ($array_passed ? self::$abTechCache : self::$abTechCache[$vid[0]]); - } - - function addResearch($vid, $tech, $time) { - list($vid, $tech, $time) = $this->escape_input((int) $vid, $tech, (int) $time); - - self::$researchingCache = []; - $q = "INSERT into " . TB_PREFIX . "research values (0,$vid,'$tech',$time)"; - return mysqli_query($this->dblink,$q); - } - - function getResearching($vid, $use_cache = true) { - $vid = (int) $vid; - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && isset(self::$researchingCache[$vid]) && is_array(self::$researchingCache[$vid]) && !count(self::$researchingCache[$vid])) { - return self::$researchingCache[$vid]; - } else if ($use_cache && ($cachedValue = self::returnCachedContent(self::$researchingCache, $vid)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT * FROM " . TB_PREFIX . "research where vref = $vid ORDER BY timestamp ASC"; - $result = mysqli_query($this->dblink,$q); - $researchingCache[$vid] = $this->mysqli_fetch_all($result); - return $researchingCache[$vid]; - } - - function checkIfResearched($vref, $unit, $use_cache = true) { - list($vref, $unit) = $this->escape_input((int) $vref, $unit); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$isResearchedCache, $vref)) && !is_null($cachedValue)) { - return $cachedValue[$unit]; - } - - $q = "SELECT * FROM " . TB_PREFIX . "tdata WHERE vref = $vref LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result, MYSQLI_ASSOC); - - self::$isResearchedCache[$vref] = $dbarray; - return self::$isResearchedCache[$vref][$unit]; - } - - function getTech($vid) { - // this is a somewhat non-ideal, externally non-changeable way of caching - // but since we're only ever going to be calling this from Village constructor - // for our current village, this will more than suffice - static $cachedData = []; - $vid = (int) $vid; - - if (isset($cachedData[$vid])) { - return $cachedData[$vid]; - } - - $q = "SELECT * from " . TB_PREFIX . "tdata where vref = $vid"; - $result = mysqli_query($this->dblink,$q); - $cachedData[$vid] = mysqli_fetch_assoc($result); - - return $cachedData[$vid]; - } - - // no need to cache this method - function getTraining($vid) { - list($vid) = $this->escape_input((int) $vid); - - $q = "SELECT * FROM " . TB_PREFIX . "training where vref = $vid ORDER BY id"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - function trainUnit($vid, $unit, $amt, $pop, $each, $mode) { - list($vid, $unit, $amt, $pop, $each, $mode) = $this->escape_input((int) $vid, (int) $unit, (int) $amt, (int) $pop, (int) $each, $mode); - - global $technology; - - if(!$mode) { - $barracks = [1, 2, 3, 11, 12, 13, 14, 21, 22, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44]; - // fix by brainiac - THANK YOU - $greatbarracks = [61, 62, 63, 71, 72, 73, 74, 81, 82, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104]; - $stables = [4, 5, 6, 15, 16, 23, 24, 25, 26, 45, 46]; - $greatstables = [64, 65, 66, 75, 76, 83, 84, 85, 86, 105, 106]; - $workshop = [7, 8, 17, 18, 27, 28, 47, 48]; - $greatworkshop = [67, 68, 77, 78, 87, 88, 107, 108]; - $residence = [9, 10, 19, 20, 29, 30, 49, 50]; - $trapper = [99]; - - if(in_array($unit, $barracks)) $queued = $technology->getTrainingList(1); - elseif(in_array($unit, $stables)) $queued = $technology->getTrainingList(2); - elseif(in_array($unit, $workshop)) $queued = $technology->getTrainingList(3); - elseif(in_array($unit, $residence)) $queued = $technology->getTrainingList(4); - elseif(in_array($unit, $greatbarracks)) $queued = $technology->getTrainingList(5); - elseif(in_array($unit, $greatstables)) $queued = $technology->getTrainingList(6); - elseif(in_array($unit, $greatworkshop)) $queued = $technology->getTrainingList(7); - elseif(in_array($unit, $trapper)) $queued = $technology->getTrainingList(8); - - $now = time(); - $uid = $this->getVillageField($vid, "owner"); - $each = $this->getArtifactsValueInfluence($uid, $vid, 5, $each); - - $time2 = $now + $each; - $time = $now + ($each * $amt); - if(count($queued) > 0){ - $time += $queued[count($queued) - 1]['timestamp'] - $now; - $time2 += $queued[count($queued) - 1]['timestamp'] - $now; - } - - $q = "INSERT INTO " . TB_PREFIX . "training values (0, $vid, $unit, $amt, $pop, $time, $each, $time2)"; - } - else $q = "DELETE FROM " . TB_PREFIX . "training where id = $vid"; - - return mysqli_query($this->dblink,$q); - } - - function updateTraining($id, $trained, $each) { - list($id, $trained, $each) = $this->escape_input((int) $id, (int) $trained, (int) $each); - - $q = "UPDATE " . TB_PREFIX . "training set amt = amt - $trained, timestamp2 = timestamp2 + $each where id = $id"; - return mysqli_query($this->dblink,$q); - } - - function modifyUnit($vref, $array_unit, $array_amt, $array_mode) { - list($vref, $array_unit, $array_amt, $array_mode) = $this->escape_input((int) $vref, $array_unit, $array_amt, $array_mode); - $i = -1; - $units=''; - $number = count($array_unit); - foreach($array_unit as $unit){ - if($unit == 230) $unit = 30; - if($unit == 231) $unit = 31; - if($unit == 120) $unit = 20; - if($unit == 121) $unit = 21; - if($unit =="hero") $unit = 'hero'; - else $unit = 'u' . $unit; - - ++$i; - //Fixed part of negative troops (double troops) - by InCube - $array_amt[$i] = (int) $array_amt[$i] < 0 ? 0 : $array_amt[$i]; - //Fixed part of negative troops (double troops) - by InCube - $units .= $unit.' = '.$unit.' '.(($array_mode[$i] == 1)? '+':'-').' '.($array_amt[$i] ? $array_amt[$i] : 0).(($number > $i+1) ? ', ' : ''); - } - $q = "UPDATE ".TB_PREFIX."units set $units WHERE vref = $vref"; - return mysqli_query($this->dblink, $q); - } - - function getEnforce($vid, $from, $use_cache = true) { - $array_passed = is_array($vid); - if (!$array_passed) { - $vid = [$vid]; - $from = [$from]; - } else { - foreach ($vid as $index => $vidValue) { - $vid[$index] = (int) $vidValue; - $from[$index] = (int) $from[$index]; - } - } - - if (!count($vid)) { - return []; - } - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && !$array_passed && isset(self::$villageFromReinforcementsCache[$vid[0].$from[0]]) && is_array(self::$villageFromReinforcementsCache[$vid[0].$from[0]]) && !count(self::$villageFromReinforcementsCache[$vid[0].$from[0]])) { - return self::$villageFromReinforcementsCache[$vid[0].$from[0]]; - } else if ($use_cache && $array_passed) { - // check what we can return from cache - $newVIDs = []; - $newFROMs = []; - foreach ($vid as $index => $vidValue) { - if (!isset(self::$villageFromReinforcementsCache[$vidValue.$from[$index]])) { - $newVIDs[] = $vidValue; - $newFROMs[] = $from[$index]; - } - } - - // everything's cached, just return the cache - if (!count($newVIDs)) { - return self::$villageFromReinforcementsCache; - } else { - // update remaining IDs to select and cache - $vid = $newVIDs; - $from = $newFROMs; - } - } else if ($use_cache && !$array_passed && ($cachedValue = self::returnCachedContent(self::$villageFromReinforcementsCache, $vid[0].$from[0])) && !is_null($cachedValue)) { - return $cachedValue; - } - - // build SELECT pairs - $pairs = []; - foreach ($vid as $index => $vidValue) { - $pairs[] = '(`from` = '.(int) $from[$index].' AND vref = '.(int) $vidValue.')'; - } - - $q = "SELECT * FROM " . TB_PREFIX . "enforcement WHERE ".implode(' OR ', $pairs); - $result = $this->mysqli_fetch_all(mysqli_query($this->dblink,$q)); - - // return a single value - if (!$array_passed) { - self::$villageFromReinforcementsCache[$vid[0].$from[0]] = $result[0]; - } else { - if ($result && count($result)) { - foreach ( $result as $record ) { - self::$villageFromReinforcementsCache[$record['vref'].$record['from']] = $record; - } - } - - // check for any missing IDs and fill them in with blanks, - // since no reinforcements were found for these villages - foreach ($vid as $index => $vidValue) { - if (!isset(self::$villageFromReinforcementsCache[$vidValue.$from[$index]])) { - self::$villageFromReinforcementsCache[$vidValue.$from[$index]] = []; - } - } - } - - return ($array_passed ? self::$villageFromReinforcementsCache : self::$villageFromReinforcementsCache[$vid[0].$from[0]]); - } - - function getOasisEnforce($ref, $mode=0, $use_cache = true) { - $array_passed = is_array($ref); - $mode = (int) $mode; - - if (!$array_passed) { - $ref = [(int) $ref]; - } else { - foreach ($ref as $index => $refValue) { - $ref[$index] = (int) $refValue; - } - } - - if (!count($ref)) { - return []; - } - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && !$array_passed && isset(self::$oasisReinforcementsCache[$ref[0].$mode]) && is_array(self::$oasisReinforcementsCache[$ref[0].$mode]) && !count(self::$oasisReinforcementsCache[$ref[0].$mode])) { - return self::$oasisReinforcementsCache[$ref[0].$mode]; - } else if ($use_cache && $array_passed) { - // check what we can return from cache - $newREFs = []; - foreach ($ref as $key) { - if (!isset(self::$oasisReinforcementsCache[$key.$mode])) { - $newREFs [] = $key; - } - } - - // everything's cached, just return the cache - if (!count($newREFs)) { - return self::$oasisReinforcementsCache; - } else { - // update remaining IDs to select and cache - $ref = $newREFs; - } - } else if ($use_cache && !$array_passed && ($cachedValue = self::returnCachedContent(self::$oasisReinforcementsCache, $ref[0].$mode)) && !is_null($cachedValue)) { - // special case when we have empty arrays cached for this cache only - return $cachedValue; - } - - if (!$mode) { - $q = "SELECT e.*,o.conqured FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."odata as o ON e.vref=o.wref where o.conqured IN(".implode(', ', $ref).") AND e.from NOT IN(".implode(', ', $ref).")"; - }else if ($mode == 1) { - $q = "SELECT e.*,o.conqured FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."odata as o ON e.vref=o.wref where o.conqured IN(".implode(', ', $ref).")"; - } else if ($mode == 2) { - $q = "SELECT e.*,o.conqured,o.wref,o.high, o.owner as ownero, v.owner as ownerv FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."odata as o ON e.vref=o.wref LEFT JOIN ".TB_PREFIX."vdata as v ON e.from=v.wref where o.conqured IN(".implode(', ', $ref).") AND o.owner<>v.owner"; - } else if ($mode == 3) { - $q = "SELECT e.*,o.conqured,o.wref,o.high, o.owner as ownero, v.owner as ownerv FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."odata as o ON e.vref=o.wref LEFT JOIN ".TB_PREFIX."vdata as v ON e.from=v.wref where o.conqured IN(".implode(', ', $ref).") AND o.owner=v.owner"; - } - $result = $this->mysqli_fetch_all(mysqli_query($this->dblink,$q)); - - // return a single value - if (!$array_passed) { - self::$oasisReinforcementsCache[$ref[0].$mode] = $result; - } else { - if ($result && count($result)) { - foreach ( $result as $record ) { - if ( ! isset( self::$oasisReinforcementsCache[ $record['conqured'] . $mode ] ) ) { - self::$oasisReinforcementsCache[ $record['conqured'] . $mode ] = []; - } - - self::$oasisReinforcementsCache[ $record['conqured'] . $mode ][] = $record; - } - } - - // check for any missing IDs and fill them in with blanks, - // since no reinforcements were found for these villages - foreach ($ref as $key) { - if (!isset(self::$oasisReinforcementsCache[$key.$mode])) { - self::$oasisReinforcementsCache[$key.$mode] = []; - } - } - } - - return ($array_passed ? self::$oasisReinforcementsCache : self::$oasisReinforcementsCache[$ref[0].$mode]); - } - - function getOasisEnforceArray($id, $mode=0, $use_cache = true) { - list($id, $mode) = $this->escape_input((int) $id, $mode); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$oasisArrayReinforcementsCache, $id.$mode)) && !is_null($cachedValue)) { - return $cachedValue; - } - - if (!$mode) { - $q = "SELECT e.*,o.conqured FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."odata as o ON e.vref=o.wref where e.id = $id"; - }else{ - $q = "SELECT e.*,o.conqured FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."odata as o ON e.from=o.wref where e.id =$id"; - } - $result = mysqli_query($this->dblink,$q); - - self::$oasisArrayReinforcementsCache[$id.$mode] = mysqli_fetch_assoc($result); - return self::$oasisArrayReinforcementsCache[$id.$mode]; - } - - function addEnforce($data) { - list($data) = $this->escape_input($data); - - $q = "INSERT into " . TB_PREFIX . "enforcement (vref,`from`) values (" . (int) $data['to'] . "," . (int) $data['from'] . ")"; - mysqli_query($this->dblink,$q); - $id = mysqli_insert_id($this->dblink); - $owntribe = $this->getUserField($this->getVillageField($data['from'], "owner"), "tribe", 0); - $start = ($owntribe - 1) * 10 + 1; - $end = ($owntribe * 10); - //add unit - $j = 1; - $units = []; - $amounts = []; - $modes = []; - - for($i = $start; $i <= $end; $i++) { - $units[] = ($i < 0 ? 0 : $i); - $amounts[] = $data['t' . $j . '']; - $modes[] = 1; - $j++; - } - - // add hero - $units[] = 'hero'; - $amounts[] = $data['t11']; - $modes[] = 1; - - $this->modifyEnforce($id,$units, $amounts, $modes); - } - - function addEnforce2($data,$tribe,$dead1,$dead2,$dead3,$dead4,$dead5,$dead6,$dead7,$dead8,$dead9,$dead10,$dead11) { - list($data,$tribe,$dead1,$dead2,$dead3,$dead4,$dead5,$dead6,$dead7,$dead8,$dead9,$dead10,$dead11) = $this->escape_input($data,$tribe,$dead1,$dead2,$dead3,$dead4,$dead5,$dead6,$dead7,$dead8,$dead9,$dead10,$dead11); - - $q = "INSERT into " . TB_PREFIX . "enforcement (vref,`from`) values (" . (int) $data['to'] . "," . (int) $data['from'] . ")"; - mysqli_query($this->dblink,$q); - $id = mysqli_insert_id($this->dblink); - $owntribe = $this->getUserField($this->getVillageField($data['from'], "owner"), "tribe", 0); - $start = ($owntribe - 1) * 10 + 1; - $end = ($owntribe * 10); - $start2 = ($tribe - 1) * 10 + 1; - $start3 = ($tribe - 1) * 10; - if($start3 == 0){ - $start3 = ""; - } - $end2 = ($tribe * 10); - //add unit - $j = 1; - - $units = []; - $amounts = []; - $modes = []; - - for($i = $start; $i <= $end; $i++) { - $units[] = ($i < 0 ? 0 : $i); - $amounts[] = $data['t' . $j . '']; - $modes[] = 1; - - $units[] = ($i < 0 ? 0 : $i); - $amounts[] = ${'dead'.$j}; - $modes[] = 0; - - $j++; - } - - // process heroes - $units[] = 'hero'; - $amounts[] = $data['t11']; - $modes[] = 1; - - $units[] = 'hero'; - $amounts[] = $dead11; - $modes[] = 0; - - $this->modifyEnforce($id,$units, $amounts, $modes); - } - - function modifyEnforce($id, $unit, $amt, $mode) { - $id = (int) $id; - - // prepare pairing array, even if we're not passing arrays, so we can use the same logic - $pairs = []; - if (!is_array($unit)) { - $unit = [$unit]; - $amt = [(int) $amt]; - $mode = [(int) $mode]; - } - - foreach ($unit as $index => $unitType) { - $unitType = ($unitType != 'hero' ? 'u' . $this->escape($unitType) : $unitType); - $pairs[] = $unitType . ' = ' . $unitType . (!(int) $mode[$index] ? ' - ' : ' + ') . (int) $amt[$index]; - } - - $q = "UPDATE " . TB_PREFIX . "enforcement SET ".implode(', ', $pairs)." WHERE id = $id"; - mysqli_query($this->dblink,$q); - - // clear enforce cache - self::$villageReinforcementsCache = []; - self::$villageFromReinforcementsCache = []; - self::$reinforcementsCache = []; - } - - function getEnforceArray($id, $mode, $use_cache = true) { - list($id, $mode) = $this->escape_input((int) $id, $mode); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$reinforcementsCache, $id.$mode)) && !is_null($cachedValue)) { - return $cachedValue; - } - - if(!$mode) { - $q = "SELECT * from " . TB_PREFIX . "enforcement where id = $id"; - } else { - $q = "SELECT * from " . TB_PREFIX . "enforcement where `from` = $id"; - } - $result = mysqli_query($this->dblink,$q); - - self::$reinforcementsCache[$id.$mode] = mysqli_fetch_assoc($result); - return self::$reinforcementsCache[$id.$mode]; - } - - function getEnforceVillage($id, $mode, $use_cache = true) { - $array_passed = is_array($id); - $mode = (int) $mode; - - if (!$array_passed) { - $id = [(int) $id]; - } else { - foreach ($id as $index => $idValue) { - $id[$index] = (int) $idValue; - } - } - - if (!count($id)) { - return []; - } - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && !$array_passed && isset(self::$villageReinforcementsCache[$id[0].$mode]) && is_array(self::$villageReinforcementsCache[$id[0].$mode]) && !count(self::$villageReinforcementsCache[$id[0].$mode])) { - return self::$villageReinforcementsCache[$id[0].$mode]; - } else if ($use_cache && $array_passed) { - // check what we can return from cache - $newIDs = []; - foreach ($id as $key) { - if (!isset(self::$villageReinforcementsCache[$key.$mode])) { - $newIDs [] = $key; - } - } - - // everything's cached, just return the cache - if (!count($newIDs)) { - return self::$villageReinforcementsCache; - } else { - // update remaining IDs to select and cache - $id = $newIDs; - } - } else if ($use_cache && !$array_passed && ($cachedValue = self::returnCachedContent(self::$villageReinforcementsCache, $id[0].$mode)) && !is_null($cachedValue)) { - // special case when we have empty arrays cached for this cache only - return $cachedValue; - } - - if(!$mode) { - $q = "SELECT * from " . TB_PREFIX . "enforcement where vref IN(".implode(', ', $id).")"; - } else if ($mode == 1) { - $q = "SELECT * from " . TB_PREFIX . "enforcement where `from` IN(".implode(', ', $id).")"; - } else if ($mode == 2) { - $q = "SELECT e.*, v.owner as ownerv, v1.owner as owner1 FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."vdata as v ON e.from=v.wref LEFT JOIN ".TB_PREFIX."vdata as v1 ON e.vref=v1.wref where e.vref IN(".implode(', ', $id).") AND v.owner<>v1.owner"; - } else if ($mode == 3) { - $q = "SELECT e.*, v.owner as ownerv, v1.owner as owner1 FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."vdata as v ON e.from=v.wref LEFT JOIN ".TB_PREFIX."vdata as v1 ON e.vref=v1.wref where e.vref IN(".implode(', ', $id).") AND v.owner=v1.owner"; - } else if ($mode == 4) { - $q = "SELECT e.*, v.owner as ownerv, v1.owner as owner1 FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."vdata as v ON e.from=v.wref LEFT JOIN ".TB_PREFIX."vdata as v1 ON e.vref=v1.wref where e.vref IN(".implode(', ', $id).") AND v.owner=v1.owner"; - } - $result = $this->mysqli_fetch_all(mysqli_query($this->dblink,$q)); - - // return a single value - if (!$array_passed) { - self::$villageReinforcementsCache[$id[0].$mode] = $result; - } else { - if ($result && count($result)) { - foreach ( $result as $record ) { - if ( ! isset( self::$villageReinforcementsCache[ $record['vref'] . $mode ] ) ) { - self::$villageReinforcementsCache[ $record['vref'] . $mode ] = []; - } - - self::$villageReinforcementsCache[ $record['vref'] . $mode ][] = $record; - } - } - - // check for any missing IDs and fill them in with blanks, - // since no reinforcements were found for these villages - foreach ($id as $key) { - if (!isset(self::$villageReinforcementsCache[$key.$mode])) { - self::$villageReinforcementsCache[$key.$mode] = []; - } - } - } - - return ($array_passed ? self::$villageReinforcementsCache : self::$villageReinforcementsCache[$id[0].$mode]); - } - - public static function clearReinforcementsCache() { - self::$reinforcementsCache = []; - self::$villageReinforcementsCache = []; - self::$villageFromReinforcementsCache = []; - self::$oasisArrayReinforcementsCache = []; - self::$oasisReinforcementsCache = []; - self::clearUnitsCache(); - } - - public static function clearUnitsCache() { - self::$unitsCache = []; - } - - // no need to cache this method - function getVillageMovement($id) { - list($id) = $this->escape_input($id); - - $vinfo = $this->getVillage($id); - $vtribe = $this->getUserField($vinfo['owner'], "tribe", 0); - $movingunits = []; - - $outgoingarray = $this->getMovement(3, $id, 0); - if(!empty($outgoingarray) && count($outgoingarray)) { - foreach($outgoingarray as $out) { - for($i = 1; $i <= 10; $i++) { - if (!isset($movingunits['u'.(($vtribe - 1) * 10 + $i)])) { - $movingunits['u'.(($vtribe - 1) * 10 + $i)] = 0; - } - - if (!isset($out['t'.$i])) $out['t'.$i] = 0; - $movingunits['u'.(($vtribe - 1) * 10 + $i)] += $out['t'.$i]; - } - - if (!isset($movingunits['hero'])) $movingunits['hero'] = 0; - if (!isset($out['t11'])) $out['t11'] = 0; - - $movingunits['hero'] += $out['t11']; - } - } - - $returningarray = $this->getMovement(4, $id, 1); - if(!empty($returningarray) && count($returningarray)) { - foreach($returningarray as $ret) { - for($i = 1; $i <= 10; $i++) { - if (!isset($movingunits['u'.(($vtribe - 1) * 10 + $i)])) { - $movingunits['u'.(($vtribe - 1) * 10 + $i)] = 0; - } - $movingunits['u'.(($vtribe - 1) * 10 + $i)] += $ret['t' . $i]; - } - - if (!isset($movingunits['hero'])) $movingunits['hero'] = 0; - $movingunits['hero'] += $ret['t11']; - } - } - - $settlerarray = $this->getMovement(5, $id, 0); - if(!empty($settlerarray)) { - if (!isset($movingunits['u'.($vtribe * 10)])) { - $movingunits['u'.($vtribe * 10)] = 0; - } - $movingunits['u'.($vtribe * 10)] += 3 * count($settlerarray); - } - return $movingunits; - } - - ################# -START- ################## - ## WORLD WONDER STATISTICS FUNCTIONS! ## - ############################################ - - /*************************** - Function to get user alliance name! - Made by: Dzoki - ***************************/ - - // no need to cache this method - function getUserAllianceID($id) { - list($id) = $this->escape_input((int) $id); - - $q = "SELECT alliance FROM " . TB_PREFIX . "users where id = $id LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - return $dbarray['alliance']; - } - - /*************************** - Function to get WW name - Made by: Dzoki - ***************************/ - - // no need to cache this method - function getWWName($vref) { - list($vref) = $this->escape_input((int) $vref); - - $q = "SELECT wwname FROM " . TB_PREFIX . "fdata WHERE vref = $vref LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - return $dbarray['wwname']; - } - - /*************************** - Function to change WW name - Made by: Dzoki - ***************************/ - - function submitWWname($vref, $name) { - list($vref, $name) = $this->escape_input((int) $vref, $name); - - $q = "UPDATE " . TB_PREFIX . "fdata SET `wwname` = '$name' WHERE " . TB_PREFIX . "fdata.`vref` = $vref"; - return mysqli_query($this->dblink,$q); - } - - //medal functions - function addclimberrankpop($user, $cp) { - list($user, $cp) = $this->escape_input((int) $user, (int) $cp); - - $q = "UPDATE " . TB_PREFIX . "users set clp = clp + $cp where id = $user"; - return mysqli_query($this->dblink,$q); - } - - function removeclimberrankpop($user, $cp) { - list($user, $cp) = $this->escape_input((int) $user, (int) $cp); - - $q = "UPDATE " . TB_PREFIX . "users set clp = clp - $cp where id = $user"; - return mysqli_query($this->dblink,$q); - } - - function setclimberrankpop($user, $cp) { - list($user, $cp) = $this->escape_input((int) $user, (int) $cp); - - $q = "UPDATE " . TB_PREFIX . "users set clp = $cp where id = $user"; - return mysqli_query($this->dblink,$q); - } - - function updateoldrank($user, $cp) { - list($user, $cp) = $this->escape_input((int) $user, (int) $cp); - - $q = "UPDATE " . TB_PREFIX . "users set oldrank = $cp where id = $user"; - return mysqli_query($this->dblink,$q); - } - - // ALLIANCE MEDAL FUNCTIONS - function addclimberrankpopAlly($user, $cp) { - list($user, $cp) = $this->escape_input((int) $user, (int) $cp); - - $q = "UPDATE " . TB_PREFIX . "alidata set clp = clp + $cp where id = $user"; - return mysqli_query($this->dblink,$q); - } - - function removeclimberrankpopAlly($user, $cp) { - list($user, $cp) = $this->escape_input((int) $user, (int) $cp); - - $q = "UPDATE " . TB_PREFIX . "alidata set clp = clp - $cp where id = $user"; - return mysqli_query($this->dblink,$q); - } - - function updateoldrankAlly($user, $cp) { - list($user, $cp) = $this->escape_input((int) $user, (int) $cp); - - $q = "UPDATE " . TB_PREFIX . "alidata set oldrank = $cp where id = $user"; - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - function getTrainingList() { - $q = "SELECT * FROM " . TB_PREFIX . "training where vref IS NOT NULL"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - // no need to cache this method - function getNeedDelete() { - $time = time(); - $q = "SELECT uid FROM " . TB_PREFIX . "deleting where timestamp < $time"; - $result = mysqli_query($this->dblink,$q); - return $this->mysqli_fetch_all($result); - } - - function countUser($use_cache = true) { - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$usersCountCache, 0)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT count(id) FROM " . TB_PREFIX . "users where id > 5"; - $result = mysqli_query($this->dblink,$q); - $row = mysqli_fetch_row($result); - - self::$usersCountCache[0] = $row[0]; - return self::$usersCountCache[0]; - } - - function countAlli($use_cache = true) { - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$allianceCountCache, 0)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT count(id) FROM " . TB_PREFIX . "alidata where id != 0"; - $result = mysqli_query($this->dblink,$q); - $row = mysqli_fetch_row($result); - - self::$allianceCountCache[0] = $row[0]; - return self::$allianceCountCache[0]; - } - - //MARKET FIXES - function getWoodAvailable($wref, $use_cache = true) { - // return from cache - return $this->getVillage($wref, 0, $use_cache)['wood']; - } - - function getClayAvailable($wref, $use_cache = true) { - // return from cache - return $this->getVillage($wref, 0, $use_cache)['clay']; - } - - function getIronAvailable($wref, $use_cache = true) { - // return from cache - return $this->getVillage($wref, 0, $use_cache)['iron']; - } - - function getCropAvailable($wref, $use_cache = true) { - // return from cache - return $this->getVillage($wref, 0, $use_cache)['crop']; - } - - function Getowner($vid) { - // return from cache - return $this->getVillage($vid, 0, $use_cache)['owner']; - } - - /** - * Creates a database structure for the game. - * Used during installation. - * - * @return boolean|number Returns TRUE, FALSE or -1. True is for successful data import - * (from prepared SQL file), false is in case of an SQL error. - * -1 will be returned in case of any unexpected behavior - * and unhandled exceptions. - */ - - public function createDbStructure() { - global $autoprefix; - - try { - // check that we don't have the structure in place already - // (we'd have at least 1 user present, since 4 are being created by default - Support, Nature, Multihunter & Taskmaster) - $data_exist = $this->query_return("SELECT * FROM " . TB_PREFIX . "users LIMIT 1"); - if ($data_exist && count($data_exist)) { - return false; - } - - // load the DB structure SQL file - $str = file_get_contents($autoprefix."var/db/struct.sql"); - $str = preg_replace("'%PREFIX%'", TB_PREFIX, $str); - $result = $this->dblink->multi_query($str); - - // fetch results of the multi-query in order to allow subsequent query() and multi_query() calls to work - while (mysqli_more_results($this->dblink) && mysqli_next_result($this->dblink)) {;} - - if (!$result) { - return false; - } - } catch (\Exception $e) { - return -1; - } - - return true; - } - - /** - * Populates the game database with Map World Data (i.e. creates the whole - * world with X,Y coordinate squares and their types). - * - * Also populates oasis' table data for the squares where there are oasis. - * - * @return boolean|number Returns TRUE, FALSE or -1. True is for successful data import - * (from prepared SQL file), false is in case of an SQL error. - * -1 will be returned in case of any unexpected behavior - * and unhandled exceptions. - */ - public function populateWorldData() { - global $autoprefix; - - try { - // check if we don't already have world data - $data_exist = $this->query_return("SELECT * FROM " . TB_PREFIX . "wdata LIMIT 1"); - if ($data_exist && count($data_exist)) { - return false; - } - - // load the data generation SQL file - $str = file_get_contents($autoprefix."var/db/datagen-world-data.sql"); - $str = preg_replace(["'%PREFIX%'", "'%WORLDSIZE%'"], [TB_PREFIX, WORLD_MAX], $str); - $result = $this->dblink->multi_query($str); - - // fetch results of the multi-query in order to allow subsequent query() and multi_query() calls to work - while (mysqli_more_results($this->dblink) && mysqli_next_result($this->dblink)) {;} - - if (!$result) { - return -1; - } - - $result = $this->regenerateOasisUnits(-1); - if (!$result) { - return -1; - } - } catch (\Exception $e) { - return -1; - } - - return true; - } - - // no need to cache, not used in any loops or more than once for each page load - public function getAvailableExpansionTraining() { - global $building, $session, $technology, $village; - - $vilData = $this->getVillage($village->wid); - $maxslots = (($vilData['exp1'] == 0 ? 1 : 0) + ($vilData['exp2'] == 0 ? 1 : 0) + ($vilData['exp3'] == 0 ? 1 : 0)); - $residence = $building->getTypeLevel(25); - $palace = $building->getTypeLevel(26); - - if($residence > 0) { - $maxslots -= (3 - floor($residence / 10)); - } - - if($palace > 0) { - $maxslots -= (3 - floor(($palace - 5) / 5)); - } - - $q = "SELECT (u10+u20+u30) as R1, (u9+u19+u29) as R2 FROM " . TB_PREFIX . "units WHERE vref = ". (int) $village->wid; - $result = mysqli_query($this->dblink,$q); - $row = mysqli_fetch_array($result, MYSQLI_ASSOC); - $settlers = $row['R1']; - $chiefs = $row['R2']; - - $settlers += 3 * count($this->getMovement(5, $village->wid, 0)); - - $current_movement = $this->getMovement(3, $village->wid, 0); - if(!empty($current_movement)) { - foreach($current_movement as $build) { - $settlers += $build['t10']; - $chiefs += $build['t9']; - } - } - - $current_movement = $this->getMovement(4, $village->wid, 1); - if(!empty($current_movement)) { - foreach($current_movement as $build) { - $settlers += $build['t10']; - $chiefs += $build['t9']; - } - } - - $q = "SELECT (u10+u20+u30) FROM " . TB_PREFIX . "enforcement WHERE `from` = ".(int) $village->wid; - $result = mysqli_query($this->dblink,$q); - $row = mysqli_fetch_row($result); - if(!empty($row)) { - foreach($row as $reinf) { - $settlers += $reinf[0]; - } - } - - $q = "SELECT (u9+u19+u29) FROM " . TB_PREFIX . "enforcement WHERE `from` = ".(int) $village->wid; - $result = mysqli_query($this->dblink,$q); - $row = mysqli_fetch_row($result); - if(!empty($row)) { - foreach($row as $reinf) { - $chiefs += $reinf[0]; - } - } - - $trainlist = $technology->getTrainingList(4); - if(!empty($trainlist)) { - foreach($trainlist as $train) { - if($train['unit'] % 10 == 0) { - $settlers += $train['amt']; - } - if($train['unit'] % 10 == 9) { - $chiefs += $train['amt']; - } - } - } - - $trappedTroops = $this->getPrisoners($village->wid, 1); - if(!empty($trappedTroops)){ - foreach($trappedTroops as $trapped){ - $settlers += $trapped['t10']; - $chiefs += $trapped['t9']; - } - } - - $settlerslots = ($maxslots * 3) - ($chiefs * 3) - $settlers; - $chiefslots = $maxslots - $chiefs - floor(($settlers + 2) / 3); - - if(!$technology->getTech(($session->tribe - 1) * 10 + 9)) { - $chiefslots = 0; - } - - return ["chiefs" => $chiefslots, "settlers" => $settlerslots]; - } - - /** - * Calculates how much artifacts affect troops speed, cranny efficency, etc. - * - * @param int $uid The User ID - * @param int $vid The village ID - * @param int $kind The kind of the artifact - * @param float $multiplicand The value which needs to be multiplied - * @return int Returns the new value, multiplied or divided by artifacts bonus or malus - */ - - function getArtifactsValueInfluence($uid, $vid, $kind, $multiplicand, $round = true){ - list($uid, $vid, $kind, $multiplicand, $round) = $this->escape_input((int) $uid,(int) $vid, $kind, $multiplicand, $round); - - $artefacts = $foolArefacts = []; - $multipliers = [1 => [4, 5, 3], 2 => [1/2, 1/3, 2/3], 3 => [5, 10, 3], 4 => [1/2, 1/2, 3/4], 5 => [1/2, 1/2, 3/4], 7 => [3, 6, 2]]; - - $artefacts[] = count($this->getOwnUniqueArtefactInfo2($vid, $kind, 1, 1)); //Village effect - $artefacts[] = count($this->getOwnUniqueArtefactInfo2($uid, $kind, 3, 0)); //Unique effect - $artefacts[] = count($this->getOwnUniqueArtefactInfo2($uid, $kind, 2, 0)); //Account effect - - $multiplier = 1; - for($i = 0; $i < count($artefacts); $i++) - { - if($artefacts[$i] > 0) { - $multiplier = $multipliers[$kind][$i]; - break; - } - } - - $foolArefacts[] = $this->getOwnUniqueArtefactInfo2($vid, 8, 1, 1); //Village effect - $foolArefacts[] = $this->getOwnUniqueArtefactInfo2($uid, 8, 3, 0); //Unique effect - - $foolEffect = 1; - for($i = 0; $i < count($foolArefacts); $i++) - { - if(count($foolArefacts[$i]) > 0 && $foolArefacts[$i]['kind'] == $kind) - { - $foolEffect = $foolArefacts[$i]['bad_effect'] == 1 ? 1 / $foolArefacts[$i]['effect2'] : $foolArefacts[$i]['effect2']; - break; - } - } - - if(in_array($kind, [2, 4, 5])) $foolEffect = 1 / $foolEffect; - - return !$round ? $multiplicand * $multiplier * $foolEffect : round($multiplicand * $multiplier * $foolEffect); - } - - /** - * Get the total artifacts sum, divided by small, great and unique, by kind - * - * @param int $uid The User ID - * @param int $vid The Village ID - * @param int $kind The kind of the artifact - * @return array Returns the total artifacts sum divided by size - */ - - function getArtifactsSumByKind($uid, $vid, $kind){ - list($uid, $vid, $kind) = $this->escape_input((int) $uid, (int) $vid, (int) $kind); - - $q = "SELECT SUM(IF((size = '1' AND vref = $vid) OR size > '1', 1, 0)) totals, - SUM(IF(size = '1' AND vref = $vid, 1, 0)) small, - SUM(IF(size = '2', 1, 0)) great, - SUM(IF(size = '3', 1, 0)) `unique` - FROM " . TB_PREFIX . "artefacts WHERE owner = ".$uid." AND active = 1 AND (type = $kind OR kind = $kind) AND del = 0"; - $result = mysqli_query($this->dblink, $q); - return $this->mysqli_fetch_all($result)[0]; - } - - /** - * Display a system message to all players - * - * @param string $message The text of the system message that will be written and displayed to all players - */ - - function displaySystemMessage($message){ - list($message) = $this->escape_input($message); - global $autoprefix; - - $myFile = $autoprefix."Templates/text.tpl"; - $fh = fopen($myFile, 'w'); - $text = file_get_contents($autoprefix."Templates/text_format.tpl"); - $text = preg_replace("'%TEKST%'", $message, $text); - fwrite($fh, $text); - - //Set "OK" to 1 to all players, so they can visualize the message - $this->setUsersOk(); - } - - /** - * Called when a system message is sent or Natars/Artifacts have been spawned - * - * @param int $value 1 to make a system message visible to all users, 0 to hide it - * @return bool Returns true if the query was successful, false otherwise - */ - - function setUsersOk($value = 1){ - list($value) = $this->escape_input((int) $value); - - $q = "UPDATE " . TB_PREFIX . "users SET ok = $value"; - return mysqli_query($this->dblink, $q); - } - - function addArtefacts($wids, $artifactsArray) { - list($wids, $artifactsArray) = $this->escape_input($wids, $artifactsArray); - - if(!is_array($wids)) $wids = [$wids]; - - $time = time(); - - foreach($artifactsArray as $index => $artifact){ - $values[] = "(".$wids[$index].",".$artifact['owner'].",".$artifact['type'].",".$artifact['size'].",".$time.",'".$artifact['name']."','".$artifact['desc']."','".$artifact['effect']."','".$artifact['img']."', 0)"; - } - - $q = "INSERT INTO `" . TB_PREFIX . "artefacts` (`vref`, `owner`, `type`, `size`, `conquered`, `name`, `desc`, `effect`, `img`, `active`) VALUES ".implode(",", $values); - return mysqli_query($this->dblink, $q); - } - - function getWWConstructionPlans($uid, $alliance = 0){ - list($uid, $alliance) = $this->escape_input((int) $uid, $alliance); - - if(!$alliance){ - $q = "SELECT - Count(*) as Total - FROM - ".TB_PREFIX."artefacts - WHERE - owner = ".$uid." AND type = 11 AND active = 1 AND del = 0"; - }else{ - $q = "SELECT - Count(*) as Total - FROM - ".TB_PREFIX."artefacts AS artefacts - INNER JOIN ".TB_PREFIX."users AS users - ON users.id != ".$uid." AND users.alliance = ".$alliance." AND artefacts.owner = users.id AND artefacts.type = 11 - WHERE - users.id > 4 AND artefacts.active = 1 AND artefacts.del = 0"; - } - - $result = mysqli_fetch_array(mysqli_query($this->dblink, $q), MYSQLI_ASSOC); - return $result['Total'] > 0; - } - - // no need to cache this method - function getOwnArtefactInfo($vref, $use_cache = true) { - // load the data - type is irrelevant, since the method caches all data - // then returns the one for our type - $this->getOwnArtefactInfoByType($vref, 1, $use_cache); - - // return what we've cached - return (self::$artefactInfoByTypeCache[$vref]); - } - - // no need to cache this method since its called one time only - function getOwnArtefactsInfo($uid) { - list($uid) = $this->escape_input((int) $uid); - - $q = "SELECT * FROM " . TB_PREFIX . "artefacts WHERE owner = $uid AND del = 0"; - $result = mysqli_query($this->dblink, $q); - - return $this->mysqli_fetch_all($result); - } - - function getOwnArtefactInfoByType2($vref, $type, $use_cache = true) { - return $this->getOwnArtefactInfoByType($vref, $type, $use_cache); - } - - function getOwnArtefactInfoByType($vref, $type, $use_cache = true) { - $vref = (int) $vref; - $type = (int) $type; - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && isset(self::$artefactInfoByTypeCache[$vref]) && is_array(self::$artefactInfoByTypeCache[$vref]) && !count(self::$artefactInfoByTypeCache[$vref])) { - return []; - } else if ($use_cache && ($cachedValue = self::returnCachedContent(self::$artefactInfoByTypeCache, $vref)) && !is_null($cachedValue)) { - return (isset($cachedValue[$type]) ? $cachedValue[$type] : []); - } - - $q = "SELECT * FROM " . TB_PREFIX . "artefacts WHERE vref = $vref AND del = 0 ORDER BY size"; - $result = $this->mysqli_fetch_all(mysqli_query($this->dblink,$q)); - - // cache all types and return the requested one - if (count($result)) { - foreach ($result as $arteInfo) { - if (!isset(self::$artefactInfoByTypeCache[$arteInfo['vref']])) { - self::$artefactInfoByTypeCache[$arteInfo['vref']] = []; - } - - // we're sorting by size, thus we only need the first one per each type - if (isset(self::$artefactInfoByTypeCache[$arteInfo['vref']]) && !isset(self::$artefactInfoByTypeCache[$arteInfo['vref']][$arteInfo['type']])) { - self::$artefactInfoByTypeCache[$arteInfo['vref']][$arteInfo['type']] = $arteInfo; - } - } - } else { - self::$artefactInfoByTypeCache[$vref] = []; - } - - return (isset(self::$artefactInfoByTypeCache[$vref][$type]) ? self::$artefactInfoByTypeCache[$vref][$type] : []); - } - - function getOwnUniqueArtefactInfo2($id, $type, $size, $mode, $use_cache = true) { - list($id, $type, $size, $mode) = $this->escape_input((int) $id, (int) $type, (int) $size, $mode); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && isset(self::$artefactDataCache[$id.$mode]) && is_array(self::$artefactDataCache[$id.$mode]) && !count(self::$artefactDataCache[$id.$mode])) { - return []; - } else if ($use_cache && ($cachedValue = self::returnCachedContent(self::$artefactDataCache, $id.$mode)) && !is_null($cachedValue)) { - return (isset($cachedValue[$size.$type]) ? $cachedValue[$size.$type] : []); - } - - $q = "SELECT * FROM " . TB_PREFIX . "artefacts WHERE ".(!$mode ? 'owner' : 'vref')." = $id AND active = 1 AND del = 0"; - $result = $this->mysqli_fetch_all(mysqli_query($this->dblink,$q)); - - // cache all types and return the requested one - if (count($result)) { - foreach ($result as $arteInfo) { - if (!isset(self::$artefactDataCache[$arteInfo[(!$mode ? 'owner' : 'vref')] . $mode])) { - self::$artefactDataCache[$arteInfo[(!$mode ? 'owner' : 'vref')] . $mode] = []; - } - - self::$artefactDataCache[$arteInfo[(!$mode ? 'owner' : 'vref')] . $mode][$arteInfo['size'].$arteInfo['type']] = $arteInfo; - } - } else { - self::$artefactDataCache[$id.$mode] = []; - } - - return (isset(self::$artefactDataCache[$id.$mode][$size.$type]) ? self::$artefactDataCache[$id.$mode][$size.$type] : []); - } - - /** - * Get deleted artifacts - * - * @return array Returns the deleted artifacts - */ - - function getDeletedArtifacts(){ - $q = "SELECT * FROM " . TB_PREFIX . "artefacts WHERE del = 1"; - $result = mysqli_query($this->dblink, $q); - return $this->mysqli_fetch_all($result); - } - - function villageHasArtefact($vref) { - // this is a somewhat non-ideal, externally non-changeable way of caching - // but since we're only ever going to be calling this from a single point of Automation, - // this will more than suffice - static $cachedData = []; - $vref = (int) $vref; - - if (isset($cachedData[$vref])) { - return $cachedData[$vref]; - } - - $q = "SELECT Count(*) as Total FROM " . TB_PREFIX . "artefacts WHERE vref = $vref AND del = 0"; - $result = mysqli_fetch_array(mysqli_query($this->dblink, $q), MYSQLI_ASSOC); - $cachedData[$vref] = $result['Total']; - - return $cachedData[$vref]; - } - - function claimArtefact($vref, $ovref, $id) { - list($vref, $ovref, $id) = $this->escape_input((int) $vref, (int) $ovref, (int) $id); - - $time = time(); - $q = "UPDATE " . TB_PREFIX . "artefacts SET vref = $vref, owner = $id, conquered = $time, active = 0 WHERE vref = $ovref"; - - if(mysqli_query($this->dblink, $q)) - { - $artifactID = reset($this->getOwnArtefactInfo($vref, false))['id']; - return $this->addArtifactsChronology($artifactID, $id, $vref, $time); - } - else return false; - } - - /** - * Retrieves the chronology of one specific artifact - * - * @param int $artefactid The id of the artifact - * @return array Returns the chronology for the passed artifact - */ - - function getArtifactsChronology($artifactID){ - list($artifactID) = $this->escape_input((int) $artifactID); - - $q = "SELECT * FROM " . TB_PREFIX . "artefacts_chrono WHERE artefactid = $artifactID ORDER BY conqueredtime ASC"; - $result = mysqli_query($this->dblink, $q); - return $this->mysqli_fetch_all($result); - } - - /** - * Stores when an artifact was conquered and who had conquered it - * - * @param int $artefactid The id of the artifact - * @param int $vref The vref of the village that has conquered the artifact - * @return bool Return true if the query was successful, false otherwise - */ - - function addArtifactsChronology($artifactID, $uid, $vref, $conqueredTime){ - list($artifactID, $uid, $vref, $conqueredTime) = $this->escape_input((int) $artifactID, (int) $uid, (int) $vref, (int) $conqueredTime); - - $q = "INSERT INTO " . TB_PREFIX . "artefacts_chrono (artefactid, uid, vref, conqueredtime) VALUES ('$artifactID', '$uid', '$vref', '$conqueredTime')"; - return mysqli_query($this->dblink, $q); - } - - /** - * @param mixed $size The integer/array which contains the artifacts size(s) - * @return int Returns if there are at least one not deleted artifact - */ - - function getArtifactsBysize($size){ - list($size) = $this->escape_input($size); - - if(!is_array($size)) $size = [$size]; - - $q = "SELECT * FROM ".TB_PREFIX."artefacts WHERE size IN(".implode(',', $size).") AND del = 0 ORDER BY id ASC"; - $result = mysqli_query($this->dblink, $q); - return $this->mysqli_fetch_all($result); - } - - /** - * @param bool $mode true: check if WW Building plans are already out, false: check if artifacts are already out - * @return int Returns if artifacts are already out or not - */ - - function areArtifactsSpawned($mode = false){ - list($mode) = $this->escape_input($mode); - - $q = "SELECT 1 FROM ".TB_PREFIX."artefacts".($mode ? " WHERE type = 11" : ""); - $result = mysqli_fetch_array(mysqli_query($this->dblink, $q), MYSQLI_ASSOC); - return $result; - } - - - /** - * Check if WW villages are already out or not - * - * @return int Returns if artifacts are already out or not - */ - - function areWWVillagesSpawned(){ - $q = "SELECT 1 FROM ".TB_PREFIX."vdata WHERE natar = 1"; - $result = mysqli_fetch_array(mysqli_query($this->dblink, $q), MYSQLI_ASSOC); - return $result; - } - - /** - * Get all inactive artifacts which can be activated - * - * @return bool Returns all inactive artifacts - */ - - function getInactiveArtifacts($time){ - list($time) = $this->escape_input($time); - - $q = "SELECT * FROM ".TB_PREFIX."artefacts WHERE active = 0 AND owner > 5 AND conquered <= $time AND del = 0 ORDER BY conquered ASC, size ASC"; - $result = mysqli_query($this->dblink, $q); - return $this->mysqli_fetch_all($result); - } - - /** - * Get the sum of active artifacts by user ID, divided by: total, great, small and unique - * - * @param int $uid The User ID of the player - * @param bool $mode True if you want only active artifacts, false if you want all artifacts - * @return array Returns the artifacts sum of the account, divided by: total, great, small and unique - */ - - function getOwnArtifactsSum($uid, $mode = false){ - list($uid) = $this->escape_input((int) $uid, $mode); - - $q = "SELECT Count(size) AS totals, - SUM(IF(size = '1', 1, 0)) small, - SUM(IF(size = '2', 1, 0)) great, - SUM(IF(size = '3', 1, 0)) `unique` - FROM " . TB_PREFIX . "artefacts WHERE owner = ".(int) $uid.($mode ? " AND active = 1 AND del = 0" : ""); - $result = mysqli_query($this->dblink, $q); - return $this->mysqli_fetch_all($result)[0]; - } - - /** - * Activate an artifact by his id - * - * @param int $id The id of the artifact - * @param int $mode 1 for activating an artifact, 0 for deactivating it - * @return bool Returns true if the query was successful, false otherwise - */ - - function activateArtifact($id, $mode = 1){ - list($id) = $this->escape_input((int) $id); - - $time = time(); - $q = "UPDATE " . TB_PREFIX . "artefacts SET active = $mode WHERE id = $id"; - return mysqli_query($this->dblink, $q); - } - - /** - * Get the newest active artifact by size - * - * @param int $size The size of the artifcat (village, account, unique) - * @return array Returns the newest active artifact infomations by size - */ - - function getNewestArtifactBySize($id, $size){ - list($id, $size) = $this->escape_input((int) $id, (int) $size); - - $q = "SELECT * FROM ".TB_PREFIX."artefacts WHERE active = 1 AND owner = $id AND size = $size AND del = 0 ORDER BY conquered DESC LIMIT 1"; - $result = mysqli_query($this->dblink, $q); - return mysqli_fetch_array($result); - } - - // no need to cache this method - public function canClaimArtifact($from, $vref, $size, $type) { - list($size, $type) = $this->escape_input((int) $size, (int) $type); - - $artifact = $this->getOwnArtefactInfo($from); - if (!empty($artifact)) return "Treasury is full. Your hero could not claim the artefact"; - - $uid = $this->getVillageField($from, "owner"); - $vuid = $this->getVillageField($vref, "owner"); - - $artifact = $this->getOwnArtifactsSum($uid); - - if ($artifact['totals'] < 3 || $uid == $vuid) { - $DefenderFields = $this->getResourceLevel( $vref ); - $defcanclaim = true; - - for ($i = 19; $i <= 38; $i++) { - if ($DefenderFields['f'.$i.'t'] == 27) { - $defTresuaryLevel = $DefenderFields['f'.$i]; - if ($defTresuaryLevel > 0) { - $defcanclaim = false; - return "Treasury has not been destroyed. Your hero could not claim the artefact"; - } - else $defcanclaim = true; - } - } - - $AttackerFields = $this->getResourceLevel( $from, 2 ); - - for($i = 19; $i <= 38; $i++) { - if($AttackerFields['f'.$i.'t'] == 27) { - $attTresuaryLevel = $AttackerFields['f'.$i]; - $villageartifact = $attTresuaryLevel >= 10; - $accountartifact = $attTresuaryLevel >= 20; - } - } - - if(($artifact['great'] > 0 || $artifact['unique'] > 0) && $size > 1 && $uid != $vuid) { - return "Max num. of great/unique artefacts. Your hero could not claim the artefact"; - } - - if(($size == 1 && ($villageartifact || $accountartifact)) || (($size == 2 || $size == 3) && $accountartifact)) { - return ""; - } - else return "Your level treasury is low. Your hero could not claim the artefact"; - } - else return "Max num. of artefacts. Your hero could not claim the artefact"; - } - - /** - * Get the informations of a single artifact - * - * @param int $id The artifact id - * @param int $del If 0, it will search not-deleted artifacts, and vice versa with 1 - * @return array Returns the artefact informations - */ - - function getArtefactDetails($id, $del = 0) { - list($id, $del) = $this->escape_input((int) $id, (int) $del); - - $q = "SELECT * FROM " . TB_PREFIX . "artefacts WHERE id = ".$id." AND del = ".$del." LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - return mysqli_fetch_array($result); - } - - /** - * Update an artifact with a specified fields => values array - * - * @param int $id The artifact ID - * @param array $detailsArray Contains the fields to update and the relative values - * @return bool Returns true if the query was successful, false otherwise - */ - - function updateArtifactDetails($id, $detailsArray){ - list($id, $detailsArray) = $this->escape_input((int) $id, $detailsArray); - - $values = []; - foreach($detailsArray as $field => $value) $values[] = $field."=".$value; - - $q = "UPDATE ".TB_PREFIX."artefacts SET ".implode(",", $values)." WHERE id = $id"; - return mysqli_query($this->dblink, $q); - } - - // no need to cache this method - function getMovementById($id) { - list($id) = $this->escape_input((int) $id); - $q = "SELECT * FROM ".TB_PREFIX."movement WHERE moveid = ".$id; - $result = mysqli_query($this->dblink,$q); - $array = $this->mysqli_fetch_all($result); - return $array; - } - - // no need to cache this method - function getLinks($id) { - list($id) = $this->escape_input((int) $id); - $q = 'SELECT * FROM `' . TB_PREFIX . 'links` WHERE `userid` = ' . $id . ' ORDER BY `pos` ASC'; - return mysqli_query($this->dblink,$q); - } - - function removeLinks($id,$uid) { - list($id,$uid) = $this->escape_input((int) $id,(int) $uid); - $q = "DELETE FROM " . TB_PREFIX . "links WHERE `id` = ".$id." and `userid` = ".$uid; - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - function getVilFarmlist($uid) { - list($uid) = $this->escape_input((int) $uid); - - $q = 'SELECT * FROM ' . TB_PREFIX . 'farmlist WHERE owner = '.$uid.' ORDER BY wref ASC LIMIT 1'; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - return $dbarray['id'] > 0; - } - - // no need to cache this method - function getRaidList($id) { - list($id) = $this->escape_input((int) $id); - - $q = "SELECT * FROM " . TB_PREFIX . "raidlist WHERE id = ".$id." LIMIT 1"; - $result = mysqli_query($this->dblink, $q); - return mysqli_fetch_array($result); - } - - /** - * Get all informations about a farm list - * - * @param int $id The farmlist ID - * @return array Returns the seleted farm list informations - */ - - function getFLData($id) { - list($id) = $this->escape_input((int) $id); - - $q = "SELECT * FROM " . TB_PREFIX . "farmlist where id = $id LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - return mysqli_fetch_array($result); - } - - - function delFarmList($id, $owner) { - list($id, $owner) = $this->escape_input((int) $id, (int) $owner); - - $q = "DELETE FROM " . TB_PREFIX . "farmlist where id = $id and owner = $owner"; - if(mysqli_query($this->dblink, $q) && mysqli_affected_rows($this->dblink) > 0){ - $q = "DELETE FROM " . TB_PREFIX . "raidlist where lid = $id"; - return mysqli_query($this->dblink, $q); - } - return false; - } - - function delSlotFarm($id, $owner, $lid) { - list($id, $owner, $lid) = $this->escape_input((int) $id, (int) $owner, (int) $lid); - - $q = "DELETE FROM " . TB_PREFIX . "raidlist WHERE id = $id AND lid = $lid AND EXISTS(SELECT 1 FROM " . TB_PREFIX . "farmlist WHERE id = $lid AND owner = $owner)"; - return mysqli_query($this->dblink,$q); - } - - function createFarmList($wref, $owner, $name) { - list($wref, $owner, $name) = $this->escape_input($wref, $owner, $name); - - $q = "INSERT INTO " . TB_PREFIX . "farmlist (`wref`, `owner`, `name`) VALUES ('$wref', '$owner', '$name')"; - return mysqli_query($this->dblink,$q); - } - - function addSlotFarm($lid, $towref, $x, $y, $distance, $t1, $t2, $t3, $t4, $t5, $t6) { - list($lid, $towref, $x, $y, $distance, $t1, $t2, $t3, $t4, $t5, $t6) = $this->escape_input($lid, $towref, $x, $y, $distance, $t1, $t2, $t3, $t4, $t5, $t6); - - $q = "INSERT INTO " . TB_PREFIX . "raidlist (`lid`, `towref`, `x`, `y`, `distance`, `t1`, `t2`, `t3`, `t4`, `t5`, `t6`) VALUES ('$lid', '$towref', '$x', '$y', '$distance', '$t1', '$t2', '$t3', '$t4', '$t5', '$t6')"; - return mysqli_query($this->dblink,$q); - } - - function editSlotFarm($eid, $lid, $oldLid, $owner, $wref, $x, $y, $dist, $t1, $t2, $t3, $t4, $t5, $t6) { - list($eid, $lid, $oldLid, $owner, $wref, $x, $y, $dist, $t1, $t2, $t3, $t4, $t5, $t6) = $this->escape_input((int) $eid, $lid, $oldLid, $owner, $wref, $x, $y, $dist, $t1, $t2, $t3, $t4, $t5, $t6); - - $q = "UPDATE " . TB_PREFIX . "raidlist SET lid = '$lid', towref = '$wref', x = '$x', y = '$y', t1 = '$t1', t2 = '$t2', t3 = '$t3', t4 = '$t4', t5 = '$t5', t6 = '$t6' WHERE id = $eid AND lid = $oldLid AND EXISTS(SELECT 1 FROM " . TB_PREFIX . "farmlist WHERE id = $lid AND owner = $owner) AND EXISTS(SELECT 1 FROM " . TB_PREFIX . "farmlist WHERE id = $oldLid AND owner = $owner)"; - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - function getArrayMemberVillage($uid) { - list($uid) = $this->escape_input((int) $uid); - $q = 'SELECT a.wref, a.name, b.x, b.y from '.TB_PREFIX.'vdata AS a left join '.TB_PREFIX.'wdata AS b ON b.id = a.wref where owner = '.$uid.' order by capital DESC,pop DESC'; - $result = mysqli_query($this->dblink,$q); - $array = $this->mysqli_fetch_all($result); - return $array; - } - - function addPassword($uid, $npw, $cpw) { - list($uid, $npw, $cpw) = $this->escape_input((int) $uid, $npw, $cpw); - $q = "REPLACE INTO `" . TB_PREFIX . "password`(uid, npw, cpw) VALUES ($uid, '$npw', '$cpw')"; - mysqli_query($this->dblink,$q); - } - - function resetPassword($uid, $cpw) { - list($uid, $cpw) = $this->escape_input((int) $uid, $cpw); - $q = "SELECT npw FROM `" . TB_PREFIX . "password` WHERE uid = $uid AND cpw = '$cpw' AND used = 0 LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - $dbarray = mysqli_fetch_array($result); - - if(!empty($dbarray)) { - if(!$this->updateUserField($uid, 'password', password_hash($dbarray['npw'], PASSWORD_BCRYPT,['cost' => 12]), 1)) return false; - $q = "UPDATE `" . TB_PREFIX . "password` SET used = 1 WHERE uid = $uid AND cpw = '$cpw' AND used = 0"; - mysqli_query($this->dblink,$q); - return true; - } - - return false; - } - - function getCropProdstarv($wref, $use_cache = true) { - global $bid4, $bid8, $bid9, $technology; - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$cropProductionStarvationValueCache, $wref)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $basecrop = $grainmill = $bakery = $cropo = 0; - $owner = $this->getVrefField($wref, 'owner', $use_cache); - $bonus = $this->getUserField($owner, 'b4', 0); - - $buildarray = $this->getResourceLevel($wref); - $cropholder = []; - for($i = 1; $i <= 38; $i++){ - if($buildarray['f'.$i.'t'] == 4) array_push($cropholder, 'f'.$i); - if($buildarray['f'.$i.'t'] == 8) $grainmill = $buildarray['f'.$i]; - if($buildarray['f'.$i.'t'] == 9) $bakery = $buildarray['f'.$i]; - } - - $q = "SELECT type FROM `" . TB_PREFIX . "odata` WHERE conqured = ".(int) $wref; - $oasis = $this->query_return($q); - foreach($oasis as $oa){ - switch($oa['type']) { - case 3: - case 6: - case 9: - case 10: - case 11: - $cropo++; - break; - case 12: - $cropo += 2; - break; - } - } - - for($i = 0; $i <= count($cropholder) - 1; $i++){ - $basecrop += $bid4[$buildarray[$cropholder[$i]]]['prod']; - } - - $crop = $basecrop + $basecrop * 0.25 * $cropo; - - if($grainmill >= 1 || $bakery >= 1){ - $crop += $basecrop / 100 * ((isset($bid8[$grainmill]['attri']) ? $bid8[$grainmill]['attri'] : 0) + (isset($bid9[$bakery]['attri']) ? $bid9[$bakery]['attri'] : 0)); - } - if($bonus > time()) $crop *= 1.25; - - $crop *= SPEED; - - self::$cropProductionStarvationValueCache[$wref] = $crop; - return self::$cropProductionStarvationValueCache[$wref]; - } - - /** - * Adds the starvation data in villages with a negative value of crop - * - * @param int $wref The village ID where the crop is negative - */ - - public function addStarvationData($wref){ - global $technology; - - $getVillage = $this->getVillage($wref); - - //Exlude Support, Nature, Natars, TaskMaster and Multihunter - if ($getVillage['owner'] > 5){ - $crop = $this->getCropProdstarv($wref, false); - $unitArrays = $technology->getAllUnits($wref, false, 0, false); - $villageUpkeep = $getVillage['pop'] + $technology->getUpkeep($unitArrays, 0, $wref); - $starv = $getVillage['starv']; - - if ($crop < $villageUpkeep){ - //Add starvation data - $fields = ['starv']; - $values = [$villageUpkeep]; - - //Update the starvupdate if it's set to 0 - if($getVillage['starvupdate'] == 0) { - $fields[] = 'starvupdate'; - $values[] = time(); - } - - //Update the starvation datas - $this->setVillageFields($wref, $fields, $values); - } - } - } - - //general statistics - - function addGeneralAttack($casualties) { - list($casualties) = $this->escape_input($casualties); - - $time = time(); - $q = "INSERT INTO " . TB_PREFIX . "general values (0,'$casualties','$time',1)"; - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - function getAttackByDate($time) { - list($time) = $this->escape_input($time); - - $q = "SELECT time FROM " . TB_PREFIX . "general where shown = 1"; - $result = $this->query_return($q); - $attack = 0; - foreach($result as $general) { - if(date("j. M",$time) == date("j. M",$general['time'])){ - $attack += 1; - } - } - return $attack; - } - - // no need to cache this method - function getAttackCasualties($time) { - list($time) = $this->escape_input($time); - - $q = "SELECT time, casualties FROM " . TB_PREFIX . "general where shown = 1"; - $result = $this->query_return($q); - $casualties = 0; - foreach($result as $general){ - if(date("j. M",$time) == date("j. M",$general['time'])){ - $casualties += $general['casualties']; - } - } - return $casualties; - } - - //end general statistics - - function addFriend($uid, $column, $friend) { - list($uid, $column, $friend) = $this->escape_input((int) $uid, $column, (int) $friend); - - $q = "UPDATE " . TB_PREFIX . "users SET $column = $friend WHERE id = $uid"; - return mysqli_query($this->dblink,$q); - } - - function deleteFriend($uid, $column) { - list($uid, $column) = $this->escape_input((int) $uid, $column); - - $q = "UPDATE " . TB_PREFIX . "users SET $column = 0 WHERE id = $uid"; - return mysqli_query($this->dblink,$q); - } - - // no need to cache this method - function checkFriends($uid) { - list($uid) = $this->escape_input($uid); - global $session; - - $user = $this->getUserArray($uid, 1); - for($i = 0; $i <= 19; $i++){ - if($user['friend'.$i] == 0 && $user['friend'.$i.'wait'] == 0){ - for($j = $i + 1; $j <= 19; $j++){ - $k = $j - 1; - if($user['friend'.$j] != 0){ - $friend = $this->getUserField($uid, "friend".$j, 0); - $this->addFriend($uid, "friend".$k, $friend); - $this->deleteFriend($uid, "friend".$j); - } - - if($user['friend'.$j.'wait'] == 0){ - $friendwait = $this->getUserField($uid, "friend".$j."wait", 0); - $this->addFriend($session->uid, "friend".$k."wait", $friendwait); - $this->deleteFriend($uid, "friend".$j."wait"); - } - } - } - } - } - - function setVillageEvasion($vid) { - list($vid) = $this->escape_input($vid); - - $village = $this->getVillage((int) $vid); - if($village['evasion'] == 0){ - $q = "UPDATE " . TB_PREFIX . "vdata SET evasion = 1 WHERE wref = $vid"; - }else{ - $q = "UPDATE " . TB_PREFIX . "vdata SET evasion = 0 WHERE wref = $vid"; - } - return mysqli_query($this->dblink,$q); - } - - function addPrisoners($wid,$from,$t1,$t2,$t3,$t4,$t5,$t6,$t7,$t8,$t9,$t10,$t11) { - list($wid,$from,$t1,$t2,$t3,$t4,$t5,$t6,$t7,$t8,$t9,$t10,$t11) = $this->escape_input((int) $wid,(int) $from,(int) $t1,(int) $t2,(int) $t3,(int) $t4,(int) $t5,(int) $t6,(int) $t7,(int) $t8,(int) $t9,(int) $t10,(int) $t11); - - $q = "INSERT INTO " . TB_PREFIX . "prisoners values (0,$wid,$from,$t1,$t2,$t3,$t4,$t5,$t6,$t7,$t8,$t9,$t10,$t11)"; - mysqli_query($this->dblink,$q); - self::$prisonersCache = []; - return mysqli_insert_id($this->dblink); - } - - function updatePrisoners($wid,$from,$t1,$t2,$t3,$t4,$t5,$t6,$t7,$t8,$t9,$t10,$t11) { - list($wid,$from,$t1,$t2,$t3,$t4,$t5,$t6,$t7,$t8,$t9,$t10,$t11) = $this->escape_input((int) $wid,(int) $from,(int) $t1,(int) $t2,(int) $t3,(int) $t4,(int) $t5,(int) $t6,(int) $t7,(int) $t8,(int) $t9,(int) $t10,(int) $t11); - - $q = "UPDATE " . TB_PREFIX . "prisoners set t1 = t1 + $t1, t2 = t2 + $t2, t3 = t3 + $t3, t4 = t4 + $t4, t5 = t5 + $t5, t6 = t6 + $t6, t7 = t7 + $t7, t8 = t8 + $t8, t9 = t9 + $t9, t10 = t10 + $t10, t11 = t11 + $t11 where wref = $wid and ".TB_PREFIX."prisoners.from = $from"; - $res = mysqli_query($this->dblink,$q); - self::$prisonersCache = []; - return $res; - } - - /** - * Used to modify prisoners through the inserted id - * - * @param int $id The prisoner id where prisoners are in the database - * @param int $unit The type of the unit - * @param int $amount The amount of the unit you want to sum/subtract - * @param int $mode 0 for subtracting the inserted amount, 1 for adding it - * @return bool Returns false on failure and true on success - */ - - function modifyPrisoners($id, $units, $amount, $mode) { - list($id, $units, $amount, $mode) = $this->escape_input((int) $id, $units, $amount,(int) $mode); - - if (!is_array($units)) - { - $units = [$units]; - $amount = [$amount]; - } - - $prisoners = []; - foreach($units as $index => $unit) - { - $unit = 't'.$this->escape($unit); - $prisoners[] = $unit." = ".$unit.(!$mode ? " - " : " + ").(int)$amount[$index]; - } - - $q = "UPDATE " . TB_PREFIX . "prisoners set ".implode(', ', $prisoners)." WHERE id = $id"; - return mysqli_query($this->dblink,$q); - } - - function getPrisoners($wid, $mode = 0, $use_cache = true) { - $array_passed = is_array($wid); - $mode = (int) $mode; - - if (!$array_passed) { - $wid = [(int) $wid]; - } else { - foreach ($wid as $index => $widValue) { - $wid[$index] = (int) $widValue; - } - } - - if (!count($wid)) { - return []; - } - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && !$array_passed && isset(self::$prisonersCache[$wid[0].$mode]) && is_array(self::$prisonersCache[$wid[0].$mode]) && !count(self::$prisonersCache[$wid[0].$mode])) { - return self::$prisonersCache[$wid[0].$mode]; - } else if ($use_cache && $array_passed) { - // check what we can return from cache - $newWIDs = []; - foreach ($wid as $key) { - if (!isset(self::$prisonersCache[$key.$mode])) { - $newWIDs [] = $key; - } - } - - // everything's cached, just return the cache - if (!count($newWIDs)) { - return self::$prisonersCache; - } else { - // update remaining IDs to select and cache - $wid = $newWIDs; - } - } else if ($use_cache && !$array_passed && ($cachedValue = self::returnCachedContent(self::$prisonersCache, $wid[0].$mode)) && !is_null($cachedValue)) { - // special case when we have empty arrays cached for this cache only - return $cachedValue; - } - - if(!$mode) { - $q = "SELECT * FROM " . TB_PREFIX . "prisoners where wref IN(".implode(', ', $wid).")"; - }else { - $q = "SELECT * FROM " . TB_PREFIX . "prisoners where `from` IN(".implode(', ', $wid).")"; - } - $result = $this->mysqli_fetch_all(mysqli_query($this->dblink,$q)); - - // return a single value - if (!$array_passed) { - if (count($result) == 1) { - $result = $result[0]; - } - self::$prisonersCache[$wid[0].$mode] = (count($result) ? [$result] : []); - } else { - if ($result && count($result)) { - if (!isset(self::$prisonersCache[$record[($mode ? 'from' : 'wref')].$mode])) { - self::$prisonersCache[$record[($mode ? 'from' : 'wref' )].$mode] = []; - } - - foreach ($result as $record) { - self::$prisonersCache[$record[($mode ? 'from' : 'wref')].$mode][] = $record; - } - } - - // check for any missing IDs and fill them in with blanks, - // since no reinforcements were found for these villages - foreach ($wid as $key) { - if (!isset(self::$prisonersCache[$key.$mode])) { - self::$prisonersCache[$key.$mode] = []; - } - } - } - - return ($array_passed ? self::$prisonersCache : self::$prisonersCache[$wid[0].$mode]); - } - - function getPrisoners2($wid,$from, $use_cache = true) { - list($wid,$from) = $this->escape_input((int) $wid,(int) $from); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$prisonersCacheByVillageAndFromIDs, $wid.$from)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT * FROM " . TB_PREFIX . "prisoners where wref = $wid and " . TB_PREFIX . "prisoners.from = $from"; - $result = mysqli_query($this->dblink,$q); - - self::$prisonersCacheByVillageAndFromIDs[$wid.$from] = $this->mysqli_fetch_all($result); - return self::$prisonersCacheByVillageAndFromIDs[$wid.$from]; - } - - function getPrisonersByID($id, $use_cache = true) { - list($id) = $this->escape_input((int) $id); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$prisonersCacheByID, $id)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT * FROM " . TB_PREFIX . "prisoners where id = $id LIMIT 1"; - $result = mysqli_query($this->dblink,$q); - - self::$prisonersCacheByID[$id] = mysqli_fetch_array($result); - return self::$prisonersCacheByID[$id]; - } - - function getPrisoners3($from, $use_cache = true) { - list($from) = $this->escape_input((int) $from); - - // first of all, check if we should be using cache and whether the field - // required is already cached - if ($use_cache && ($cachedValue = self::returnCachedContent(self::$prisonersCacheByVillageAndFromIDs, $from)) && !is_null($cachedValue)) { - return $cachedValue; - } - - $q = "SELECT * FROM " . TB_PREFIX . "prisoners where " . TB_PREFIX . "prisoners.from = $from"; - $result = mysqli_query($this->dblink,$q); - - self::$prisonersCacheByVillageAndFromIDs[$wid.$from] = $this->mysqli_fetch_all($result); - return self::$prisonersCacheByVillageAndFromIDs[$from]; - } - - function deletePrisoners($id) { - if (!is_array($id)) { - $id = [$id]; - } - - foreach ($id as $index => $idValue) { - $id[$index] = (int) $idValue; - } - - $q = "DELETE FROM " . TB_PREFIX . "prisoners WHERE id IN(".implode(', ', $id).")"; - mysqli_query($this->dblink,$q); - - self::$prisonersCache = []; - } - - /***************************************** - Function to vacation mode - by advocaite - References: - *****************************************/ - - function setvacmode($uid, $days) { - // TODO: refactor vacation mode - list ($uid, $days) = $this->escape_input((int) $uid, (int) $days); - $days1 = 60 * 60 * 24 * $days; - $time = time() + $days1; - $q = "UPDATE " . TB_PREFIX . "users SET vac_mode = '1' , vac_time=" . $time . " WHERE id=" . $uid . ""; - $result = mysqli_query($this->dblink, $q); - return; - } - - function removevacationmode($uid){ - // TODO: refactor vacation mode - list ($uid) = $this->escape_input((int) $uid); - $q = "UPDATE " . TB_PREFIX . "users SET vac_mode = '0' , vac_time='0' WHERE id=" . $uid . ""; - $result = mysqli_query($this->dblink, $q); - return; - } - - function getvacmodexy($wref){ - // TODO: refactor vacation mode - list ($wref) = $this->escape_input((int) $wref); - $q = "SELECT id,oasistype,occupied FROM " . TB_PREFIX . "wdata where id = $wref"; - $result = mysqli_query($this->dblink, $q); - $dbarray = mysqli_fetch_array($result); - if ($dbarray['occupied'] != 0 && $dbarray['oasistype'] == 0) { - $q1 = "SELECT owner FROM " . TB_PREFIX . "vdata where wref = " . (int) $dbarray['id'] . ""; - $result1 = mysqli_query($this->dblink, $q1); - $dbarray1 = mysqli_fetch_array($result1); - if ($dbarray1['owner'] != 0) { - $q2 = "SELECT vac_mode,vac_time FROM " . TB_PREFIX . "users where id = " . (int) $dbarray1['owner'] . ""; - $result2 = mysqli_query($this->dblink, $q2); - $dbarray2 = mysqli_fetch_array($result2); - return $dbarray2['vac_mode'] == 1; - } - } - else return false; - } - - // no need to cache this method - function getHeroDeadReviveOrInTraining($id) { - $id = (int) $id; - - $q = "SELECT Count(*) as Total FROM " . TB_PREFIX . "hero WHERE `uid` = $id AND dead = 0 AND inrevive = 0 AND intraining = 0"; - $result = mysqli_fetch_array(mysqli_query($this->dblink,$q), MYSQLI_ASSOC); - return $result['Total'] > 0; - } - - /*************************** - Function to Kill hero if not found - Made by: Shadow and brainiacX - ***************************/ - function KillMyHero($id) { - list( $id ) = $this->escape_input( (int) $id ); - - $q = "UPDATE " . TB_PREFIX . "hero set dead = 1, intraining = 0, inrevive = 0, health = 0 where uid = " . $id . " AND dead = 0"; - return mysqli_query( $this->dblink, $q ); - } - - /*************************** - Function to find Hero place - Made by: ronix - ***************************/ - // no need to cache this method - function FindHeroInVil($wid) { - list($wid) = $this->escape_input($wid); - - $result = $this->query("SELECT hero FROM ".TB_PREFIX."units WHERE hero>0 AND vref='".$wid."' LIMIT 1"); - if (!empty($result)) { - $dbarray = mysqli_fetch_array($result); - if(isset($dbarray['hero'])) { - $this->query("UPDATE ".TB_PREFIX."units SET hero=0 WHERE vref='".$wid."'"); - unset($dbarray); - return true; - } - } - return false; - } - - // no need to cache this method - function FindHeroInDef($wid) { - list($wid) = $this->escape_input($wid); - - $delDef=true; - $result = $this->query_return("SELECT * FROM ".TB_PREFIX."enforcement WHERE hero>0 AND `from` = ".$wid); - if (!empty($result)) { - $dbarray = $result; - if(isset($dbarray['hero'])) { - $this->query("UPDATE ".TB_PREFIX."enforcement SET hero=0 WHERE `from` = ".$wid); - for ($i=0;$i<50;$i++) { - if($dbarray['u'.$i]>0) { - $delDef=false; - break; - } - } - if ($delDef) $this->deleteReinf($wid); - unset($dbarray); - return true; - } - } - return false; - } - - // no need to cache this method - function FindHeroInOasis($uid) { - list($uid) = $this->escape_input($uid); - - $delDef=true; - $dbarray = $this->query_return("SELECT e.*,o.conqured,o.owner FROM ".TB_PREFIX."enforcement as e LEFT JOIN ".TB_PREFIX."odata as o ON e.vref=o.wref where o.owner=".$uid." AND e.hero>0"); - if(!empty($dbarray)) { - foreach($dbarray as $defoasis) { - if($defoasis['hero']>0) { - $this->query("UPDATE ".TB_PREFIX."enforcement SET hero=0 WHERE `from` = ".$defoasis['from']); - for ($i=0;$i<50;$i++) { - if($dbarray['u'.$i]>0) { - $delDef=false; - break; - } - } - if ($delDef) $this->deleteReinf($defoasis['from']); - unset($dbarray); - return true; - } - } - } - return 0; - } - - // no need to cache this method - function FindHeroInMovement($wid) { - list($wid) = $this->escape_input($wid); - - $outgoingarray = $this->getMovement(3, $wid, 0); - if(!empty($outgoingarray)) { - foreach($outgoingarray as $out) { - if ($out['t11']>0) { - $dbarray = $this->query("UPDATE ".TB_PREFIX."attacks SET t11=0 WHERE `id` = ".$out['ref']); - return true; - break; - } - } - } - $returningarray = $this->getMovement(4, $wid, 1); - if(!empty($returningarray)) { - foreach($returningarray as $ret) { - if($ret['attack_type'] != 1 && $ret['t11']>0) { - $dbarray = $this->query("UPDATE ".TB_PREFIX."attacks SET t11=0 WHERE `id` = ".$ret['ref']); - return true; - break; - } - } - } - return false; - } - - /** - * Register the hero to the capital village and kills it - * - * @param int $wref The village ID where the hero is registered - * @return bool Return true if the query was successful, false otherwise - */ - - function reassignHero($wref){ - list($wref) = $this->escape_input($wref); - - $q = "UPDATE - ".TB_PREFIX."hero AS hero - INNER JOIN ".TB_PREFIX."vdata AS vdata - ON vdata.owner = hero.uid AND vdata.capital = 1 - SET - hero.dead = 1, hero.health = 0, hero.wref = vdata.wref - WHERE - hero.wref = $wref"; - return mysqli_query($this->dblink, $q); - } - - /** - * Changed the actual capital with a new one - * - * @param int $wref The village ID that will became the new capital - * @return bool Return true if the query was successful, false otherwise - */ - - function changeCapital($wref, $mode = 1){ - list($wref, $mode) = $this->escape_input($wref, $mode); - - $q = "UPDATE ".TB_PREFIX."vdata SET capital = ".$mode." WHERE wref = $wref"; - return mysqli_query($this->dblink, $q); - } -}; - -// database is not needed if we're displaying static pages -$req_file = basename($_SERVER['PHP_SELF']); -if (!in_array($req_file, ['tutorial.php', 'anleitung.php'])) { - $database = new MYSQLi_DB(SQL_SERVER, SQL_USER, SQL_PASS, SQL_DB, (defined('SQL_PORT') ? SQL_PORT : 3306)); - $link = $database->return_link(); - $GLOBALS['db'] = $database; - $GLOBALS['link'] = $database->return_link(); - - // register all functions to be executed when the script is over, - // so we can flush any SQL caches we may still have pending - register_shutdown_function(function() { - global $database; - $database->sendPendingMessages(); - }); -} -?> diff --git a/GameEngine/Form.php b/GameEngine/Form.php deleted file mode 100755 index 00a64981..00000000 --- a/GameEngine/Form.php +++ /dev/null @@ -1,75 +0,0 @@ -errorarray = $_SESSION['errorarray']; - $this->valuearray = $_SESSION['valuearray']; - $this->errorcount = count($this->errorarray); - - unset($_SESSION['errorarray']); - unset($_SESSION['valuearray']); - } - else $this->errorcount = 0; - } - - public function addError($field,$error) { - $this->errorarray[$field] = $error; - $this->errorcount = count($this->errorarray); - } - - public function getError($field) { - if(array_key_exists($field,$this->errorarray)) { - return $this->errorarray[$field]; - } - else return ""; - } - - public function getValue($field) { - if(array_key_exists($field,$this->valuearray)) { - return $this->valuearray[$field]; - } - else return ""; - } - - public function setValue($field, $value) { - $this->valuearray[$field] = $value; - } - - public function getDiff($field,$cookie) { - if(array_key_exists($field,$this->valuearray) && $this->valuearray[$field] != $cookie) { - return $this->valuearray[$field]; - } - else return $cookie; - } - - public function getRadio($field,$value) { - if(array_key_exists($field,$this->valuearray) && $this->valuearray[$field] == $value) { - return "checked"; - } - else return ""; - } - - public function returnErrors() { - return $this->errorcount; - } - - public function getErrors() { - return $this->errorarray; - } -}; -?> \ No newline at end of file diff --git a/GameEngine/Game/WorldWonderName.php b/GameEngine/Game/WorldWonderName.php deleted file mode 100755 index 8d5e3f00..00000000 --- a/GameEngine/Game/WorldWonderName.php +++ /dev/null @@ -1,21 +0,0 @@ -natar){ - $database->submitWWname($village->wid,$_POST['wwname']); - header("Location: ../../build.php?id=99&n"); -}else{ - header("Location: ../../dorf2.php"); -} - - -?> \ No newline at end of file diff --git a/GameEngine/Generator.php b/GameEngine/Generator.php deleted file mode 100755 index 2b8ed1e8..00000000 --- a/GameEngine/Generator.php +++ /dev/null @@ -1,144 +0,0 @@ -generateRandStr(16)); - } - - public function generateRandStr($length){ - $randstr = ""; - for($i = 0; $i < $length; $i++){ - $randnum = mt_rand(0, 61); - if($randnum < 10) $randstr .= chr($randnum + 48); - else if($randnum < 36) $randstr .= chr($randnum + 55); - else $randstr .= chr($randnum + 61); - } - return $randstr; - } - - public function encodeStr($str, $length) { - $encode = md5($str); - return substr($encode, 0 ,$length); - } - - public function procDistanceTime($coor, $thiscoor, $ref, $mode, $vid = 0) { - global $database, $bid28, $bid14, $village; - - if($vid == 0) $vid = $village->wid; - - $xdistance = ABS($thiscoor['x'] - $coor['x']); - if($xdistance > WORLD_MAX) $xdistance = (2 * WORLD_MAX + 1) - $xdistance; - - $ydistance = ABS($thiscoor['y'] - $coor['y']); - if($ydistance > WORLD_MAX) $ydistance = (2 * WORLD_MAX + 1) - $ydistance; - - $distance = SQRT(POW($xdistance,2) + POW($ydistance,2)); - if(!$mode){ - if($ref == 1) $speed = 16; - else if($ref == 2) $speed = 12; - else if($ref == 3) $speed = 24; - else if($ref == 300) $speed = 5; - else $speed = 1; - }else{ - $speed = $ref; - if(($tSquareLevel = $database->getFieldLevelInVillage($vid, 14)) > 0 && $distance >= TS_THRESHOLD) { - $speed *= ($bid14[$tSquareLevel]['attri'] / 100) ; - } - } - - if($speed > 0) return round(($distance / $speed) * 3600 / INCREASE_SPEED); - else return round($distance * 3600 / INCREASE_SPEED); - } - - public function getTimeFormat($time) { - $min = $hr = $days = 0; - - while($time >= 60){ - $time -= 60; - $min += 1; - } - - while($min >= 60){ - $min -= 60; - $hr += 1; - } - - if($min < 10) $min = "0" . $min; - if($time < 10) $time = "0" . $time; - - return $hr . ":" . $min . ":" . $time; - } - - public function procMtime($time, $pref = 3){ - /* - * $timezone = 7; - * switch($timezone) { - * case 7: - * $time -= 3600; - * break; - * } - */ - // $time += 3600*0; //Edit this yourself - $time += 0; // Edit this yourself - - $today = date('d', time()) - 1; - if(date('Ymd', time()) == date('Ymd', $time)) $day = "today"; - elseif($today == date('d', $time)) $day = "yesterday"; - else - { - switch($pref){ - case 1 : - $day = date("m/j/y", $time); - break; - case 2 : - $day = date("j/m/y", $time); - break; - case 3 : - $day = date("j.m.y", $time); - break; - default : - $day = date("y/m/j", $time); - break; - } - } - $new = date("H:i:s", $time); - if($pref == "9" || $pref == 9) return $new; - else return array($day, $new); - } - - - public function getBaseID($x, $y){ - return ((WORLD_MAX - $y) * (WORLD_MAX * 2 + 1)) + (WORLD_MAX + $x + 1); - } - - public function getMapCheck($wref){ - return substr(md5($wref), 5, 2); - } - - public function pageLoadTimeStart(){ - if(isset($_SERVER["REQUEST_TIME_FLOAT"])) return $_SERVER["REQUEST_TIME_FLOAT"]; - $starttime = microtime(true); - $startarray = explode(" ", $starttime); - //$starttime = $startarray[1] + $startarray[0]; - return $startarray[0]; - } - - public function pageLoadTimeEnd(){ - $endtime = microtime(true); - $endarray = explode(" ", $endtime); - //$endtime = $endarray[1] + $endarray[0]; - return $endarray[0]; - } - -}; -$generator = new MyGenerator; diff --git a/GameEngine/Logging.php b/GameEngine/Logging.php deleted file mode 100755 index 3f5dfff0..00000000 --- a/GameEngine/Logging.php +++ /dev/null @@ -1,110 +0,0 @@ -escape_input((int) $uid,$ref,$type); - if(LOG_ILLEGAL) { - $log = "Attempted to "; - switch($type) { - case 1: - $log .= "access village $ref"; - break; - } - $q = "Insert into ".TB_PREFIX."illegal_log SET user = $uid, log = '$log'"; - $database->query($q); - } - } - - public function addLoginLog($id,$ip) { - global $database; - list($id,$ip) = $database->escape_input((int) $id,$ip); - if(LOG_LOGIN) { - $q = "Insert into ".TB_PREFIX."login_log SET uid = $id, ip = '".$_SERVER['REMOTE_ADDR']."'"; - $database->query($q); - } - } - - public function addBuildLog($wid,$building,$level,$type) { - global $database; - list($wid,$building,$level,$type) = $database->escape_input((int) $wid,$building,$level,$type); - if(LOG_BUILD) { - if($type) { - $log = "Start Construction of "; - } - else { - $log = "Start Upgrade of "; - } - $log .= $building." to level ".$level; - $q = "Insert into ".TB_PREFIX."build_log SET wid = $wid, log = '$log'"; - $database->query($q); - } - } - - public function addTechLog($wid,$tech,$level) { - global $database; - list($wid,$tech,$level) = $database->escape_input((int) $wid,$tech,$level); - if(LOG_TECH) { - $log = "Upgrading of tech ".$tech." to level ".$level; - $q = "Insert into ".TB_PREFIX."tech_log SET wid = $wid, log = '$log'"; - $database->query($q); - } - } - - public function goldFinLog($wid) { - global $database; - list($wid) = $database->escape_input((int) $wid); - if(LOG_GOLD_FIN) { - $log = "Finish construction and research with gold"; - $q = "Insert into ".TB_PREFIX."gold_fin_log values (0,$wid,'$log')"; - $database->query($q); - } - } - - public function addAdminLog() { - global $database; - } - - public function addMarketLog($wid,$type,$data) { - global $database; - list($wid,$type,$data) = $database->escape_input((int) $wid,$type,$data); - if(LOG_MARKET) { - if($type == 1) { - $log = "Sent ".$data[0].",".$data[1].",".$data[2].",".$data[3]." to village ".$data[4]; - } - else if($type == 2) { - $log = "Traded resource between ".$wid." and ".$data[0]." market ref is ".$data[1]; - } - $q = "Insert into ".TB_PREFIX."market_log SET wid = $wid, log = '$log'"; - $database->query($q); - } - } - - public function addWarLog() { - global $database; - } - - public function clearLogs() { - global $database; - } - - public static function debug($debug_info, $time = 0) { - global $database, $generator; - list($debug_info) = $database->escape_input($debug_info); - - echo ''; - } -}; - -$logging = new Logging; -?> diff --git a/GameEngine/Mailer.php b/GameEngine/Mailer.php deleted file mode 100755 index 4d097a56..00000000 --- a/GameEngine/Mailer.php +++ /dev/null @@ -1,95 +0,0 @@ - \ No newline at end of file diff --git a/GameEngine/Market.php b/GameEngine/Market.php deleted file mode 100755 index 175a9e88..00000000 --- a/GameEngine/Market.php +++ /dev/null @@ -1,374 +0,0 @@ -loadMarket(); - if(isset($_SESSION['loadMarket'])) - { - $this->loadOnsale(); - unset($_SESSION['loadMarket']); - } - if(isset($post['ft'])) - { - switch($post['ft']) - { - case "mk1": $this->sendResource($post); break; - case "mk2": $this->addOffer($post); break; - case "mk3": $this->tradeResource($post); break; - } - } - } - - public function procRemove($get) - { - global $database, $village, $session; - - if(isset($get['t']) && $get['t'] == 1) - { - $this->filterNeed($get); - } - else if(isset($get['t']) && $get['t'] == 2 && isset($get['a']) && $get['a'] == 5 && isset($get['del'])) - { - //GET ALL FIELDS FROM MARKET - $type = $database->getMarketField($village->wid, $get['del'], "gtype"); - $amt = $database->getMarketField($village->wid, $get['del'], "gamt"); - $database->getResourcesBack($village->wid, $type, $amt); - $database->addMarket($village->wid, $get['del'], 0, 0, 0, 0, 0, 0, 1); - header("Location: build.php?id=".$get['id']."&t=2"); - exit; - } - if(isset($get['t']) && $get['t'] == 1 && isset($get['a']) && $get['a'] == $session->mchecker && !isset($get['del'])) - { - $session->changeChecker(); - $this->acceptOffer($get); - } - } - - public function merchantAvail() - { - return $this->merchant - $this->used; - } - - private function loadMarket() - { - global $session,$building,$bid28,$bid17,$database,$village; - - $this->recieving = $database->getMovement(0,$village->wid,1); - $this->sending = $database->getMovement(0,$village->wid,0); - $this->return = $database->getMovement(2,$village->wid,1); - $this->merchant = ($building->getTypeLevel(17) > 0)? $bid17[$building->getTypeLevel(17)]['attri'] : 0; - $this->used = $database->totalMerchantUsed($village->wid); - $this->onmarket = $database->getMarket($village->wid,0); - $this->maxcarry = ($session->tribe == 1)? 500 : (($session->tribe == 2)? 1000 : 750); - $this->maxcarry *= TRADER_CAPACITY; - if($building->getTypeLevel(28) != 0) - { - $this->maxcarry *= $bid28[$building->getTypeLevel(28)]['attri'] / 100; - } - } - - private function sendResource($post) - { - global $database, $village, $session, $generator, $logging, $form; - - $wtrans = (isset($post['r1']) && !empty($post['r1']))? $post['r1'] : 0; - $ctrans = (isset($post['r2']) && !empty($post['r2']))? $post['r2'] : 0; - $itrans = (isset($post['r3']) && !empty($post['r3']))? $post['r3'] : 0; - $crtrans = (isset($post['r4']) && !empty($post['r4']))? $post['r4'] : 0; - $wtrans = str_replace("-", "", $wtrans); - $ctrans = str_replace("-", "", $ctrans); - $itrans = str_replace("-", "", $itrans); - $crtrans = str_replace("-", "", $crtrans); - - // preload all village data, since we're retrieving some of those separately below - $database->getVillage($village->wid); - - $availableWood = $database->getWoodAvailable($village->wid); - $availableClay = $database->getClayAvailable($village->wid); - $availableIron = $database->getIronAvailable($village->wid); - $availableCrop = $database->getCropAvailable($village->wid); - - //check if on vacation: - if($database->getvacmodexy($id)) $form->addError("error", USER_ON_VACATION); - - if(!$database->checkVilExist($post['getwref'])) $form->addError("error", NO_COORDINATES_SELECTED); - elseif($post['getwref'] == $village->wid) $form->addError("error", CANNOT_SEND_RESOURCES); - elseif($post['send3'] < 1 || $post['send3'] > 3 || ($post['send3'] > 1 && !$session->goldclub)) $form->addError("error", INVALID_MERCHANTS_REPETITION); - elseif($availableWood >= $post['r1'] && $availableClay >= $post['r2'] && $availableIron >= $post['r3'] && $availableCrop >= $post['r4']) - { - $resource = [$wtrans, $ctrans, $itrans, $crtrans]; - $reqMerc = ceil((array_sum($resource) - 0.1) / $this->maxcarry); - - if($this->merchantAvail() > 0 && $reqMerc <= $this->merchantAvail()) - { - $id = $post['getwref']; - $coor = $database->getCoor($id); - if($database->getVillageState($id)) - { - $timetaken = $generator->procDistanceTime($coor, $village->coor, $session->tribe, 0); - $res = $resource[0] + $resource[1] + $resource[2] + $resource[3]; - if($res != 0){ - $reference = $database->sendResource($resource[0], $resource[1], $resource[2], $resource[3], $reqMerc, 0); - $database->modifyResource($village->wid, $resource[0], $resource[1], $resource[2], $resource[3], 0); - $database->addMovement(0, $village->wid, $id, $reference, time(), time() + $timetaken, $post['send3']); - $logging->addMarketLog($village->wid, 1, [$resource[0], $resource[1], $resource[2], $resource[3], $id]); - } - } - header("Location: build.php?id=".$post['id']); - exit; - } - else $form->addError("error", TOO_FEW_MERCHANTS); - } - else $form->addError("error", TOO_FEW_RESOURCES); - } - - private function addOffer($post) - { - global $database,$village,$session; - - - if($post['rid1'] == $post['rid2']) - { - // Trading res for res of same type (invalid) - header("Location: build.php?id=".$post['id']."&t=2&e2"); - exit; - } - elseif(!isset($post['m1']) || !isset($post['m2']) || $post['m1'] <= 0 || $post['m2'] <= 0) - { - // No resources selected (invalid) - header("Location: build.php?id=".$post['id']."&t=2&e2"); - exit; - } - elseif($post['m1'] > (2 * $post['m2'])) - { - // Trade is for more than 2x (invalid) - header("Location: build.php?id=".$post['id']."&t=2&e2"); - exit; - } - elseif($post['m2'] > (2 * $post['m1'])) - { - // Trade is for less than 0.5x (invalid) - header("Location: build.php?id=".$post['id']."&t=2&e2"); - exit; - } - elseif($post['rid1'] < 1 || $post['rid1'] > 4 || $post['rid2'] < 1 || $post['rid2'] > 4) - { - // Inexistent resources type (invalid) - header("Location: build.php?id=".$post['id']."&t=2&e2"); - exit; - } - else - { - $wood = ($post['rid1'] == 1)? $post['m1'] : 0; - $clay = ($post['rid1'] == 2)? $post['m1'] : 0; - $iron = ($post['rid1'] == 3)? $post['m1'] : 0; - $crop = ($post['rid1'] == 4)? $post['m1'] : 0; - - // preload all village data, since we're retrieving some of those separately below - $database->getVillage($village->wid); - - $availableWood = $database->getWoodAvailable($village->wid); - $availableClay = $database->getClayAvailable($village->wid); - $availableIron = $database->getIronAvailable($village->wid); - $availableCrop = $database->getCropAvailable($village->wid); - - if($availableWood >= $wood && $availableClay >= $clay && $availableIron >= $iron && $availableCrop >= $crop) - { - $reqMerc = 1; - - if(($wood+$clay+$iron+$crop) > $this->maxcarry) - { - $reqMerc = round(($wood+$clay+$iron+$crop)/$this->maxcarry); - - if(($wood+$clay+$iron+$crop) > $this->maxcarry*$reqMerc) $reqMerc += 1; - } - if($this->merchantAvail() > 0 && $reqMerc <= $this->merchantAvail()) - { - if($database->modifyResource($village->wid,$wood,$clay,$iron,$crop,0)) - { - $time = 0; - if(isset($_POST['d1'])) $time = $_POST['d2'] * 3600; - $alliance = (isset($post['ally']) && $post['ally'] == 1)? $session->userinfo['alliance'] : 0; - $database->addMarket($village->wid,$post['rid1'],$post['m1'],$post['rid2'],$post['m2'],$time,$alliance,$reqMerc,0); - } - // Enough merchants - header("Location: build.php?id=".$post['id']."&t=2"); - exit; - } - else - { - // Not enough merchants - header("Location: build.php?id=".$post['id']."&t=2&e3"); - exit; - } - } - else - { - // not enough resources - header("Location: build.php?id=".$post['id']."&t=2&e1"); - exit; - } - } - } - - private function acceptOffer($get) - { - global $database,$village,$session,$logging,$generator; - - $infoarray = $database->getMarketInfo($get['g']); - $reqMerc = 1; - if($infoarray['wamt'] > $this->maxcarry) - { - $reqMerc = round($infoarray['wamt']/$this->maxcarry); - if($infoarray['wamt'] > $this->maxcarry*$reqMerc) - { - $reqMerc += 1; - } - } - - // We don't have enough resources - if($infoarray['wamt'] > ([$village->awood, $village->aclay, $village->airon, $village->acrop])[$infoarray['wtype']]) - { - header("Location: build.php?id=".$get['id']."&t=1&e1"); - exit; - } // We're accepting the offering from the same village/of another alliance/with a too high maxtime - elseif - (($infoarray['vref'] == $village->wid) || - ($infoarray['alliance'] > 0 && $infoarray['alliance'] != $session->alliance) || - ($infoarray['maxtime'] > 0 && ($infoarray['maxtime'] * 3600) < $generator->procDistanceTime($database->getCoor($infoarray['vref']), $village->coor, $session->tribe, 0))) - { - header("Location: build.php?id=".$get['id']."&t=1&e2"); - exit; - } // We don't have enough merchants - elseif($reqMerc > $this->merchantAvail()){ - header("Location: build.php?id=".$get['id']."&t=1&e3"); - exit; - } - - $myresource = $hisresource = [ 1=> 0, 0, 0, 0]; - $myresource[$infoarray['wtype']] = $infoarray['wamt']; - $mysendid = $database->sendResource($myresource[1],$myresource[2],$myresource[3],$myresource[4],$reqMerc,0); - $hisresource[$infoarray['gtype']] = $infoarray['gamt']; - $hissendid = $database->sendResource($hisresource[1],$hisresource[2],$hisresource[3],$hisresource[4],$infoarray['merchant'],0); - $hiscoor = $database->getCoor($infoarray['vref']); - $mytime = $generator->procDistanceTime($hiscoor,$village->coor,$session->tribe,0); - $targettribe = $database->getUserField($database->getVillageField($infoarray['vref'],"owner"),"tribe",0); - $histime = $generator->procDistanceTime($village->coor,$hiscoor,$targettribe,0); - $timestamp = time(); - $database->addMovement( - [0, 0], - [$village->wid, $infoarray['vref']], - [$infoarray['vref'], $village->wid], - [$mysendid, $hissendid], - [$timestamp, $timestamp], - [$mytime + $timestamp, $histime + $timestamp] - ); - $resource = [1 => 0, 0, 0, 0]; - $resource[$infoarray['wtype']] = $infoarray['wamt']; - $database->modifyResource($village->wid, $resource[1], $resource[2], $resource[3], $resource[4], 0); - $database->setMarketAcc($get['g']); - $database->removeAcceptedOffer($get['g']); - $logging->addMarketLog($village->wid, 2, [$infoarray['vref'], $get['g']]); - header("Location: build.php?id=" . $get['id']); - exit; - } - - private function loadOnsale() - { - global $database,$village,$session,$multisort,$generator; - - $displayarray = $database->getMarket($village->wid,1); - $holderarray = []; - foreach($displayarray as $value) - { - $targetcoor = $database->getCoor($value['vref']); - $duration = $generator->procDistanceTime($targetcoor, $village->coor, $session->tribe, 0); - if($duration <= ($value['maxtime'] * 3600) || $value['maxtime'] == 0) - { - $value['duration'] = $duration; - array_push($holderarray,$value); - } - } - $this->onsale = $multisort->sorte($holderarray, "duration", true, 2); - } - - private function filterNeed($get) - { - if(isset($get['v']) || isset($get['s']) || isset($get['b'])){ - $holder = $holder2 = []; - if(isset($get['v']) && $get['v'] == "1:1"){ - foreach($this->onsale as $equal){ - if($equal['wamt'] <= $equal['gamt']){ - array_push($holder, $equal); - } - } - } - else $holder = $this->onsale; - - foreach($holder as $sale){ - if(isset($get['s']) && isset($get['b'])){ - if($sale['gtype'] == $get['s'] && $sale['wtype'] == $get['b']){ - array_push($holder2, $sale); - } - }else if(isset($get['s']) && !isset($get['b'])){ - if($sale['gtype'] == $get['s']){ - array_push($holder2, $sale); - } - }else if(isset($get['b']) && !isset($get['s'])){ - if($sale['wtype'] == $get['b']){ - array_push($holder2, $sale); - } - } - else $holder2 = $holder; - } - $this->onsale = $holder2; - } - else $this->loadOnsale(); - } - - private function tradeResource($post) - { - global $session,$database,$village; - - $wwvillage = $database->getResourceLevel($village->wid); - if($wwvillage['f99t'] != 40){ - if($session->userinfo['gold'] >= 3){ - //Check if there are too many resources - if(($post['m2'][0]+$post['m2'][1]+$post['m2'][2]+$post['m2'][3])<=(round($village->awood)+round($village->aclay)+round($village->airon)+round($village->acrop))){ - $database->setVillageField( - $village->wid, - ["wood", "clay", "iron", "crop"], - [$post['m2'][0], $post['m2'][1], $post['m2'][2], $post['m2'][3]] - ); - $database->modifyGold($session->uid, 3, 0); - header("Location: build.php?id=".$post['id']."&t=3&c");; - exit; - }else{ - header("Location: build.php?id=".$post['id']."&t=3"); - exit; - } - }else{ - header("Location: build.php?id=".$post['id']."&t=3"); - exit; - } - } - } -}; - -$market = new Market; -?> diff --git a/GameEngine/Message.php b/GameEngine/Message.php deleted file mode 100755 index 5e4c45dd..00000000 --- a/GameEngine/Message.php +++ /dev/null @@ -1,686 +0,0 @@ -unread = $this->checkUnread(); - $this->nunread = $this->checkNUnread(); - - if($req_file == 'nachrichten.php'){ - if(isset($_GET['t'])){ - switch($_GET['t']){ - // send messages page or a single sent message - case 2 : - case '2a' : - $this->getMessages(2); - break; - - // archived messages page - case 3 : - $this->getMessages(3); - break; - } - } - else $this->getMessages(1); // inbox - received messages page - } - - if ($req_file == 'berichte.php') $this->getNotice(); - - if(isset($_SESSION['reply'])) { - $this->reply = $_SESSION['reply']; - unset($_SESSION['reply']); - } - } - - public function procMessage($post) { - - if(isset($post['ft'])) { - switch($post['ft']) { - case "m1": - $this->quoteMessage($post['id']); - break; - case "m2": - if ($post['an'] == "[ally]") $this->sendAMessage($post['be'],addslashes($post['message'])); - else $this->sendMessage($post['an'],$post['be'],addslashes($post['message'])); - header("Location: nachrichten.php?t=2"); - exit; - case "m3": - case "m4": - case "m5": - if(isset($post['delmsg']))$this->removeMessage($post); - if(isset($post['archive'])) $this->archiveMessage($post); - if(isset($post['start'])) $this->unarchiveMessage($post); - break; - case "m6": - $this->createNote($post); - break; - case "m7": - $this->addFriends($post); - break; - } - } - } - - public function noticeType($get) { - global $session, $database; - if(isset($get['t'])) { - if($get['t'] == 1) $type = [8, 15, 16, 17]; - if($get['t'] == 2) $type = [10, 11, 12, 13]; - if($get['t'] == 3) $type = [1, 2, 3, 4, 5, 6, 7]; - if($get['t'] == 4) $type = [0, 18, 19, 20, 21]; - if($get['t'] == 5) { - if(!$session->plus){ - header("Location: berichte.php"); - exit; - } - else $type = 9; - } - if (!is_array($type)) $type = [$type]; - $this->noticearray = $this->filter_by_value($database->getNotice($session->uid), "ntype", $type); - } - - if(isset($get['id'])) $this->readingNotice = $this->getReadNotice($get['id']); - } - - public function procNotice($post) { - if(isset($post["del_x"])) $this->removeNotice($post); - if(isset($post['archive_x'])) $this->archiveNotice($post); - if(isset($post['start_x'])) $this->unarchiveNotice($post); - } - - public function quoteMessage($id) { - foreach($this->inbox as $message) { - if($message['id'] == $id) { - $message = preg_replace('/\[message\]/', '', $message); - $message = preg_replace('/\[\/message\]/', '', $message); - - for($i = 1; $i <= $message['alliance']; $i++){ - $message = preg_replace('/\[alliance'.$i.'\]/', '[alliance0]', $message); - $message = preg_replace('/\[\/alliance'.$i.'\]/', '[/alliance0]', $message); - } - - for($i = 0; $i <= $message['player']; $i++){ - $message = preg_replace('/\[player'.$i.'\]/', '[player0]', $message); - $message = preg_replace('/\[\/player'.$i.'\]/', '[/player0]', $message); - } - - for($i = 0; $i <= $message['coor']; $i++){ - $message = preg_replace('/\[coor'.$i.'\]/', '[coor0]', $message); - $message = preg_replace('/\[\/coor'.$i.'\]/', '[/coor0]', $message); - } - - for($i = 0; $i <= $message['report']; $i++){ - $message = preg_replace('/\[report'.$i.'\]/', '[report0]', $message); - $message = preg_replace('/\[\/report'.$i.'\]/', '[/report0]', $message); - } - - $this->reply = $_SESSION['reply'] = $message; - header("Location: nachrichten.php?t=1&id=" . $message['owner'] . "&mid=" . $message['id'] . "&tid=" . $message['target']); - exit; - } - } - } - - public function loadMessage($id) { - global $database, $session; - - if($this->findInbox($id)) { - foreach($this->inbox as $message) { - if($message['id'] == $id) { - $this->reading = $message; - break; - } - } - } - - if($this->findSent($id)) { - foreach($this->sent as $message) { - if($message['id'] == $id) { - $this->reading = $message; - break; - } - } - } - - if($session->plus && $this->findArchive($id)) { - foreach($this->archived as $message) { - if($message['id'] == $id) { - $this->reading = $message; - break; - } - } - } - - if($this->reading['viewed'] == 0) $database->getMessage($id, 4); - } - - private function filter_by_value_except($array, $index, $value) { - $newarray = []; - if(is_array($array) && count($array) > 0) { - foreach(array_keys($array) as $key) { - $temp[$key] = $array[$key][$index]; - - if($temp[$key] != $value) { - array_push($newarray, $array[$key]); - //$newarray[$key] = $array[$key]; - } - } - } - return $newarray; - } - - private function filter_by_value($array, $index, $value) { - $newarray = []; - if(is_array($array) && count($array) > 0) { - foreach(array_keys($array) as $key) { - $temp[$key] = $array[$key][$index]; - - if(in_array($temp[$key], $value)) { - array_push($newarray, $array[$key]); - //$newarray[$key] = $array[$key]; - } - } - } - return $newarray; - } - - private function getNotice() { - global $database, $session; - - $this->noticearray = $this->filter_by_value_except($database->getNotice($session->uid), "ntype", 9); - } - - private function removeMessage($post) { - global $database, $session; - - $post = $database->escape($post); - $mode5updates = $mode7updates = $mode8updates = []; - - for($i = 1; $i <= 10; $i++){ - if(isset($post['n' . $i])){ - $message1 = mysqli_query($database->dblink, "SELECT target, owner FROM " . TB_PREFIX . "mdata where id = " . (int)$post['n' . $i] . ""); - $message = mysqli_fetch_array($message1); - - if($message['target'] == $session->uid && $message['owner'] == $session->uid) $mode8updates[] = $post['n' . $i]; - else if($message['target'] == $session->uid) $mode5updates[] = $post['n' . $i]; - else if($message['owner'] == $session->uid) $mode7updates[] = $post['n' . $i]; - } - } - - if(count($mode5updates)) $database->getMessage($mode5updates, 5); - if(count($mode7updates)) $database->getMessage($mode7updates, 7); - if(count($mode8updates)) $database->getMessage($mode8updates, 8); - - header("Location: nachrichten.php"); - exit; - } - - private function archiveMessage($post) { - global $database; - - $archIDs = []; - for($i = 1; $i <= 10; $i++) { - if(isset($post['n'.$i])) $archIDs[] = $post['n'.$i]; - } - $database->setArchived($archIDs); - - header("Location: nachrichten.php"); - exit; - } - - private function unarchiveMessage($post) { - global $database; - - $normIDs = []; - for($i = 1; $i <= 10; $i++) { - if(isset($post['n'.$i])) $normIDs[] = $post['n'.$i]; - } - $database->setNorm($normIDs); - - header("Location: nachrichten.php"); - exit; - } - - private function removeNotice($post) { - global $database; - - $removeIDs = []; - for($i = 1; $i <= 10; $i++) { - if(isset($post['n' . $i])) { - $removeIDs[] = $post['n' . $i]; - } - } - - $database->removeNotice($removeIDs); - - header("Location: berichte.php"); - exit; - } - - private function archiveNotice($post) { - global $database; - - $archiveIDs = []; - for($i = 1; $i <= 10; $i++) { - if(isset($post['n' . $i])) { - $archiveIDs[] = $post['n' . $i]; - } - } - - $database->archiveNotice($archiveIDs); - - header("Location: berichte.php"); - exit; - } - - private function unarchiveNotice($post) { - global $database; - - $unarchIDs = []; - for($i = 1; $i <= 10; $i++) { - if(isset($post['n' . $i])) { - $unarchIDs[] = $post['n' . $i]; - } - } - - $database->unarchiveNotice($unarchIDs); - - header("Location: berichte.php"); - exit; - } - - private function getReadNotice($id) { - global $database, $session; - - $notice = $database->getNotice2($id); - if($notice['uid'] == $session->uid || $notice['ally'] == $session->alliance){ - if($notice['uid'] == $session->uid) $database->noticeViewed($notice['id']); - return $notice; - } - else return null; - } - - /** - * Not all notices have a corresponding .tpl file but with this method it's like they have it - * - * @param int $type The type of the report (notice) - * @return int Returns the new report type - */ - - public function getReportType($type) - { - switch($type) - { - case 2: - case 4: - case 5: - case 6: - case 7: - case 18: - case 20: - case 21: return 1; //General attacking reports - - case 11: - case 12: - case 13: - case 14: return 10; //Merchants reports - - case 16: - case 17: return 15; //Reinforcements attacked - - case 19: return 3; //No troops have returned - - case 23: return 22; //Festive reports - } - - return $type; - } - - public function loadNotes() { - global $session; - if(file_exists("GameEngine/Notes/".md5($session->username).".txt")) { - $this->note = file_get_contents("GameEngine/Notes/".md5($session->username).".txt"); - } - else $this->note = ""; - } - - private function createNote($post) { - global $session; - if($session->plus) { - $ourFileHandle = fopen("GameEngine/Notes/".md5($session->username).".txt", 'w'); - fwrite($ourFileHandle, $post['notizen']); - fclose($ourFileHandle); - } - } - - private function getMessages($which) { - global $database, $session; - - switch($which){ - case 1 : - $this->inbox = $database->getMessage($session->uid, 1); - $this->inbox1 = $database->getMessage($session->uid, 9); - break; - - case 2 : - $this->sent = $database->getMessage($session->uid, 2); - $this->sent1 = $database->getMessage($session->uid, 10); - break; - - case 3 : - if($session->plus){ - $this->archived = $database->getMessage($session->uid, 6); - $this->archived1 = $database->getMessage($session->uid, 11); - } - break; - } - } - - private function sendAMessage($topic,$text) { - global $session,$database; - - // Vulnerability closed by Shadow - - $q = "SELECT Count(*) as Total FROM ".TB_PREFIX."mdata WHERE owner='".$session->uid."' AND time > ".(time() - 60); - $res = mysqli_fetch_array(mysqli_query($database->dblink,$q), MYSQLI_ASSOC); - if($res['Total'] > 5) return; //flooding prevention - - - // Vulnerability closed by Shadow - - $allmembersQ = mysqli_query($database->dblink,"SELECT id FROM ".TB_PREFIX."users WHERE alliance='".$session->alliance."'"); - $userally = $database->getUserField($session->uid,"alliance",0); - $permission=mysqli_fetch_array(mysqli_query($database->dblink,"SELECT opt7 FROM ".TB_PREFIX."ali_permission WHERE uid='".$session->uid."'")); - - if(WORD_CENSOR) { - $topic = $this->wordCensor($topic); - $text = $this->wordCensor($text); - } - - if($topic == "") $topic = "No subject"; - - if(!preg_match('/\[message\]/',$text) && !preg_match('/\[\/message\]/',$text)){ - $text = "[message]".$text."[/message]"; - $alliance = $player = $coor = $report = 0; - - for ( $i = 0; $i <= $alliance; $i ++ ) { - if ( preg_match( '/\[alliance' . $i . '\]/', $text ) && preg_match( '/\[\/alliance' . $i . '\]/', $text ) ) { - $alliance1 = preg_replace( '/\[message\](.*?)\[\/alliance' . $i . '\]/is', '', $text ); - if ( preg_match( '/\[alliance' . $i . '\]/', $alliance1 ) && preg_match( '/\[\/alliance' . $i . '\]/', $alliance1 ) ) { - $j = $i + 1; - $alliance2 = preg_replace( '/\[\/alliance' . $i . '\](.*?)\[\/message\]/is', '', $text ); - $alliance1 = preg_replace( '/\[alliance' . $i . '\]/', '[alliance' . $j . ']', $alliance1 ); - $alliance1 = preg_replace( '/\[\/alliance' . $i . '\]/', '[/alliance' . $j . ']', $alliance1 ); - $text = $alliance2 . "[/alliance" . $i . "]" . $alliance1; - $alliance += 1; - } - } - } - - for ( $i = 0; $i <= $player; $i ++ ) { - if ( preg_match( '/\[player' . $i . '\]/', $text ) && preg_match( '/\[\/player' . $i . '\]/', $text ) ) { - $player1 = preg_replace( '/\[message\](.*?)\[\/player' . $i . '\]/is', '', $text ); - if ( preg_match( '/\[player' . $i . '\]/', $player1 ) && preg_match( '/\[\/player' . $i . '\]/', $player1 ) ) { - $j = $i + 1; - $player2 = preg_replace( '/\[\/player' . $i . '\](.*?)\[\/message\]/is', '', $text ); - $player1 = preg_replace( '/\[player' . $i . '\]/', '[player' . $j . ']', $player1 ); - $player1 = preg_replace( '/\[\/player' . $i . '\]/', '[/player' . $j . ']', $player1 ); - $text = $player2 . "[/player" . $i . "]" . $player1; - $player += 1; - } - } - } - - for ( $i = 0; $i <= $coor; $i ++ ) { - if ( preg_match( '/\[coor' . $i . '\]/', $text ) && preg_match( '/\[\/coor' . $i . '\]/', $text ) ) { - $coor1 = preg_replace( '/\[message\](.*?)\[\/coor' . $i . '\]/is', '', $text ); - if ( preg_match( '/\[coor' . $i . '\]/', $coor1 ) && preg_match( '/\[\/coor' . $i . '\]/', $coor1 ) ) { - $j = $i + 1; - $coor2 = preg_replace( '/\[\/coor' . $i . '\](.*?)\[\/message\]/is', '', $text ); - $coor1 = preg_replace( '/\[coor' . $i . '\]/', '[coor' . $j . ']', $coor1 ); - $coor1 = preg_replace( '/\[\/coor' . $i . '\]/', '[/coor' . $j . ']', $coor1 ); - $text = $coor2 . "[/coor" . $i . "]" . $coor1; - $coor += 1; - } - } - } - - for ( $i = 0; $i <= $report; $i ++ ) { - if ( preg_match( '/\[report' . $i . '\]/', $text ) && preg_match( '/\[\/report' . $i . '\]/', $text ) ) { - $report1 = preg_replace( '/\[message\](.*?)\[\/report' . $i . '\]/is', '', $text ); - if ( preg_match( '/\[report' . $i . '\]/', $report1 ) && preg_match( '/\[\/report' . $i . '\]/', $report1 ) ) { - $j = $i + 1; - $report2 = preg_replace( '/\[\/report' . $i . '\](.*?)\[\/message\]/is', '', $text ); - $report1 = preg_replace( '/\[report' . $i . '\]/', '[report' . $j . ']', $report1 ); - $report1 = preg_replace( '/\[\/report' . $i . '\]/', '[/report' . $j . ']', $report1 ); - $text = $report2 . "[/report" . $i . "]" . $report1; - $report += 1; - } - } - } - - if($permission['opt7'] == 1){ - if ($userally > 0) { - while ($allmembers = mysqli_fetch_array($allmembersQ)) { - $database->sendMessage($allmembers[id],$session->uid,htmlspecialchars(addslashes($topic)),htmlspecialchars(addslashes($text)),0,$alliance,$player,$coor,$report); - } - } - } - } - } - - private function sendMessage($recieve, $topic, $text, $security_check = true) { - global $session, $database; - $user = $database->getUserField($recieve, "id", 1); - - // Vulnerability closed by Shadow - if ($security_check) { - $q = "SELECT Count(*) as Total FROM ".TB_PREFIX."mdata WHERE owner='".$session->uid."' AND time > ".(time() - 60); - $res = mysqli_fetch_array(mysqli_query($database->dblink,$q), MYSQLI_ASSOC); - if($res['Total'] > 5) return; //flooding prevention - } - - // Vulnerability closed by Shadow - if(WORD_CENSOR) { - $topic = $this->wordCensor($topic); - $text = $this->wordCensor($text); - } - - if(empty($topic)) $topic = "No subject"; - - if ( ! preg_match( '/\[message\]/', $text ) && ! preg_match( '/\[\/message\]/', $text ) ) { - $text = "[message]" . $text . "[/message]"; - $alliance = $player = $coor = $report = 0; - - for ( $i = 0; $i <= $alliance; $i ++ ) { - if ( preg_match( '/\[alliance' . $i . '\]/', $text ) && preg_match( '/\[\/alliance' . $i . '\]/', $text ) ) { - $alliance1 = preg_replace( '/\[message\](.*?)\[\/alliance' . $i . '\]/is', '', $text ); - if ( preg_match( '/\[alliance' . $i . '\]/', $alliance1 ) && preg_match( '/\[\/alliance' . $i . '\]/', $alliance1 ) ) { - $j = $i + 1; - $alliance2 = preg_replace( '/\[\/alliance' . $i . '\](.*?)\[\/message\]/is', '', $text ); - $alliance1 = preg_replace( '/\[alliance' . $i . '\]/', '[alliance' . $j . ']', $alliance1 ); - $alliance1 = preg_replace( '/\[\/alliance' . $i . '\]/', '[/alliance' . $j . ']', $alliance1 ); - $text = $alliance2 . "[/alliance" . $i . "]" . $alliance1; - $alliance += 1; - } - } - } - - for ( $i = 0; $i <= $player; $i ++ ) { - if ( preg_match( '/\[player' . $i . '\]/', $text ) && preg_match( '/\[\/player' . $i . '\]/', $text ) ) { - $player1 = preg_replace( '/\[message\](.*?)\[\/player' . $i . '\]/is', '', $text ); - if ( preg_match( '/\[player' . $i . '\]/', $player1 ) && preg_match( '/\[\/player' . $i . '\]/', $player1 ) ) { - $j = $i + 1; - $player2 = preg_replace( '/\[\/player' . $i . '\](.*?)\[\/message\]/is', '', $text ); - $player1 = preg_replace( '/\[player' . $i . '\]/', '[player' . $j . ']', $player1 ); - $player1 = preg_replace( '/\[\/player' . $i . '\]/', '[/player' . $j . ']', $player1 ); - $text = $player2 . "[/player" . $i . "]" . $player1; - $player += 1; - } - } - } - - for ( $i = 0; $i <= $coor; $i ++ ) { - if ( preg_match( '/\[coor' . $i . '\]/', $text ) && preg_match( '/\[\/coor' . $i . '\]/', $text ) ) { - $coor1 = preg_replace( '/\[message\](.*?)\[\/coor' . $i . '\]/is', '', $text ); - if ( preg_match( '/\[coor' . $i . '\]/', $coor1 ) && preg_match( '/\[\/coor' . $i . '\]/', $coor1 ) ) { - $j = $i + 1; - $coor2 = preg_replace( '/\[\/coor' . $i . '\](.*?)\[\/message\]/is', '', $text ); - $coor1 = preg_replace( '/\[coor' . $i . '\]/', '[coor' . $j . ']', $coor1 ); - $coor1 = preg_replace( '/\[\/coor' . $i . '\]/', '[/coor' . $j . ']', $coor1 ); - $text = $coor2 . "[/coor" . $i . "]" . $coor1; - $coor += 1; - } - } - } - - for ( $i = 0; $i <= $report; $i ++ ) { - if ( preg_match( '/\[report' . $i . '\]/', $text ) && preg_match( '/\[\/report' . $i . '\]/', $text ) ) { - $report1 = preg_replace( '/\[message\](.*?)\[\/report' . $i . '\]/is', '', $text ); - if ( preg_match( '/\[report' . $i . '\]/', $report1 ) && preg_match( '/\[\/report' . $i . '\]/', $report1 ) ) { - $j = $i + 1; - $report2 = preg_replace( '/\[\/report' . $i . '\](.*?)\[\/message\]/is', '', $text ); - $report1 = preg_replace( '/\[report' . $i . '\]/', '[report' . $j . ']', $report1 ); - $report1 = preg_replace( '/\[\/report' . $i . '\]/', '[/report' . $j . ']', $report1 ); - $text = $report2 . "[/report" . $i . "]" . $report1; - $report += 1; - } - } - } - - // check if we're not sending this as Support or Multihunter - $support_from_admin_allowed = ($session->access == ADMIN && ADMIN_RECEIVE_SUPPORT_MESSAGES); - $send_as = $session->uid; - - // send as Support? - if((!empty($_POST['as_support']) && $support_from_admin_allowed)) $send_as = 1; - - // send as Multihunter - if((!empty($_POST['as_multihunter']) && $session->access == MULTIHUNTER)) $send_as = 5; - - $database->sendMessage($user, $send_as, htmlspecialchars(addslashes($topic)), htmlspecialchars(addslashes($text)), 0, $alliance, $player, $coor, $report); - } - } - - public function sendWelcome($uid, $username) { - global $database; - - $welcomemsg = file_get_contents("GameEngine/Admin/welcome.tpl"); - $welcomemsg = "[message]".preg_replace( - ["'%USER%'", "'%START%'", "'%TIME%'", "'%PLAYERS%'", "'%ALLI%'", "'%SERVER_NAME%'", "'%PROTECTION%'"], - [$username, date("y.m.d", COMMENCE), date("H:i", COMMENCE), $database->countUser(), $database->countAlli(), SERVER_NAME, round((PROTECTION/3600))], - $welcomemsg - )."[/message]"; - - return $database->sendMessage($uid, 1, WEL_TOPIC, addslashes($welcomemsg), 0, 0, 0, 0, 0); - } - - private function wordCensor($text) { - $censorarray = explode(",", CENSORED); - foreach($censorarray as $key => $value) { - $censorarray[$key] = "/" . $value . "/i"; - } - return preg_replace($censorarray, "****", $text); - } - - private function checkUnread() { - global $database, $session; - - return $database->getUnreadMessagesCount($session->uid); - } - - private function checkNUnread() { - global $database, $session; - - return $database->getUnreadNoticesCount($session->uid); - } - - private function findInbox($id) { - if(!empty($this->inbox)){ - foreach($this->inbox as $message){ - if($message['id'] == $id) return true; - } - } - return false; - } - - private function findSent($id){ - if(!empty($this->sent)){ - foreach($this->sent as $message){ - if($message['id'] == $id) return true; - } - } - return false; - } - - private function findArchive($id){ - if(!empty($this->archived)){ - foreach($this->archived as $message){ - if($message['id'] == $id) return true; - } - } - - return false; - } - - public function addFriends($post){ - global $database; - for($i = 0; $i <= 19; $i++){ - if($post['addfriends'.$i] != ""){ - $uid = $database->getUserField($post['addfriends'.$i], "id", 1); - $added = 0; - - for($j = 0; $j <= $i; $j++){ - if($added == 0){ - $user = $database->getUserField($post['myid'], "friend".$j, 0); - $userwait = $database->getUserField($post['myid'], "friend".$j."wait", 0); - $exist = 0; - - for($k = 0; $k <= 19; $k++){ - $user1 = $database->getUserField($post['myid'], "friend".$k, 0); - if($user1 == $uid or $uid == $post['myid']){ - $exist = 1; - } - } - - if($user == 0 && $userwait == 0 && $exist == 0){ - $added1 = 0; - - for($l = 0; $l <= 19; $l++){ - $user2 = $database->getUserField($uid, "friend".$l, 0); - $userwait2 = $database->getUserField($uid, "friend".$l."wait", 0); - - if($user2 == 0 && $userwait2 == 0 && $added1 == 0){ - $database->addFriend($uid, "friend".$l."wait", $post['myid']); - $added1 = 1; - } - } - - $database->addFriend($post['myid'], "friend".$j, $uid); - $database->addFriend($post['myid'], "friend".$j."wait", $uid); - $added = 1; - } - } - } - } - } - header("Location: nachrichten.php?t=1"); - exit(); - } - -}; diff --git a/GameEngine/Profile.php b/GameEngine/Profile.php deleted file mode 100755 index c1d59266..00000000 --- a/GameEngine/Profile.php +++ /dev/null @@ -1,191 +0,0 @@ -updateProfile($post); - break; - case "p3" : - $this->updateAccount($post); - break; - case "p4" : - $this->setvactionmode($post); - break; - } - } - - if(isset($post['s']) && $post['s'] == 4) $this->gpack($post); - } - - public function procSpecial($get) { - global $session; - - if(isset($get['e'])) { - switch($get['e']) { - case 2 : - $this->removeMeSit($get); - break; - case 3 : - $this->removeSitter($get); - break; - case 4 : - $this->cancelDeleting($get); - break; - } - } - } - - private function updateProfile($post) { - global $database, $session; - - $birthday = $post['jahr'].'-'.$post['monat'].'-'.$post['tag']; - $database->submitProfile($session->uid, $database->RemoveXSS($post['mw']), $database->RemoveXSS($post['ort']), $database->RemoveXSS($birthday), $database->RemoveXSS($post['be2']), $database->RemoveXSS($post['be1'])); - $varray = $database->getProfileVillages($session->uid); - - for($i = 0; $i < count($varray); $i++){ - $database->setVillageName($varray[$i]['wref'], $database->RemoveXSS(trim($post['dname'.$i]))); - } - - header("Location: spieler.php?uid=".$session->uid); - exit; - } - - private function gpack($post) { - global $database, $session; - - $database->gpack($database->RemoveXSS($session->uid),$database->RemoveXSS($post['custom_url'])); - header("Location: spieler.php?uid=".$session->uid); - exit; - } - - /** - * Function to vacation mode - by advocaite and Shadow - * - * @param array $post The $_POST array - */ - - private function setvactionmode($post){ - global $database, $session, $form; - - if(isset($post['vac']) && $post['vac'] && isset($post['vac_days']) && $post['vac_days'] >= 2 && $post['vac_days'] <= 14){ - unset($_SESSION['wid']); - $database->setvacmode($session->uid, $post['vac_days']); - $database->activeModify(addslashes($session->username), 1); - $database->UpdateOnline("logout"); - $session->Logout(); - header("Location: login.php"); - exit; - }else{ - $form->add("vac", VAC_MODE_WRONG_DAYS); - header("Location: spieler.php?s=".$session->uid); - exit; - } - - } - - /** - * Function to vacation mode - by advocaite and Shadow - * - * @param array $post The $_POST array - */ - - private function updateAccount($post) { - global $database, $session, $form; - - if(!empty($post['pw1']) && !empty($post['pw2']) && !empty($post['pw3'])){ - if($post['pw2'] == $post['pw3']){ - if($database->login($session->username, $post['pw1'])){ - $database->updateUserField($session->uid, "password", password_hash($post['pw2'], PASSWORD_BCRYPT, ['cost' => 12]), 1); - } - else $form->addError("pw", LOGIN_PW_ERROR); - } - else $form->addError("pw", PASS_MISMATCH); - } - - if(!empty($post['email_alt']) && !empty($post['email_neu'])){ - if($post['email_alt'] == $session->userinfo['email']){ - $database->updateUserField($session->uid, "email", $post['email_neu'], 1); - } - else $form->addError("email", EMAIL_ERROR); - } - - if(!empty($post['del_pw']) && $post['del']){ - if(password_verify($post['del_pw'], $session->userinfo['password'])){ - $database->setDeleting($session->uid, 0); - } - else $form->addError("del", PASS_MISMATCH); - } - - if(!empty($post['v1'])){ - $sitid = $database->getUserField($post['v1'], "id", 1); - if($sitid == $session->userinfo['sit1'] || $sitid == $session->userinfo['sit2']){ - $form->addError("sit", SIT_ERROR); - }else if($sitid != $session->uid){ - if($session->userinfo['sit1'] == 0){ - $database->updateUserField($session->uid, "sit1", $sitid, 1); - }else if($session->userinfo['sit2'] == 0){ - $database->updateUserField($session->uid, "sit2", $sitid, 1); - } - } - } - - if($form->returnErrors() > 0){ - $_SESSION['errorarray'] = $form->getErrors(); - $_SESSION['valuearray'] = $_POST; - } - - header("Location: spieler.php?s=3"); - exit; - } - - private function removeSitter($get) { - global $database,$session; - - if($get['a'] == $session->checker) { - if($session->userinfo['sit'.$get['type']] == $get['id']) { - $database->updateUserField($session->uid,"sit".$get['type'],0,1); - } - $session->changeChecker(); - } - - header("Location: spieler.php?s=".$get['s']); - exit; - } - - private function cancelDeleting($get) { - global $database, $session; - - $database->setDeleting($session->uid,1); - header("Location: spieler.php?s=".$get['s']); - exit; - } - - private function removeMeSit($get) { - global $database, $session; - - if($get['a'] == $session->checker) { - $database->removeMeSit($get['id'],$session->uid); - $session->changeChecker(); - } - - header("Location: spieler.php?s=".$get['s']); - exit; - } -}; - -$profile = new Profile; -?> diff --git a/GameEngine/Protection.php b/GameEngine/Protection.php deleted file mode 100755 index 3e89a199..00000000 --- a/GameEngine/Protection.php +++ /dev/null @@ -1,26 +0,0 @@ - \ No newline at end of file diff --git a/GameEngine/Ranking.php b/GameEngine/Ranking.php deleted file mode 100755 index c5727e86..00000000 --- a/GameEngine/Ranking.php +++ /dev/null @@ -1,592 +0,0 @@ -rankarray; - } - - public function getUserRank($id) { - global $database; - - $ranking = $this->getRank(); - $users = "SELECT Count(*) as Total FROM " . TB_PREFIX . "users WHERE access < " . (INCLUDE_ADMIN ? "10" : "8"); - $users2 = mysqli_fetch_array(mysqli_query($database->dblink,$users), MYSQLI_ASSOC); - $users2 = $users2['Total']; - $users3 = $users2 + 1; - $myrank = 0; - if(count($ranking) > 0) { - for($i = 0;$i < $users3; $i++) { - if( isset( $ranking[$i]['userid'] ) ) { - if($ranking[$i]['userid'] == $id && $ranking[$i] != "pad") { - $myrank = $i; - } - } - } - } - return $myrank; - } - - public function procRankReq($get) { - global $village, $session; - if(isset($get['id'])) { - switch($get['id']) { - case 1: - $this->procRankArray(); - break; - case 8: - $this->procHeroRankArray(); - if($get['hero'] == 0) { - $this->getStart(1); - } else { - $this->getStart($this->searchRank($session->uid, "uid")); - } - break; - case 11: - $this->procRankRaceArray(1); - if($this->searchRank($session->uid, "userid") != 0){ - $this->getStart($this->searchRank($session->uid, "userid")); - }else{ - $this->getStart(1); - } - break; - case 12: - $this->procRankRaceArray(2); - if($this->searchRank($session->uid, "userid") != 0){ - $this->getStart($this->searchRank($session->uid, "userid")); - }else{ - $this->getStart(1); - } - break; - case 13: - $this->procRankRaceArray(3); - if($this->searchRank($session->uid, "userid") != 0){ - $this->getStart($this->searchRank($session->uid, "userid")); - }else{ - $this->getStart(1); - } - break; - case 31: - $this->procAttRankArray(); - $this->getStart($this->searchRank($session->uid, "userid")); - break; - case 32: - $this->procDefRankArray(); - $this->getStart($this->searchRank($session->uid, "userid")); - break; - case 2: - $this->procVRankArray(); - $this->getStart($this->searchRank($village->wid, "wref")); - break; - case 4: - $this->procARankArray(); - if($get['aid'] == 0) { - $this->getStart(1); - } else { - $this->getStart($this->searchRank($get['aid'], "id")); - } - break; - case 41: - $this->procAAttRankArray(); - if($get['aid'] == 0) { - $this->getStart(1); - } else { - $this->getStart($this->searchRank($get['aid'], "id")); - } - break; - case 42: - $this->procADefRankArray(); - if($get['aid'] == 0) { - $this->getStart(1); - } else { - $this->getStart($this->searchRank($get['aid'], "id")); - } - break; - } - } else { - $this->procRankArray(); - $this->getStart($this->searchRank($session->uid, "userid")); - } - } - - public function procRank($post) { - if(isset($post['ft'])) { - switch($post['ft']) { - case "r1": - case "r11": - case "r12": - case "r13": - case "r31": - case "r32": - if(isset($post['rank']) && $post['rank'] != "") { - $this->getStart($post['rank']); - } - if(isset($post['name']) && $post['name'] != "") { - $this->getStart($this->searchRank(stripslashes($post['name']), "username")); - } - break; - case "r4": - case "r42": - case "r41": - if(isset($post['rank']) && $post['rank'] != "") { - $this->getStart($post['rank']); - } - if(isset($post['name']) && $post['name'] != "") { - $this->getStart($this->searchRank(stripslashes($post['name']), "tag")); - } - break; - case "r2": - case "r8": - if(isset($post['rank']) && $post['rank'] != "") { - $this->getStart($post['rank']); - } - if(isset($post['name']) && $post['name'] != "") { - $this->getStart($this->searchRank(stripslashes($post['name']), "name")); - } - break; - } - } - } - - private function getStart($search) { - $multiplier = 1; - if(!is_numeric($search)) { - $_SESSION['search'] = $search; - } else { - if($search > count($this->rankarray)) { - $search = count($this->rankarray) - 1; - } - while($search > (20 * $multiplier)) { - $multiplier += 1; - } - $start = 20 * $multiplier - 19 - 1; - $_SESSION['search'] = $search; - $_SESSION['start'] = $start; - } - } - - public function getAllianceRank($id) { - $this->procARankArray(); - while(1) { - if(count($this->rankarray) > 1) { - $key = key($this->rankarray); - if(isset ($this->rankarray[$key]["id"]) && $this->rankarray[$key]["id"] === $id) { - return $key; - break; - } else { - if(!next($this->rankarray)) { - return false; - break; - } - } - } else { - return 1; - } - } - } - - public function searchRank($name, $field) { - - while(1) { - //$key = key($this->rankarray); - for($key = 0; $key < count($this->rankarray); $key++){ - if($this->rankarray[$key]!="pad") { - if($this->rankarray[$key][$field] == $name) return $key; - } - } - if(!next($this->rankarray)) { - if($field != "userid") return $name; - else return 0; - } - - } - } - - public function procRankArray() { - global $multisort, $database; - - if($GLOBALS['db']->countUser() > 0){ - $holder = array(); - if(SHOW_NATARS == True){ - $q = "SELECT " . TB_PREFIX . "users.id userid, " . TB_PREFIX . "users.username username, " . TB_PREFIX . "users.oldrank oldrank, " . TB_PREFIX . "users.alliance alliance, ( - - SELECT SUM( " . TB_PREFIX . "vdata.pop ) - FROM " . TB_PREFIX . "vdata - WHERE " . TB_PREFIX . "vdata.owner = userid - )totalpop, ( - - SELECT COUNT( " . TB_PREFIX . "vdata.wref ) - FROM " . TB_PREFIX . "vdata - WHERE " . TB_PREFIX . "vdata.owner = userid AND type != 99 - )totalvillages, ( - - SELECT " . TB_PREFIX . "alidata.tag - FROM " . TB_PREFIX . "alidata, " . TB_PREFIX . "users - WHERE " . TB_PREFIX . "alidata.id = " . TB_PREFIX . "users.alliance - AND " . TB_PREFIX . "users.id = userid - )allitag - FROM " . TB_PREFIX . "users - WHERE " . TB_PREFIX . "users.access < " . (INCLUDE_ADMIN ? "10" : "8") . " - AND (" . TB_PREFIX . "users.tribe <= 5 OR " . TB_PREFIX . "users.tribe = 5) - AND (" . TB_PREFIX . "users.id > 5 OR " . TB_PREFIX . "users.id = 3) - ORDER BY totalpop DESC, totalvillages DESC, userid DESC"; - } else { - $q = "SELECT " . TB_PREFIX . "users.id userid, " . TB_PREFIX . "users.username username, " . TB_PREFIX . "users.oldrank oldrank, " . TB_PREFIX . "users.alliance alliance, ( - - SELECT SUM( " . TB_PREFIX . "vdata.pop ) - FROM " . TB_PREFIX . "vdata - WHERE " . TB_PREFIX . "vdata.owner = userid - )totalpop, ( - - SELECT COUNT( " . TB_PREFIX . "vdata.wref ) - FROM " . TB_PREFIX . "vdata - WHERE " . TB_PREFIX . "vdata.owner = userid AND type != 99 - )totalvillages, ( - - SELECT " . TB_PREFIX . "alidata.tag - FROM " . TB_PREFIX . "alidata, " . TB_PREFIX . "users - WHERE " . TB_PREFIX . "alidata.id = " . TB_PREFIX . "users.alliance - AND " . TB_PREFIX . "users.id = userid - )allitag - FROM " . TB_PREFIX . "users - WHERE " . TB_PREFIX . "users.access < " . (INCLUDE_ADMIN ? "10" : "8") . " - AND " . TB_PREFIX . "users.tribe <= 3 - AND " . TB_PREFIX . "users.id > 5 - ORDER BY totalpop DESC, totalvillages DESC, userid DESC"; - } - - $datas = []; - - $result = (mysqli_query($database->dblink,$q)); - while($row = mysqli_fetch_assoc($result)) $datas[] = $row; - - if (count($datas)) { - foreach($datas as $result) { - $value['userid'] = $result['userid']; - $value['username'] = $result['username']; - $value['oldrank'] = $result['oldrank']; - $value['alliance'] = $result['alliance']; - $value['aname'] = $result['allitag']; - $value['totalpop'] = $result['totalpop']; - $value['totalvillage'] = $result['totalvillages']; - array_push($holder, $value); - } - } - - $newholder = ["pad"]; - foreach($holder as $key) array_push($newholder, $key); - - $this->rankarray = $newholder; - - } - } - - public function procRankRaceArray($race) { - global $multisort, $database; - $race = $database->escape((int) $race); - //$array = $GLOBALS['db']->getRanking(); - $holder = array(); - //$value['totalvillage'] = count($GLOBALS['db']->getVillagesID($value['id'])); - //$value['totalvillage'] = count($GLOBALS['db']->getVillagesID($value['id'])); - //$value['totalpop'] = $GLOBALS['db']->getVSumField($value['id'],"pop"); - //$value['aname'] = $GLOBALS['db']->getAllianceName($value['alliance']); - $q = "SELECT " . TB_PREFIX . "users.id userid, " . TB_PREFIX . "users.tribe tribe, " . TB_PREFIX . "users.username username," . TB_PREFIX . "users.alliance alliance, ( - - SELECT SUM( " . TB_PREFIX . "vdata.pop ) - FROM " . TB_PREFIX . "vdata - WHERE " . TB_PREFIX . "vdata.owner = userid - )totalpop, ( - - SELECT COUNT( " . TB_PREFIX . "vdata.wref ) - FROM " . TB_PREFIX . "vdata - WHERE " . TB_PREFIX . "vdata.owner = userid AND type != 99 - )totalvillages, ( - - SELECT " . TB_PREFIX . "alidata.tag - FROM " . TB_PREFIX . "alidata, " . TB_PREFIX . "users - WHERE " . TB_PREFIX . "alidata.id = " . TB_PREFIX . "users.alliance - AND " . TB_PREFIX . "users.id = userid - )allitag - FROM " . TB_PREFIX . "users - WHERE " . TB_PREFIX . "users.tribe = $race AND " . TB_PREFIX . "users.access < " . (INCLUDE_ADMIN ? "10" : "8") . " - AND " . TB_PREFIX . "users.id > 5 - ORDER BY totalpop DESC, totalvillages DESC, userid DESC"; - - - $result = (mysqli_query($database->dblink,$q)); - while($row = mysqli_fetch_assoc($result)) { - $datas[] = $row; - } - - if(mysqli_num_rows($result)) { - - - foreach($datas as $result) { - $value['userid'] = $result['userid']; - $value['username'] = $result['username']; - $value['alliance'] = $result['alliance']; - $value['aname'] = $result['allitag']; - $value['totalpop'] = $result['totalpop']; - $value['totalvillage'] = $result['totalvillages']; - //SELECT (SELECT SUM(".TB_PREFIX."vdata.pop) FROM ".TB_PREFIX."vdata WHERE ".TB_PREFIX."vdata.owner = 2) totalpop, (SELECT COUNT(".TB_PREFIX."vdata.wref) FROM ".TB_PREFIX."vdata WHERE ".TB_PREFIX."vdata.owner = 2) totalvillages, (SELECT ".TB_PREFIX."alidata.tag FROM ".TB_PREFIX."alidata WHERE ".TB_PREFIX."alidata.id = ".TB_PREFIX."users.alliance AND ".TB_PREFIX."users.id = 2); - array_push($holder, $value); - } - } else { - $value['userid'] = 0; - $value['username'] = "No User"; - $value['alliance'] = ""; - $value['aname'] = ""; - $value['totalpop'] = ""; - $value['totalvillage'] = ""; - array_push($holder, $value); - } - //$holder = $multisort->sorte($holder, "'totalvillage'", false, 2, "'totalpop'", false, 2); - $newholder = array("pad"); - foreach($holder as $key) { - array_push($newholder, $key); - } - $this->rankarray = $newholder; - } - - public function procAttRankArray() { - global $multisort, $database; - //$array = $GLOBALS['db']->getRanking(); - $holder = array(); - - //$value['totalvillage'] = count($GLOBALS['db']->getVillagesID($value['id'])); - //$value['totalpop'] = $GLOBALS['db']->getVSumField($value['id'],"pop"); - $q = "SELECT " . TB_PREFIX . "users.id userid, " . TB_PREFIX . "users.username username, " . TB_PREFIX . "users.apall, ( - - SELECT COUNT( " . TB_PREFIX . "vdata.wref ) - FROM " . TB_PREFIX . "vdata - WHERE " . TB_PREFIX . "vdata.owner = userid AND type != 99 - )totalvillages, ( - - SELECT SUM( " . TB_PREFIX . "vdata.pop ) - FROM " . TB_PREFIX . "vdata - WHERE " . TB_PREFIX . "vdata.owner = userid - )pop - FROM " . TB_PREFIX . "users - WHERE " . TB_PREFIX . "users.apall >=0 AND " . TB_PREFIX . "users.access < " . (INCLUDE_ADMIN ? "10" : "8") . " AND " . TB_PREFIX . "users.tribe <= 3 - AND " . TB_PREFIX . "users.id > 5 - ORDER BY " . TB_PREFIX . "users.apall DESC, pop DESC, userid DESC"; - $result = mysqli_query($database->dblink,$q) or die(mysqli_error($database->dblink)); - while($row = mysqli_Fetch_assoc($result)) { - $datas[] = $row; - } - - foreach($datas as $key => $row) { - $value['userid'] = $row['userid']; - $value['username'] = $row['username']; - $value['totalvillages'] = $row['totalvillages']; - $value['id'] = $row['userid']; - $value['totalpop'] = $row['pop']; - $value['apall'] = $row['apall']; - array_push($holder, $value); - printf("\n\n", $value['username'], $value['totalvillages'], $value['totalpop'], $value['apall']); - } - - //$holder = $multisort->sorte($holder, "'ap'", false, 2, "'totalvillages'", false, 2, "'ap'", false, 2); - $newholder = array("pad"); - foreach($holder as $key) { - array_push($newholder, $key); - } - $this->rankarray = $newholder; - } - - public function procDefRankArray() { - global $database; - //global $GLOBALS['db'], $multisort; - //$array = $GLOBALS['db']->getRanking(); - $holder = array(); - $q = "SELECT " . TB_PREFIX . "users.id userid, " . TB_PREFIX . "users.username username, " . TB_PREFIX . "users.dpall, ( - - SELECT COUNT( " . TB_PREFIX . "vdata.wref ) - FROM " . TB_PREFIX . "vdata - WHERE " . TB_PREFIX . "vdata.owner = userid AND type != 99 - )totalvillages, ( - - SELECT SUM( " . TB_PREFIX . "vdata.pop ) - FROM " . TB_PREFIX . "vdata - WHERE " . TB_PREFIX . "vdata.owner = userid - )pop - FROM " . TB_PREFIX . "users - WHERE " . TB_PREFIX . "users.dpall >=0 AND " . TB_PREFIX . "users.access < " . (INCLUDE_ADMIN ? "10" : "8") . " AND " . TB_PREFIX . "users.tribe <= 3 - AND " . TB_PREFIX . "users.id > 5 - ORDER BY " . TB_PREFIX . "users.dpall DESC, pop DESC, userid DESC"; - $result = mysqli_query($database->dblink,$q) or die(mysqli_error($database->dblink)); - while($row = mysqli_Fetch_assoc($result)) { - $datas[] = $row; - } - - foreach($datas as $key => $row) { - $value['userid'] = $row['userid']; - $value['username'] = $row['username']; - $value['totalvillages'] = $row['totalvillages']; - $value['id'] = $row['userid']; - $value['totalpop'] = $row['pop']; - $value['dpall'] = $row['dpall']; - array_push($holder, $value); - - } - - //$holder = $multisort->sorte($holder, "'dpall'", false, 2, "'totalvillage'", false, 2, "'dpall'", false, 2); - $newholder = array("pad"); - foreach($holder as $key) { - array_push($newholder, $key); - } - $this->rankarray = $newholder; - } - - public function procVRankArray() { - global $multisort; - $array = $GLOBALS['db']->getVRanking(); - $holder = array(); - foreach($array as $value) { - $coor = $GLOBALS['db']->getCoor($value['wref']); - $value['x'] = $coor['x']; - $value['y'] = $coor['y']; - $value['user'] = $GLOBALS['db']->getUserField($value['owner'], "username", 0); - - array_push($holder, $value); - } - $holder = $multisort->sorte($holder, "x", true, 2, "y", true, 2, "pop", false, 2); - $newholder = array("pad"); - foreach($holder as $key) { - array_push($newholder, $key); - } - $this->rankarray = $newholder; - } - - public function procARankArray() { - global $multisort, $database; - $array = $GLOBALS['db']->getARanking(); - $holder = array(); - - foreach($array as $value) { - $memberlist = $GLOBALS['db']->getAllMember($value['id']); - $totalpop = 0; - - $memberIDs = []; - foreach($memberlist as $member) { - $memberIDs[] = $member['id']; - } - $data = $database->getVSumField($memberIDs,"pop"); - - if (count($data)) { - foreach ($data as $row) { - $totalpop += $row['Total']; - } - } - - $value['players'] = count($memberlist); - $value['totalpop'] = $totalpop; - if(!isset($value['avg'])) { - $value['avg'] = @round($totalpop / count($memberlist)); - } else { - $value['avg'] = 0; - } - - array_push($holder, $value); - } - $holder = $multisort->sorte($holder, "totalpop", false, 2); - $newholder = array("pad"); - foreach($holder as $key) { - array_push($newholder, $key); - } - $this->rankarray = $newholder; - } - - public function procHeroRankArray() { - global $multisort; - $array = $GLOBALS['db']->getHeroRanking(); - $holder = array(); - foreach($array as $value) { - $value['owner'] = $GLOBALS['db']->getUserField($value['uid'], "username", 0); - $value['level']; - $value['name']; - $value['uid']; - - array_push($holder, $value); - } - $holder = $multisort->sorte($holder, "experience", false, 2); - $newholder = array("pad"); - foreach($holder as $key) { - array_push($newholder, $key); - } - $this->rankarray = $newholder; - } - - public function procAAttRankArray() { - global $multisort; - $array = $GLOBALS['db']->getARanking(); - $holder = array(); - foreach($array as $value) { - $memberlist = $GLOBALS['db']->getAllMember($value['id']); - $totalap = 0; - foreach($memberlist as $member) { - $totalap += $member['ap']; - } - $value['players'] = count($memberlist); - $value['totalap'] = $totalap; - if($value['avg'] > 0) { - $value['avg'] = round($totalap / count($memberlist)); - } else { - $value['avg'] = 0; - } - - array_push($holder, $value); - } - $holder = $multisort->sorte($holder, "Aap", false, 2); - $newholder = array("pad"); - foreach($holder as $key) { - array_push($newholder, $key); - } - $this->rankarray = $newholder; - } - - public function procADefRankArray() { - global $multisort; - $array = $GLOBALS['db']->getARanking(); - $holder = array(); - foreach($array as $value) { - $memberlist = $GLOBALS['db']->getAllMember($value['id']); - $totaldp = 0; - foreach($memberlist as $member) { - $totaldp += $member['dp']; - } - $value['players'] = count($memberlist); - $value['totaldp'] = $totaldp; - if($value['avg'] > 0) { - $value['avg'] = round($totalap / count($memberlist)); - } else { - $value['avg'] = 0; - } - - array_push($holder, $value); - } - $holder = $multisort->sorte($holder, "Adp", false, 2); - $newholder = array("pad"); - foreach($holder as $key) { - array_push($newholder, $key); - } - $this->rankarray = $newholder; - } - } - ; - - $ranking = new Ranking; - -?> diff --git a/GameEngine/Session.php b/GameEngine/Session.php deleted file mode 100755 index 080abf4a..00000000 --- a/GameEngine/Session.php +++ /dev/null @@ -1,381 +0,0 @@ -time = time(); - if (!isset($_SESSION)) session_start(); - - $this->logged_in = $this->checkLogin(); - - if($this->logged_in && TRACK_USR) $database->updateActiveUser($this->username, $this->time); - - if(isset($_SESSION['url'])) $this->referrer = $_SESSION['url']; - else $this->referrer = "/"; - - $this->url = $_SESSION['url'] = $_SERVER['PHP_SELF']; - $this->SurfControl(); - } - - public function Login($user) { - global $database, $generator, $logging; - - $this->logged_in = true; - $_SESSION['sessid'] = $generator->generateRandID(); - $_SESSION['username'] = $user; - $user_sanitized = $database->escape($user); - $_SESSION['checker'] = $generator->generateRandStr(3); - $_SESSION['mchecker'] = $generator->generateRandStr(5); - - $userFields = $database->getUserFields($user_sanitized, "quest, id", 1, true); - $_SESSION['qst'] = $userFields["quest"]; - - $dbarray = $database->getUserFields($user_sanitized, 'id, village_select', 1); - $selected_village=(int) $dbarray['village_select']; - - if ($dbarray['id'] > 1) { - if(!isset($_SESSION['wid'])) { - if(!empty($selected_village)) $data = $database->getVillage($selected_village); - else $data = $database->getVillage($userFields["id"]); - $_SESSION['wid'] = $data['wref']; - } else - if(empty($_SESSION['wid'])) { - if(!empty($selected_village)) $data = $database->getVillage($selected_village); - else $data = $database->getVillage($userFields["id"]); - $_SESSION['wid'] = $data['wref']; - } - $this->PopulateVar(); - - $database->updateActiveUser($user_sanitized, $this->time); - $database->updateUserField($user_sanitized, "sessid", $_SESSION['sessid'], 0); - } - - $logging->addLoginLog($dbarray['id'], $_SERVER['REMOTE_ADDR']); - - if ($dbarray['id'] == 1) { - header("Location: nachrichten.php"); - exit; - } else { - header("Location: dorf1.php"); - exit; - } - } - - public function Logout() { - global $database; - $this->logged_in = false; - $database->updateUserField($_SESSION['username'], "sessid", "", 0); - if(ini_get("session.use_cookies")) { - $params = session_get_cookie_params(); - setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]); - } - session_destroy(); - session_start(); - } - - public function changeChecker() { - global $generator; - - $this->checker = $_SESSION['checker'] = $generator->generateRandStr(3); - $this->mchecker = $_SESSION['mchecker'] = $generator->generateRandStr(5); - } - - private function checkLogin(){ - global $database; - - $user = $id = ''; - $admin = false; - $inAdmin = (strpos($_SERVER['REQUEST_URI'], '/Admin') !== false); - - if (!$inAdmin && isset($_SESSION['username'])) { - $user = $_SESSION['username']; - $id = (int) $_SESSION['id_user']; - } else if ($inAdmin && isset($_SESSION['admin_username'])) { - $user = $_SESSION['admin_username']; - $id = (int) $_SESSION['id']; - $admin = true; - } - - if($user && ($admin || isset($_SESSION['sessid']))) { - $this->maintenance(); - $this->isWinner(); - - // check if this is not a support user, for who only messages and statistics are available - if ($user == 'Support') { - $req_file = basename($_SERVER['PHP_SELF']); - if (!in_array($req_file, ['nachrichten.php', 'logout.php', 'statistiken.php', 'rules.php', 'karte.php', 'karte2.php', 'spieler.php'])) { - header('Location: nachrichten.php'); - exit; - } - } - - //Get and Populate Data - $this->PopulateVar(); - - //Check if the player is banned - $this->isBanned(); - - //update database - $database->updateActiveUser($user, $this->time); - return true; - } - else return false; - } - - /** - * Called if the player is banned - * - */ - - function isBanned(){ - if($this->access == BANNED && !in_array(basename($_SERVER['PHP_SELF']), ['banned.php', 'nachrichten.php', 'rules.php'])){ - header('Location: banned.php'); - exit; - } - } - - /** - * Called when the server is under maintenance - * - */ - - function maintenance(){ - if($_SESSION['ok'] == 2 && basename($_SERVER['PHP_SELF']) != 'maintenance.php'){ - header('Location: maintenance.php'); - exit; - } - } - - /** - * Called when there's a player who built a WW to level 100 - * - */ - - function isWinner(){ - global $database; - - $requiredPage = basename($_SERVER['PHP_SELF']); - if($database->isThereAWinner() && (in_array($requiredPage, ['build.php', 'plus1.php']) || - (in_array($requiredPage, ['plus.php']) && isset($_GET['id']) && !empty($_GET['id'] && $_GET['id'] >= 7)))) - { - header('Location: winner.php'); - exit; - } - } - - /** - * Function to check Real Hero - * Made by: Shadow and brainiacX - * - */ - - function CheckHeroReal () { - global $database,$link; - - $villageIDs = implode(', ', $this->villages); - if (!count($this->villages)) { - $this->Logout(); - header('login.php'); - exit; - } - - // check if hero unit for this player is present anywhere on the map - $q = ' - SELECT - IFNULL((SELECT SUM(hero) from '.TB_PREFIX.'enforcement where `from` IN('.$villageIDs.')), 0) + - IFNULL((SELECT SUM(hero) from '.TB_PREFIX.'units where `vref` IN('.$villageIDs.')), 0) + - IFNULL((SELECT SUM(t11) from '.TB_PREFIX.'prisoners where `from` IN('.$villageIDs.')), 0) + - IFNULL((SELECT SUM(t11) FROM '.TB_PREFIX.'movement, '.TB_PREFIX.'attacks WHERE '.TB_PREFIX.'movement.`from` IN('.$villageIDs.') and '.TB_PREFIX.'movement.ref = '.TB_PREFIX.'attacks.id and '.TB_PREFIX.'movement.proc = 0 and '.TB_PREFIX.'movement.sort_type = 3), 0) + - IFNULL((SELECT SUM(t11) FROM '.TB_PREFIX.'movement, '.TB_PREFIX.'attacks where '.TB_PREFIX.'movement.`to` IN('.$villageIDs.') and '.TB_PREFIX.'movement.ref = '.TB_PREFIX.'attacks.id and '.TB_PREFIX.'movement.proc = 0 and '.TB_PREFIX.'movement.sort_type = 4), 0) - as herocount'; - $heroUnitRegisters = mysqli_fetch_array( mysqli_query($database->dblink, $q, MYSQLI_ASSOC ))['herocount']; - - // check if the actual hero is alive or being trained/revived into a living state - $isHeroLivingOrRaising = $database->getHeroDeadReviveOrInTraining($this->uid); - - // if he doesn't register anywhere on the map but is marked as alive, - // we need to kill him - if(!$heroUnitRegisters && $isHeroLivingOrRaising) { - $database->KillMyHero($this->uid); - } - } - - private function PopulateVar() { - global $database; - - $this->userarray = $this->userinfo = $database->getUserArray($_SESSION['username'], 0); - $this->username = $this->userarray['username']; - $this->uid = $_SESSION['id_user'] = $this->userarray['id']; - $this->gpack = $this->userarray['gpack']; - $this->access = $this->userarray['access']; - $this->plus = ($this->userarray['plus'] > $this->time); - $this->goldclub = $this->userarray['goldclub']; - $this->villages = $database->getVillagesID($this->uid); - $this->tribe = $this->userarray['tribe']; - $this->isAdmin = $this->access >= MODERATOR; - $this->alliance = $_SESSION['alliance_user'] = $this->userarray['alliance']; - $this->checker = $_SESSION['checker']; - $this->mchecker = $_SESSION['mchecker']; - $this->sit = $database->GetOnline($this->uid); - $this->sit1 = $this->userarray['sit1']; - $this->sit2 = $this->userarray['sit2']; - $this->cp = floor($this->userarray['cp']); - $this->gold = $this->userarray['gold']; - $this->oldrank = $this->userarray['oldrank']; - $this->sharedForums = $database->getSharedForums($this->uid, $this->alliance); - $_SESSION['ok'] = $this->userarray['ok']; - - if($this->userarray['b1'] > $this->time) $this->bonus1 = 1; - if($this->userarray['b2'] > $this->time) $this->bonus2 = 1; - if($this->userarray['b3'] > $this->time) $this->bonus3 = 1; - if($this->userarray['b4'] > $this->time) $this->bonus4 = 1; - - if (!in_array($this->username, ['Support', 'Multihunter'])) $this->CheckHeroReal(); - } - - /** - * Creates an array with the vrefs of attacked/scouted/reinforced villages and oasis - * - */ - - public function populateAttacks(){ - global $database, $village; - - $troopsMovement = $database->getMovement(3, $village->wid, 0); - if(count($troopsMovement) > 0){ - foreach($troopsMovement as $movement) - { - switch($movement['attack_type']){ - case 1: - $_SESSION['troops_movement']['scouts'][] = $movement['to']; - break; - case 2: - $_SESSION['troops_movement']['enforcements'][] = $movement['to']; - break; - case 3: - case 4: - $_SESSION['troops_movement']['attacks'][] = $movement['to']; - break; - } - } - } - } - - private function SurfControl(){ - if(SERVER_WEB_ROOT) { - $page = $_SERVER['SCRIPT_NAME']; - } else { - $explode = explode("/", $_SERVER['SCRIPT_NAME']); - $i = count($explode) - 1; - $page = $explode[$i]; - - } - $pagearray = array("index.php", "anleitung.php", "tutorial.php", "login.php", "activate.php", "anmelden.php", "xaccount.php"); - if(!$this->logged_in) { - if(!in_array($page, $pagearray) || $page == "logout.php") { - header("Location: login.php"); - exit; - } - } else { - if(in_array($page, $pagearray)) { - if ($this->uid == 1) { - header("Location: nachrichten.php"); - exit; - } else { - header("Location: dorf1.php"); - exit; - } - } - - } - } -}; -$session = new Session; -$form = new Form; - -// if there is no user, we'd try to load messages for user with ID 0, which is wrong -if (!empty($_SESSION['id_user'])) { - $message = new Message; - - // create a global user variable which will later be removed from here - // and created + retrieved either via Service Locator or other DI concept - $user = new User((int) $_SESSION['id_user'], $database); -} - -?> diff --git a/GameEngine/Technology.php b/GameEngine/Technology.php deleted file mode 100755 index de1d31c0..00000000 --- a/GameEngine/Technology.php +++ /dev/null @@ -1,729 +0,0 @@ - U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32, U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50 , U99, U0]; - - public function grabAcademyRes() { - global $village; - $holder = []; - foreach($village->researching as $research) { - if(substr($research['tech'], 0, 1) == "t") array_push($holder, $research); - } - return $holder; - } - - public function getABUpgrades($type='a') { - global $village; - $holder = []; - foreach($village->researching as $research) { - if(substr($research['tech'], 0, 1) == $type) array_push($holder, $research); - } - return $holder; - } - - public function isResearch($tech, $type) { - global $village; - - if(count($village->researching) == 0) return false; - else - { - switch($type) { - case 1: $string = "t"; break; - case 2: $string = "a"; break; - case 3: $string = "b"; break; - } - - foreach($village->researching as $research) { - if($research['tech'] == $string.$tech) return true; - } - - return false; - } - } - - public function procTech($post) { - if(isset($post['ft'])) { - switch($post['ft']) { - case "t1": - $this->procTrain($post); - break; - case "t3": - $this->procTrain($post,true); - break; - } - } - } - - public function procTechno($get) { - global $village; - if(isset($get['a'])) { - switch($village->resarray['f'.$get['id'].'t']) { - case 22: - $this->researchTech($get); - break; - case 13: - $this->upgradeArmour($get); - break; - case 12: - $this->upgradeSword($get); - break; - } - } - } - - public function getTrainingList($type) { - global $database,$village; - $trainingarray = $database->getTraining($village->wid); - $listarray = []; - $barracks = [1, 2, 3, 11, 12, 13, 14, 21, 22, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44]; - // fix by brainiac - THANK YOU - $greatbarracks = [61, 62, 63, 71, 72, 73, 74, 81, 82, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104]; - $stables = [4, 5, 6, 15, 16, 23, 24, 25, 26, 45, 46]; - $greatstables = [64, 65, 66, 75, 76, 83, 84, 85, 86, 105, 106]; - $workshop = [7, 8, 17, 18, 27, 28, 47, 48]; - $greatworkshop = [67, 68, 77, 78, 87, 88, 107, 108]; - $residence = [9, 10, 19, 20, 29, 30, 49, 50]; - $trapper = [99]; - - if(count($trainingarray) > 0) { - foreach($trainingarray as $train) { - if($type == 1 && in_array($train['unit'],$barracks)) { - $train['name'] = $this->unarray[$train['unit']]; - array_push($listarray,$train); - } - if($type == 2 && in_array($train['unit'],$stables)) { - $train['name'] = $this->unarray[$train['unit']]; - array_push($listarray,$train); - } - if($type == 3 && in_array($train['unit'],$workshop)) { - $train['name'] = $this->unarray[$train['unit']]; - array_push($listarray,$train); - } - if($type == 4 && in_array($train['unit'],$residence)) { - $train['name'] = $this->unarray[$train['unit']]; - array_push($listarray,$train); - } - if($type == 5 && in_array($train['unit'],$greatbarracks)) { - $train['name'] = $this->unarray[$train['unit']-60]; - $train['unit'] -= 60; - array_push($listarray,$train); - } - if($type == 6 && in_array($train['unit'],$greatstables)) { - $train['name'] = $this->unarray[$train['unit']-60]; - $train['unit'] -= 60; - array_push($listarray,$train); - } - if($type == 7 && in_array($train['unit'],$greatworkshop)) { - $train['name'] = $this->unarray[$train['unit']-60]; - $train['unit'] -= 60; - array_push($listarray,$train); - } - if($type == 8 && in_array($train['unit'],$trapper)) { - $train['name'] = $this->unarray[$train['unit']]; - array_push($listarray,$train); - } - } - } - return $listarray; - } - - public function getUnitList() { - global $database, $village; - - $unitarray = func_num_args() == 1 ? $database->getUnit(func_get_arg(0)) : $village->unitall; - $listArray = []; - for($i = 1; $i < count($this->unarray); $i++) { - $holder = []; - if(!empty($unitarray['u'.$i]) && $unitarray['u'.$i] > 0 && !empty($unitarray['u'.$i])) { - $holder['id'] = $i; - $holder['name'] = $this->unarray[$i]; - $holder['amt'] = $unitarray['u'.$i]; - array_push($listArray, $holder); - } - } - - if($unitarray['hero'] > 0 && !empty($unitarray['hero'])) { - $holder['id'] = "hero"; - $holder['name'] = $this->unarray[$i]; - $holder['amt'] = $unitarray['hero']; - array_push($listArray, $holder); - } - return $listArray; - } - - public function maxUnit($unit,$great=false) { - $unit = "u" . $unit; - global $village, $$unit, $database; - - $unitarray = $$unit; - $res = $database->getVillage($village->wid, 0, false); - if($res['wood'] > $res['maxstore']) $res['wood'] = $res['maxstore']; - if($res['clay'] > $res['maxstore']) $res['clay'] = $res['maxstore']; - if($res['iron'] > $res['maxstore']) $res['iron'] = $res['maxstore']; - if($res['crop'] > $res['maxcrop']) $res['crop'] = $res['maxcrop']; - - - $woodcalc = floor($res['wood'] / ($unitarray['wood'] * ($great ? 3 : 1))); - $claycalc = floor($res['clay'] / ($unitarray['clay'] * ($great ? 3 : 1))); - $ironcalc = floor($res['iron'] / ($unitarray['iron'] * ($great ? 3 : 1))); - - if($res['crop'] > 0) $cropcalc = floor($res['crop'] / ($unitarray['crop'] * ($great ? 3 : 1))); - else $cropcalc = 0; - - if($unit != "u99") $popcalc = floor($village->getProd("crop") / $unitarray['pop']); - else $popcalc = $village->getProd("crop"); - - return min($woodcalc, $claycalc, $ironcalc, $cropcalc); - } - - public function maxUnitPlus($unit,$great=false) { - $unit = "u" . $unit; - global $village, $$unit, $database; - - $unitarray = $$unit; - $res = $database->getVillage($village->wid); - $totalres = $res['wood'] + $res['clay'] + $res['iron'] + $res['crop']; - $totalresunit = ($unitarray['wood'] * ($great ? 3 : 1)) + ($unitarray['clay'] * ($great ? 3 : 1)) + ($unitarray['iron'] * ($great ? 3 : 1)) + ($unitarray['crop'] * ($great ? 3 : 1)); - $max = round($totalres / $totalresunit); - return $max; - } - - public function getUnits() { - global $database, $village; - - if(func_num_args() == 1) $base = func_get_arg(0); - - $ownunit = func_num_args() == 2 ? func_get_arg(0) : $database->getUnit($base); - $enforcementarray = func_num_args() == 2 ? func_get_arg(1) : $database->getEnforceVillage($base, 0); - if(count($enforcementarray) > 0){ - foreach($enforcementarray as $enforce){ - for($i = 1; $i <= 50; $i++) $ownunit['u'.$i] += $enforce['u'.$i]; - } - } - return $ownunit; - } - - function getAllUnits($base, $InVillageOnly = false, $mode = 0, $useCache = true) { - global $database; - - $ownunit = $database->getUnit($base, $useCache); - $ownunit['u99'] -= $ownunit['u99']; - $ownunit['u99o'] -= $ownunit['u99o']; - $enforcementarray = $database->getEnforceVillage($base, 0, $useCache); - if(count($enforcementarray) > 0){ - foreach($enforcementarray as $enforce){ - for($i = 1; $i <= 50; $i++){ - $ownunit['u' . $i] += $enforce['u' . $i]; - } - $ownunit['hero'] += $enforce['hero']; - } - } - if($mode == 0){ - $enforceoasis = $database->getOasisEnforce($base, 0, $useCache); - if(count($enforceoasis) > 0){ - foreach($enforceoasis as $enforce){ - for($i = 1; $i <= 50; $i++){ - $ownunit['u' . $i] += $enforce['u' . $i]; - } - $ownunit['hero'] += $enforce['hero']; - } - } - $enforceoasis1 = $database->getOasisEnforce($base, 1, $useCache); - if(count($enforceoasis1) > 0){ - foreach($enforceoasis1 as $enforce){ - for($i = 1; $i <= 50; $i++){ - $ownunit['u' . $i] += $enforce['u' . $i]; - } - $ownunit['hero'] += $enforce['hero']; - } - } - - $prisoners = $database->getPrisoners($base, 1, $useCache); - if(!empty($prisoners)){ - foreach($prisoners as $prisoner){ - $owner = $database->getVillageField($base, "owner"); - $ownertribe = $database->getUserField($owner, "tribe", 0); - $start = ($ownertribe - 1) * 10 + 1; - $end = ($ownertribe * 10); - for($i = $start; $i <= $end; $i++){ - $j = $i - $start + 1; - $ownunit['u' . $i] += $prisoner['t' . $j]; - } - $ownunit['hero'] += $prisoner['t11']; - } - } - } - - if(!$InVillageOnly){ - $movement = $database->getVillageMovement($base); - if(!empty($movement)){ - for($i = 1; $i <= 50; $i++){ - if(!isset($ownunit['u'.$i])) $ownunit['u'.$i] = 0; - $ownunit['u'.$i] += (isset($movement['u'.$i]) ? $movement['u'.$i] : 0); - } - - if(!isset($ownunit['hero'])) $ownunit['hero'] = 0; - $ownunit['hero'] += (isset($movement['hero']) ? $movement['hero'] : 0); - } - } - return $ownunit; - } - - public function meetTRequirement($unit) { - global $session; - switch($unit) { - - case 2: - case 3: - case 4: - case 5: - case 6: - case 7: - case 8: return $this->getTech($unit) && $session->tribe == 1; - - case 1: - case 10: return $session->tribe == 1; - - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: return $session->tribe == 2 && $this->getTech($unit); - - case 11: - case 20: return $session->tribe == 2; - - case 22: - case 23: - case 24: - case 25: - case 26: - case 27: - case 28: return $session->tribe == 3 && $this->getTech($unit); - - case 21: - case 30: return $session->tribe == 3; - - case 32: - case 33: - case 34: - case 35: - case 36: - case 37: - case 38: return $session->tribe == 4 && $this->getTech($unit); - - case 31: - case 40: return $session->tribe == 4; - - case 42: - case 43: - case 44: - case 45: - case 46: - case 47: - case 48: return $session->tribe == 5 && $this->getTech($unit); - - case 41: - case 50: return $session->tribe == 5; - } - } - - public function getTech($tech) { - global $village; - return (isset($village->techarray['t'.$tech]) && $village->techarray['t'.$tech] == 1); - } - - private function procTrain($post, $great = false) { - global $session; - - // first of all, check if we're not trying to train chieftain - // and settlers together - which we cannot, since that can result - // in 1 chieftain and 3 settlers, then conquering a village, then - // founding a new one, all with only 1 available slot - if ( - !( - (!empty($post['t9']) && !empty($post['t10'])) || - (!empty($post['t19']) && !empty($post['t20'])) || - (!empty($post['t29']) && !empty($post['t30'])) || - (!empty($post['t39']) && !empty($post['t40'])) || - (!empty($post['t49']) && !empty($post['t50'])) - ) - ) { - $start = ($session->tribe - 1) * 10 + 1; - $end = ($session->tribe * 10); - for ($i = $start; $i <= $end; $i ++ ) { - if (isset($post['t'.$i]) && $post['t'.$i] != 0) { - $amt = intval($post['t'.$i]); - if ($amt < 0) $amt = 1; - $this->trainUnit($i, $amt, $great); - } - } - - if($session->tribe == 3) - { - if (isset($post['t99']) && $post['t99'] != 0) { - $amt = intval($post['t99']); - if ($amt < 0) $amt = 1; - $this->trainUnit(99, $amt, $great); - } - } - - header( "Location: build.php?id=" . $post['id'] ); - exit; - } - } - - public function getUpkeep($array, $type, $vid = 0, $prisoners = 0) { - global $database, $village; - - if ($vid == 0) $vid = $village->wid; - $upkeep = 0; - $horsedrinking = $database->getFieldLevelInVillage($vid, 41); - - if(!$type){ - $start = 1; - $end = 50; - }else{ - $start = ($type - 1) * 10 + 1; - $end = $type * 10; - } - - for ($i = $start; $i <= $end; $i ++) { - $k = $i - $start + 1; - - $unit = "u".$i; - $index = $prisoners == 0 ? $unit : "t".$k; - - global $$unit; - $dataarray = $$unit; - - if($horsedrinking > 0) { - if (($i == 4 && $horsedrinking >= 10) || ($i == 5 && $horsedrinking >= 15) || ( $i == 6 && $horsedrinking == 20)) { - $upkeep += ($dataarray['pop'] - 1) * $array[$index]; - } - else $upkeep += ($dataarray['pop'] * $array[$index]); - } - else $upkeep += ($dataarray['pop'] * $array[$index]); - } - - $index = $prisoners > 0 ? 't11' : 'hero'; - - if(!isset($array[$index])) $array[$index] = 0; - $upkeep += $array[$index] * 6; - $who = $database->getVillageField($vid, "owner"); - - //If it's a WW village, halve the crop consumption - if($database->getVillageField($vid, "natar") == 1) $upkeep /= 2; - - return ceil($database->getArtifactsValueInfluence($who, $vid, 4, $upkeep, false)); - } - - private function trainUnit($unit, $amt, $great = false) { - global $session, $database, ${'u'.$unit}, $building, $village, $bid19, $bid20, $bid21, $bid25, $bid26, $bid29, $bid30, $bid36, $bid41, $bid42; - - if($this->getTech($unit) || $unit % 10 <= 1 || $unit == 99) { - $footies = [1, 2, 3, 11, 12, 13, 14, 21, 22, 31, 32, 33, 34, 41, 42, 43, 44]; - $calvary = [4, 5, 6, 15, 16, 23, 24, 25, 26, 35, 36, 45, 46]; - $workshop = [7, 8, 17, 18, 27, 28, 37, 38, 47, 48]; - $special = [9, 10, 19, 20, 29, 30, 39, 40, 49, 50]; - $trapper = [99]; - - //Check if the player is trying to train troops without the needed buildings - if((in_array($unit, $footies) && ($building->getTypeLevel(19) == 0 && $building->getTypeLevel(29) == 0)) || - (in_array($unit, $calvary) && ($building->getTypeLevel(20) == 0 && $building->getTypeLevel(30) == 0)) || - (in_array($unit, $workshop) && ($building->getTypeLevel(21) == 0 && $building->getTypeLevel(42) == 0)) || - (in_array($unit, $special) && ($building->getTypeLevel(25) < 10 && $building->getTypeLevel(26) < 10)) || - (in_array($unit, $trapper) && $building->getTypeLevel(36) == 0)) return; - - - if(in_array($unit, $footies)) { - if($great) { - $each = round(($bid29[$building->getTypeLevel(29)]['attri'] / 100) * ${'u'.$unit}['time'] / SPEED); - } else { - $each = round(($bid19[$building->getTypeLevel(19)]['attri'] / 100) * ${'u'.$unit}['time'] / SPEED); - } - } - if(in_array($unit, $calvary)) { - if($great) { - $each = round(($bid30[$building->getTypeLevel(30)]['attri'] * ($building->getTypeLevel(41)>=1?(1/$bid41[$building->getTypeLevel(41)]['attri']):1) / 100) * ${'u'.$unit}['time'] / SPEED); - } else { - $each = round(($bid20[$building->getTypeLevel(20)]['attri'] * ($building->getTypeLevel(41)>=1?(1/$bid41[$building->getTypeLevel(41)]['attri']):1) / 100) * ${'u'.$unit}['time'] / SPEED); - } - } - if(in_array($unit, $workshop)) { - if($great) { - $each = round(($bid42[$building->getTypeLevel(42)]['attri'] / 100) * ${'u'.$unit}['time'] / SPEED); - } else { - $each = round(($bid21[$building->getTypeLevel(21)]['attri'] / 100) * ${'u'.$unit}['time'] / SPEED); - } - } - if(in_array($unit, $special)) { - if($building->getTypeLevel(25) > 0){ - $each = round(($bid25[$building->getTypeLevel(25)]['attri'] / 100) * ${'u'.$unit}['time'] / SPEED); - } else { - $each = round(($bid26[$building->getTypeLevel(26)]['attri'] / 100) * ${'u'.$unit}['time'] / SPEED); - } - } - if(in_array($unit, $trapper)) { - - $each = round(($bid19[$building->getTypeLevel(36)]['attri'] / 100) * ${'u'.$unit}['time'] / SPEED); - } - if($unit % 10 == 0 || $unit % 10 == 9 && $unit != 99) { - $slots = $database->getAvailableExpansionTraining(); - if($unit % 10 == 0 && $slots['settlers'] <= $amt) $amt = $slots['settlers']; - if($unit % 10 == 9 && $slots['chiefs'] <= $amt) $amt = $slots['chiefs']; - } else { - if($unit != 99){ - if($this->maxUnit($unit, $great) < $amt) $amt = 0; - }else{ - $trainlist = $this->getTrainingList(8); - - foreach($trainlist as $train) $train_amt += $train['amt']; - - $max = 0; - for($i = 19; $i < 41; $i++){ - if($village->resarray['f'.$i.'t'] == 36){ - $max += $bid36[$village->resarray['f'.$i]]['attri']*TRAPPER_CAPACITY; - } - } - $max1 = $max - ($village->unitarray['u99'] + $train_amt); - if($max1 < $amt) $amt = 0; - } - } - $wood = ${'u'.$unit}['wood'] * $amt * ($great ? 3 : 1); - $clay = ${'u'.$unit}['clay'] * $amt * ($great ? 3 : 1); - $iron = ${'u'.$unit}['iron'] * $amt * ($great ? 3 : 1); - $crop = ${'u'.$unit}['crop'] * $amt * ($great ? 3 : 1); - - if($database->modifyResource($village->wid, $wood , $clay, $iron, $crop, 0) && $amt > 0) { - $database->trainUnit($village->wid, $unit + ($great ? 60 : 0), $amt, ${'u'.$unit}['pop'], $each, 0); - } - } - } - - public function meetRRequirement($tech) { - global $session, $building; - switch($tech) { - case 2: return $building->getTypeLevel(22) >= 1 && $building->getTypeLevel(13) >= 1; - case 3: return $building->getTypeLevel(22) >= 5 && $building->getTypeLevel(12) >= 1; - - case 4: - case 23: return$building->getTypeLevel(22) >= 5 && $building->getTypeLevel(20) >= 1; - - case 5: - case 25: return $building->getTypeLevel(22) >= 5 && $building->getTypeLevel(20) >= 5; - - case 6: return $building->getTypeLevel(22) >= 15 && $building->getTypeLevel(20) >= 10; - - case 9: - case 29: return $building->getTypeLevel(22) >= 20 && $building->getTypeLevel(16) >= 10; - - case 12: - case 32: - case 42: return $building->getTypeLevel(22) >= 1 && $building->getTypeLevel(19) >= 3; - - case 13: - case 33: - case 43: return $building->getTypeLevel(22) >= 3 && $building->getTypeLevel(12) >= 1; - - case 14: - case 34: - case 44: return $building->getTypeLevel(22) >= 1 && $building->getTypeLevel(15) >= 5; - - case 15: - case 35: - case 45: return $building->getTypeLevel(22) >= 1 && $building->getTypeLevel(20) >= 3; - - case 16: - case 26: - case 36: - case 46: return $building->getTypeLevel(22) >= 15 && $building->getTypeLevel(20) >= 10; - - case 7: - case 17: - case 27: - case 37: - case 47: return $building->getTypeLevel(22) >= 10 && $building->getTypeLevel(21) >= 1; - - case 8: - case 18: - case 28: - case 38: - case 48: return $building->getTypeLevel(22) >= 15 && $building->getTypeLevel(21) >= 10; - - case 19: - case 39: - case 49: return $building->getTypeLevel(22) >= 20 && $building->getTypeLevel(16) >= 5; - - case 22: return $building->getTypeLevel(22) >= 3 && $building->getTypeLevel(12) >= 1; - - case 24: return $building->getTypeLevel(22) >= 5 && $building->getTypeLevel(20) >= 3; - } - } - - private function researchTech($get) { - global $database,$session,${'r'.$get['a']},$bid22,$building,$village,$logging; - if($this->meetRRequirement($get['a']) && $get['c'] == $session->mchecker) { - $data = ${'r'.$get['a']}; - $time = time() + round(($data['time'] * ($bid22[$building->getTypeLevel(22)]['attri'] / 100))/SPEED); - $database->modifyResource($village->wid,$data['wood'],$data['clay'],$data['iron'],$data['crop'],0); - $database->addResearch($village->wid,"t".$get['a'],$time); - $logging->addTechLog($village->wid,"t".$get['a'],1); - } - $session->changeChecker(); - header("Location: build.php?id=".$get['id']); - exit; - } - - //TODO: Merge these two functions in one function, they're very similar to each other - - private function upgradeSword($get) { - global $database,$session,$bid12,$building,$village,$logging; - $ABTech = $database->getABTech($village->wid); - $ABUpgrades = $this->getABUpgrades('b'); - $ABUpgradesCount = count($ABUpgrades); - - $ups = 0; - if($ABUpgradesCount > 0){ - foreach($ABUpgrades as $upgrade){ - if(in_array(("b".$get['a']), $upgrade)) $ups++; - } - } - - $CurrentTech = $ABTech["b".$get['a']]+$ups; - $unit = ($session->tribe-1)*10+intval($get['a']); - if(($ABUpgradesCount < 2 && $session->plus || $ABUpgradesCount == 0) && ($this->getTech($unit) || ($unit % 10) == 1) && ($CurrentTech < $building->getTypeLevel(12)) && $get['c'] == $session->mchecker) { - global ${'ab'.strval($unit)}; - $data = ${'ab'.strval($unit)}; - $time = time() + round(($data[$CurrentTech+1]['time'] * ($bid12[$building->getTypeLevel(12)]['attri'] / 100))/SPEED) + ($ABUpgradesCount > 0 ? ($ABUpgrades[$ABUpgradesCount-1]['timestamp'] - time()) + ceil(60/SPEED) : 0); - if ($database->modifyResource($village->wid,$data[$CurrentTech+1]['wood'],$data[$CurrentTech+1]['clay'],$data[$CurrentTech+1]['iron'],$data[$CurrentTech+1]['crop'],0)) { - $database->addResearch($village->wid,"b".$get['a'],$time); - $logging->addTechLog($village->wid,"b".$get['a'],$CurrentTech+1); - } - } - $session->changeChecker(); - header("Location: build.php?id=".$get['id']); - exit; - } - - private function upgradeArmour($get) { - global $database,$session,$bid13,$building,$village,$logging; - $ABTech = $database->getABTech($village->wid); - $ABUpgrades = $this->getABUpgrades('a'); - $ABUpgradesCount = count($ABUpgrades); - - $ups = 0; - if($ABUpgradesCount > 0){ - foreach($ABUpgrades as $upgrade){ - if(in_array(("a".$get['a']), $upgrade)) $ups++; - } - } - - $CurrentTech = $ABTech["a".$get['a']]+$ups; - $unit = ($session->tribe-1)*10+intval($get['a']); - if(($ABUpgradesCount < 2 && $session->plus || $ABUpgradesCount == 0) && ($this->getTech($unit) || ($unit % 10) == 1) && ($CurrentTech < $building->getTypeLevel(13)) && $get['c'] == $session->mchecker) { - global ${'ab'.strval($unit)}; - $data = ${'ab'.strval($unit)}; - $time = time() + round(($data[$CurrentTech+1]['time'] * ($bid13[$building->getTypeLevel(13)]['attri'] / 100))/SPEED) + ($ABUpgradesCount > 0 ? ($ABUpgrades[$ABUpgradesCount-1]['timestamp'] - time()) + ceil(60/SPEED) : 0); - if ($database->modifyResource($village->wid,$data[$CurrentTech+1]['wood'],$data[$CurrentTech+1]['clay'],$data[$CurrentTech+1]['iron'],$data[$CurrentTech+1]['crop'],0)) { - $database->addResearch($village->wid,"a".$get['a'],$time); - $logging->addTechLog($village->wid,"a".$get['a'],$CurrentTech+1); - } - } - $session->changeChecker(); - header("Location: build.php?id=".$get['id']); - exit; - } - - public function getUnitName($i) { - return $this->unarray[$i]; - } - - public function finishTech() { - global $database,$village; - $q = "UPDATE ".TB_PREFIX."research SET timestamp=".(time()-1)." WHERE vref = ".(int) $village->wid; - $result = $database->query($q); - return mysqli_affected_rows($database->dblink); - } - - public function calculateAvaliable($id, $resarray = []) { - global $village,$generator,${'r'.$id}; - if(count($resarray)==0) { - $resarray['wood'] = ${'r'.$id}['wood']; - $resarray['clay'] = ${'r'.$id}['clay']; - $resarray['iron'] = ${'r'.$id}['iron']; - $resarray['crop'] = ${'r'.$id}['crop']; - } - $rwtime = ($resarray['wood']-$village->awood) / $village->getProd("wood") * 3600; - $rcltime = ($resarray['clay']-$village->aclay) / $village->getProd("clay") * 3600; - $ritime = ($resarray['iron']-$village->airon) / $village->getProd("iron") * 3600; - $rctime = ($resarray['crop']-$village->acrop) / $village->getProd("crop") * 3600; - if($village->getProd("crop") >= 0) { - $reqtime = max($rwtime,$rcltime,$ritime,$rctime) + time(); - } else { - $reqtime = max($rwtime,$rcltime,$ritime); - if($reqtime > $rctime) { - $reqtime = 0; - } else { - $reqtime += time(); - } - } - return $generator->procMtime($reqtime); - } - - public function checkReinf($id, $use_cache = true) { - global $database; - $enforce=$database->getEnforceArray($id, 0, $use_cache); - $fail=0; - - for ($i=1; $i<50; $i++) { - if($enforce['u'.$i.'']>0){ - $fail=1; - } - } - - if ($enforce['hero']>0) $fail=1; - if($fail==0){ - $database->deleteReinf($id); - } - - } - -} -$technology = new Technology; -?> diff --git a/GameEngine/Units.php b/GameEngine/Units.php deleted file mode 100755 index b80ccaac..00000000 --- a/GameEngine/Units.php +++ /dev/null @@ -1,818 +0,0 @@ -sendTroops($post); - else - { - $post = $this->loadUnits($post); - return $post; - } - break; - - case 2: - if (isset($post['a']) && $post['a'] == 533374 && empty($post['disabled'])) $this->sendTroops($post); - else - { - $post = $this->loadUnits($post); - return $post; - } - break; - - case 3: - if (isset($post['a']) && $post['a'] == 533374 && empty($post['disabled'])) $this->sendTroops($post); - else - { - $post = $this->loadUnits($post); - return $post; - } - break; - - case 4: - if (isset($post['a']) && $post['a'] == 533374) $this->sendTroops($post); - else - { - $post = $this->loadUnits($post); - return $post; - } - break; - - case 5: - if (isset($post['a']) && $post['a'] == "new") $this->Settlers($post); - else - { - $post = $this->loadUnits($post); - return $post; - } - break; - - case 8: - $this->sendTroopsBack($post); - break; - } - } - } - - private function loadUnits($post) { - global $form; - - if(!empty($error = $this->checkErrors($post))) { - $form->addError("error", $error); - $_SESSION['errorarray'] = $form->getErrors(); - $_SESSION['valuearray'] = $_POST; - header("Location: a2b.php"); - exit; - } - else return $post; - } - - /** - * Gets an error if the user did a mistake - * - * @param array $post The array containing all of the needed informations - * @return string Returns the errors, or empty if no errors was found - */ - - public function checkErrors(&$post){ - global $database, $village, $session, $generator; - - // Search by town name - // Coordinates and look confirm name people - if(isset($post['x']) && isset($post['y']) && $post['x'] != "" && $post['y'] != "") { - $vid = $database->getVilWref($post['x'], $post['y']); - unset($post['dname'], $post['dname']); - } - else if(isset($post['dname']) && !empty($post['dname'])) $vid = $database->getVillageByName(stripslashes($post['dname'])); - - if (!empty($vid)) { - if($isOasis = $database->isVillageOases($vid)){ - $too = $database->getOasisField($vid, "conqured"); - if($too == 0) $disabled = $disabledr ="disabled=disabled"; - else - { - $disabledr = ""; - if($session->sit == 0) $disabled = ""; - else $disabled ="disabled=disabled"; - } - }else{ - $too = $database->getVillage($vid); - if($too['owner'] == 3){ - $disabledr = "disabled=disabled"; - $disabled = ""; - }else{ - $disabledr = ""; - if($session->sit == 0) $disabled = ""; - else $disabled ="disabled=disabled"; - } - } - }else{ - $disabledr = ""; - if($session->sit == 0) $disabled = ""; - else $disabled ="disabled=disabled"; - } - - if(!empty($disabledr) && $post['c'] == 2) return "You can't reinforce this village/oasis"; - if(!empty($disabled) && $post['c'] == 3) return "You can't attack this village/oasis with normal attack"; - if($post['c'] < 2 || $post['c'] > 4) return "Invalid attack type."; - - //check if at least one troops has been selected - for($i = 1; $i <= 11; $i++) $selectedTroops += empty($post['t'.$i]) ? 0 : $post['t'.$i]; - if($selectedTroops == 0) return "You need to select min. one troop"; - - if(!empty($post['dname']) && $post['x'] != "" && $post['y'] != "") return "Insert name or coordinates"; - - if(isset($post['dname']) && !empty($post['dname'])) { - $id = $database->getVillageByName(stripslashes($post['dname'])); - - if (!isset($id)) return "Village doesn't exist"; - else $coor = $database->getCoor($id); - } - - // People search by coordinates - // We confirm and seek coordinate coordinates Village - if(isset($post['x']) && isset($post['y']) && $post['x'] != "" && $post['y'] != "") { - $coor = ['x' => $post['x'], 'y' => $post['y']]; - $id = $generator->getBaseID($coor['x'], $coor['y']); - - if (!$database->getVillageState($id)) return "Coordinates do not exist"; - } - - if (!empty($coor)) { - $Gtribe = $session->tribe == 1 ? "" : $session->tribe - 1; - for($i = 1; $i < 12; $i++){ - if(isset($post['t'.$i])){ - if($i < 10) $troophave = $village->unitarray['u'.$Gtribe.$i]; - if($i == 10) $troophave = $village->unitarray['u'.floor(intval($Gtribe) + 1) * $i]; - if($i == 11) $troophave = $village->unitarray['hero']; - - if(intval($post['t'.$i]) > $troophave) return "You can't send more units than you have"; - if(intval($post['t'.$i]) < 0) return "You can't send negative units."; - if(preg_match('/[^0-9]/',$post['t'.$i])) return "Special characters can't entered"; - } - } - } - - if(isset($id)) { - //check if the attacked village/oasis' owner is under beginners protection - if($database->hasBeginnerProtection($id) == 1) return "Player is under beginners protection. You can't attack him"; - - //check if it's an oasis or not - $villageInfo = (!$isOasis) ? $database->getVillage($id) : $database->getOasisV($id); - - //check if banned/admin: - $villageOwner = $villageInfo['owner']; - $userAccess = $database->getUserField($villageOwner, 'access', 0); - $userID = $database->getUserField($villageOwner, 'id', 0); - //check if he's an Admin and if he's attackable - if($userAccess == 0 || ($userAccess == MULTIHUNTER && $userID == 5) || (!ADMIN_ALLOW_INCOMING_RAIDS && $userAccess == ADMIN)){ - return "Player is Banned. You can't attack him"; - } - - //check if the user' is on the vacation mode: - if($database->getvacmodexy($id)) return "User is on vacation mode"; - - //check if attacking same village that units are in - if($id == $village->wid) return "You cant attack same village you are sending from."; - } - - //no errors, we can add the additional information to the post array - array_push($post, $id, $villageInfo['name'], $villageInfo['owner'], 0); - - return ""; - } - - public function returnTroops($wref, $mode = 0) { - global $database; - - if(!$mode){ - $getenforce = $database->getEnforceVillage($wref, 0); - foreach($getenforce as $enforce) $this->processReturnTroops($enforce); - } - - // check oasis - $getenforce1 = $database->getOasisEnforce($wref, 1); - foreach($getenforce1 as $enforce) $this->processReturnTroops($enforce); - - // set oasis to default - if(count($getenforce1) > 0) $database->regenerateOasisUnits($getenforce1[0]['vref']); - } - - private function processReturnTroops($enforce) { - global $database; - - $to = $database->getVillage($enforce['from']); - $tribe = $database->getUserField($to['owner'], 'tribe', 0); - $start = ($tribe - 1) * 10 + 1; - - $troopsTime = $this->getWalkingTroopsTime($enforce['from'], $enforce['vref'], $to['owner'], $tribe, $enforce, 1); - $time = $database->getArtifactsValueInfluence($from['owner'], $enforce['from'], 2, $troopsTime); - - $reference = $database->addAttack($enforce['from'], $enforce['u'.$start], $enforce['u'.($start + 1)], $enforce['u'.($start + 2)], $enforce['u'.($start + 3)], $enforce['u'.($start + 4)], $enforce['u'.($start + 5)], $enforce['u'.($start + 6)], $enforce['u'.($start + 7)], $enforce['u'.($start + 8)], $enforce['u'.($start + 9)], $enforce['hero'], 2, 0, 0, 0, 0); - $database->addMovement(4, $enforce['vref'], $enforce['from'], $reference, time(), ($time + time())); - $database->deleteReinf($enforce['id']); - } - - private function sendTroops($post) { - global $form, $database, $village, $session; - - $data = $database->getA2b($post['timestamp_checksum']); - $Gtribe = ($session->tribe == 1) ? "" : $session->tribe - 1; - - for ($i = 1; $i < 10; $i++) { - if (isset($data['u'.$i])) { - if ($data['u'.$i] > $village->unitarray['u'.$Gtribe.$i]) { - $form->addError("error", "You can't send more units than you have"); - break; - } - - if ($data['u'.$i] < 0) { - $form->addError("error", "You can't send negative units."); - break; - } - } - } - - if($data['u11'] > $village->unitarray['hero']) $form->addError("error", "You can't send more units than you have"); - if($data['u11'] < 0) $form->addError("error", "You can't send negative units."); - if($data['type'] != 1 && $post['spy'] != 0) $post['spy'] = 0; - - if($form->returnErrors() > 0){ - $_SESSION['errorarray'] = $form->getErrors(); - $_SESSION['valuearray'] = $_POST; - header( "Location: a2b.php" ); - exit; - }else{ - $u = ($session->tribe == 1) ? "" : $session->tribe - 1; - - $database->modifyUnit( - $village->wid, - [ - $u . "1", - $u . "2", - $u . "3", - $u . "4", - $u . "5", - $u . "6", - $u . "7", - $u . "8", - $u . "9", - $u . $session->tribe . "0", - "hero" - ], - [ - $data['u1'], - $data['u2'], - $data['u3'], - $data['u4'], - $data['u5'], - $data['u6'], - $data['u7'], - $data['u8'], - $data['u9'], - $data['u10'], - $data['u11'] - ], - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - ); - - $troopsTime = $this->getWalkingTroopsTime($village->wid, $data['to_vid'], $session->uid, $session->tribe, $data, 1, 'u'); - $time = $database->getArtifactsValueInfluence($session->uid, $village->wid, 2, $troopsTime); - - // Check if have WW owner have artefact Rivals great confusion or Artefact of the unique fool with that effect - // If is a WW village you can target on WW , if is not a WW village catapults will target randomly. - // Like it says : Exceptions are the WW which can always be targeted and the treasure chamber which can always be targeted, except with the unique artifact. - // Fixed by Advocaite and Shadow - Optimized by iopietro - - $to_owner = $database->getVillageField($data['to_vid'], "owner"); - $rivalsGreatConfusion = $database->getArtifactsSumByKind($to_owner, $data['to_vid'], 7); - - $rallyPointLevel = ($village->resarray)['f39']; - $invalidBuildings = []; - - // fill the array with the invalid buildings - if($rallyPointLevel >= 3 && $rallyPointLevel < 5){ - for($i = 1; $i <= 37; $i++){ - if(!in_array($i, [10, 11])) $invalidBuildings[] = $i; - } - } - else if($rallyPointLevel >= 5 && $rallyPointLevel < 10){ - for($i = 12; $i <= 37; $i++) $invalidBuildings[] = $i; - } - else if($rallyPointLevel >= 10){ - $invalidBuildings = [23, 31, 32, 33, 34, 36]; - } - - if(isset($post['ctar1']) && $post['ctar1'] != 0){ - // check if the player has selected a valid building - if($rallyPointLevel < 3 || $data['u8'] == 0 || in_array($post['ctar1'], $invalidBuildings) || $post['ctar1'] < 0 || $post['ctar1'] > 40){ - $post['ctar1'] = 0; - } - } - - if(isset($post['ctar2']) && $post['ctar2'] != 0){ - // check if there are atleast 20 catapults - if($data['u8'] < 20 || $rallyPointLevel != 20){ - $post['ctar2'] = 0; - }else{ - // check if the player has selected a valid building - if(in_array($post['ctar2'], $invalidBuildings) || ($post['ctar2'] < 0 || $post['ctar2'] > 40 && $post['ctar2'] != 99)){ - $post['ctar2'] = 99; - } - } - } - - if(isset($post['ctar1'])) { - //Is the Brewery built? - if($session->tribe != 2 || $database->getFieldLevelInVillage($village->wid, 35) == 0){ - if($rivalsGreatConfusion['totals'] > 0) { - if($post['ctar1'] != 40 && ($post['ctar1'] != 27 || ($post['ctar1'] == 27 && $rivalsGreatConfusion['unique'] > 0))) { - $post['ctar1'] = 0; - } - } - } - else $post['ctar1'] = 0; - } - else $post['ctar1'] = 0; - - if(isset($post['ctar2']) && $post['ctar2'] > 0) { - //Is the Brewery built? - if($session->tribe != 2 || $database->getFieldLevelInVillage($village->wid, 35) == 0){ - if($rivalsGreatConfusion['totals'] > 0) { - if ($post['ctar2'] != 40 && ($post['ctar2'] != 27 || ($post['ctar2'] == 27 && $rivalsGreatConfusion['unique'] > 0))) { - $post['ctar2'] = 99; - } - } - } - else $post['ctar2'] = 99; - } - else $post['ctar2'] = 0; - - if(!isset($post['spy'])) $post['spy'] = 0; - - $abdata = $database->getABTech($village->wid); - $reference = $database->addAttack(($village->wid), $data['u1'], $data['u2'], $data['u3'], $data['u4'], $data['u5'], $data['u6'], $data['u7'], $data['u8'], $data['u9'], $data['u10'], $data['u11'], $data['type'], $post['ctar1'], $post['ctar2'], $post['spy'], $abdata['b1'], $abdata['b2'], $abdata['b3'], $abdata['b4'], $abdata['b5'], $abdata['b6'], $abdata['b7'], $abdata['b8']); - $checkexist = $database->checkVilExist($data['to_vid']); - $checkoexist = $database->checkOasisExist($data['to_vid']); - if($checkexist || $checkoexist) { - $database->addMovement(3, $village->wid, $data['to_vid'], $reference, time(), ($time + time())); - if ($database->hasBeginnerProtection($village->wid) == 1 && $checkexist) { - mysqli_query($database->dblink, "UPDATE " . TB_PREFIX . "users SET protect = 0 WHERE id = ".(int) $session->uid); - } - } - - if($form->returnErrors() > 0) { - $_SESSION['errorarray'] = $form->getErrors(); - $_SESSION['valuearray'] = $_POST; - header("Location: a2b.php" ); - exit; - } - - // prevent re-use of the same attack via re-POSTing the same data - $database->remA2b($data['id']); - - header("Location: build.php?id=39"); - exit; - } - } - - private function sendTroopsBack($post) { - global $form, $database, $village, $session, $technology; - - $enforce = $database->getEnforceArray( $post['ckey'], 0 ); - $enforceoasis = $database->getOasisEnforceArray( $post['ckey'], 0 ); - if ( ( $enforce['from'] == $village->wid ) || ( $enforce['vref'] == $village->wid ) || ( $enforceoasis['conqured'] == $village->wid ) ) { - $to = $database->getVillage( $enforce['from'] ); - $Gtribe = ($ownerTribe = $database->getUserField( $to['owner'], 'tribe', 0)) == 1 ? "" : $ownerTribe - 1; - - for ( $i = 1; $i < 10; $i ++ ) { - if ( isset( $post[ 't' . $i ] ) ) { - if ( $i != 10 ) { - if ( $post[ 't' . $i ] > $enforce[ 'u' . $Gtribe . $i ] ) { - $form->addError( "error", "You can't send back more units than you have" ); - break; - } - - if ( $post[ 't' . $i ] < 0 ) { - $form->addError( "error", "You can't send back negative units." ); - break; - } - } - } else { - $post[ 't' . $i . '' ] = '0'; - } - } - if ( isset( $post['t11'] ) ) { - if ( $post['t11'] > $enforce['hero'] ) { - $form->addError( "error", "You can't send back more units than you have" ); - } - - if ( $post['t11'] < 0 ) { - $form->addError( "error", "You can't send back negative units." ); - } - } else { - $post['t11'] = '0'; - } - - if ( $form->returnErrors() > 0 ) { - $_SESSION['errorarray'] = $form->getErrors(); - $_SESSION['valuearray'] = $_POST; - header( "Location: a2b.php" ); - exit; - } else { - - //change units - $tribe = $database->getUserField($to['owner'], 'tribe', 0); - $start = ($tribe - 1 ) * 10 + 1; - $end = $tribe * 10 ; - - $units = []; - $amounts = []; - $modes = []; - - $j = 1; - for ( $i = $start; $i <= $end; $i ++ ) { - $units[] = $i; - $amounts[] = $post[ 't' . $j . '' ]; - $modes[] = 0; - $j ++; - } - - $units[] = 'hero'; - $amounts[] = $post['t11']; - $modes[] = 0; - - $database->modifyEnforce($post['ckey'], $units, $amounts, $modes); - $j++; - - $troopsTime = $this->getWalkingTroopsTime($enforce['from'], $enforce['vref'], $to['owner'], $tribe, $post, 1, 't'); - $time = $database->getArtifactsValueInfluence($session->uid, $village->wid, 2, $troopsTime); - - $reference = $database->addAttack($enforce['from'], $post['t1'], $post['t2'], $post['t3'], $post['t4'], $post['t5'], $post['t6'], $post['t7'], $post['t8'], $post['t9'], $post['t10'], $post['t11'], 2, 0, 0, 0, 0); - $database->addMovement(4, $village->wid, $enforce['from'], $reference, time(), ($time + time())); - $technology->checkReinf($post['ckey'], false); - - header("Location: build.php?id=39&refresh=1"); - exit(); - } - }else{ - $form->addError("error", "You cant change someones troops."); - if($form->returnErrors() > 0){ - $_SESSION['errorarray'] = $form->getErrors(); - $_SESSION['valuearray'] = $_POST; - header("Location: a2b.php"); - exit(); - } - } - } - - public function Settlers($post) { - global $form, $database, $village, $session; - - $mode = CP; - $total = count($database->getProfileVillages($session->uid)); - $need_cps = ${'cp'.$mode}[$total + 1]; - $cps = $session->cp; - $rallypoint = $database->getResourceLevel($village->wid); - - //-- Prevent user from founding a new village if there are not enough settlers or the player put an invalid village ID or an already occupied one - //-- fix by AL-Kateb - Semplified and additions by iopietro - if ($rallypoint['f39'] > 0 && $village->unitarray['u'.$session->tribe.'0'] >= 3 && isset($post['s']) && ($newvillage = $database->getMInfo($post['s']))['id'] > 0 && $newvillage['occupied'] == 0 && $newvillage['oasistype'] == 0) { - if ($cps >= $need_cps) { - $troopsTime = $this->getWalkingTroopsTime($village->wid, $newvillage['id'], 0, 0, [300], 0); - $time = $database->getArtifactsValueInfluence($session->uid, $village->wid, 2, $troopsTime); - - $unit = ($session->tribe * 10); - $database->modifyResource($village->wid, 750, 750, 750, 750, 0); - $database->modifyUnit($village->wid, [$unit], [3], [0]); - $database->addMovement(5, $village->wid, $post['s'], 0, time(), time() + $time); - } - header("Location: build.php?id=39"); - exit; - } else { - header("Location: dorf1.php"); - exit; - } - } - - public function Hero($uid, $all = 0, $include_dead = false) { - global $database; - $heroarray = $database->getHero($uid, $all, $include_dead); - $herodata = false; - $singleHeroArrayID = 0; - - // no hero data found - if (!count($heroarray)) { - return false; - } - - // check all heroes and load hero data for the one, - // whose data were updated more recently - if we're not getting all of them - if (!$all) { - foreach ($heroarray as $id => $hero) { - // try to load a hero who's alive first - if (!$herodata && $hero['dead'] != 1) { - // this global value comes from GameEngine/Data/unitdata.php - $herodata = $GLOBALS["h".$hero['unit']]; - $singleHeroArrayID = $id; - break; - } - } - - // if we couldn't get a living hero, - // resort to loading the first one from the list, - // as that would be the one most recently updated/used - if (!$herodata) { - // this global value comes from GameEngine/Data/unitdata.php - $herodata = $GLOBALS["h".$heroarray[0]['unit']]; - } - - $h_atk = $herodata['atk'] + 5 * floor($heroarray[$singleHeroArrayID]['attack'] * $herodata['atkp'] / 5); - $h_di = $herodata['di'] + 5 * floor($heroarray[$singleHeroArrayID]['defence'] * $herodata['dip'] / 5); - $h_dc = $herodata['dc'] + 5 * floor($heroarray[$singleHeroArrayID]['defence'] * $herodata['dcp'] / 5); - $h_ob = 1 + 0.002 * $heroarray[$singleHeroArrayID]['attackbonus']; - $h_db = 1 + 0.002 * $heroarray[$singleHeroArrayID]['defencebonus']; - - return [ - 'heroid' => $heroarray[$singleHeroArrayID]['heroid'], - 'unit' => $heroarray[$singleHeroArrayID]['unit'], - 'name' => $heroarray[$singleHeroArrayID]['name'], - 'inrevive' => $heroarray[$singleHeroArrayID]['inrevive'], - 'intraining' => $heroarray[$singleHeroArrayID]['intraining'], - 'trainingtime' => $heroarray[$singleHeroArrayID]['trainingtime'], - 'level' => $heroarray[$singleHeroArrayID]['level'], - 'attack' => $heroarray[$singleHeroArrayID]['attack'], - 'atk' => $h_atk, - 'defence' => $heroarray[$singleHeroArrayID]['defence'], - 'di' => $h_di, - 'dc' => $h_dc, - 'attackbonus' => $heroarray[$singleHeroArrayID]['attackbonus'], - 'ob' => $h_ob, - 'defencebonus' => $heroarray[$singleHeroArrayID]['defencebonus'], - 'db' => $h_db, - 'regeneration' => $heroarray[$singleHeroArrayID]['regeneration'], - 'health' => $heroarray[$singleHeroArrayID]['health'], - 'dead' => $heroarray[$singleHeroArrayID]['dead'], - 'points' => $heroarray[$singleHeroArrayID]['points'], - 'experience' => $heroarray[$singleHeroArrayID]['experience'] - ]; - } else { - // build up a full array of heroes and their stats - $heroes = []; - foreach ($heroarray as $id => $hero) { - $herodata = $GLOBALS["h".$heroarray[$id]['unit']]; - - $h_atk = $herodata['atk'] + 5 * floor($heroarray[$id]['attack'] * $herodata['atkp'] / 5); - $h_di = $herodata['di'] + 5 * floor($heroarray[$id]['defence'] * $herodata['dip'] / 5); - $h_dc = $herodata['dc'] + 5 * floor($heroarray[$id]['defence'] * $herodata['dcp'] / 5); - $h_ob = 1 + 0.002 * $heroarray[$id]['attackbonus']; - $h_db = 1 + 0.002 * $heroarray[$id]['defencebonus']; - - $heroes[] = [ - 'heroid' => $heroarray[$id]['heroid'], - 'unit' => $heroarray[$id]['unit'], - 'name' => $heroarray[$id]['name'], - 'inrevive' => $heroarray[$id]['inrevive'], - 'intraining' => $heroarray[$id]['intraining'], - 'trainingtime' => $heroarray[$id]['trainingtime'], - 'level' => $heroarray[$id]['level'], - 'attack' => $heroarray[$id]['attack'], - 'atk' => $h_atk, - 'defence' => $heroarray[$id]['defence'], - 'di' => $h_di, - 'dc' => $h_dc, - 'attackbonus' => $heroarray[$id]['attackbonus'], - 'ob' => $h_ob, - 'defencebonus' => $heroarray[$id]['defencebonus'], - 'db' => $h_db, - 'regeneration' => $heroarray[$id]['regeneration'], - 'health' => $heroarray[$id]['health'], - 'dead' => $heroarray[$id]['dead'], - 'points' => $heroarray[$id]['points'], - 'experience' => $heroarray[$id]['experience'] - ]; - } - - return $heroes; - } - } - - /** - * Function to kill/release prisoners - * - * @param int the ID of the prisoners you want to release - */ - - public function deletePrisoners($id){ - global $village, $database, $session, $building, $bid19, $u99; - - $prisoner = $database->getPrisonersByID($id); - $troops = 0; - if($prisoner['wref'] == $village->wid){ - $p_owner = $database->getVillageField($prisoner['from'], "owner"); - $p_tribe = $database->getUserField($p_owner, "tribe", 0); - - $troopsTime = $this->getWalkingTroopsTime($prisoner['from'], $prisoner['wref'], $p_owner, $p_tribe, $prisoner, 1, 't'); - $p_time = $database->getArtifactsValueInfluence($p_owner, $prisoner['from'], 2, $troopsTime); - - $p_reference = $database->addAttack($prisoner['from'], $prisoner['t1'],$prisoner['t2'], $prisoner['t3'], $prisoner['t4'], $prisoner['t5'], $prisoner['t6'], $prisoner['t7'], $prisoner['t8'], $prisoner['t9'], $prisoner['t10'], $prisoner['t11'], 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); - $database->addMovement(4, $prisoner['wref'], $prisoner['from'], $p_reference, time(), ($p_time + time())); - - for($i = 1; $i <= 11; $i++) $troops += $prisoner['t'.$i]; - - //Reset traps - $database->modifyUnit($village->wid, ["99", "99o"], [$troops, $troops], [0, 0]); - $repairDuration = $database->getArtifactsValueInfluence($session->uid, $village->wid, 5, round(($bid19[max($building->getTypeLevel(36, $village->wid), 1)]['attri'] / 100) * $u99['time'] / SPEED)); - $database->trainUnit($village->wid, 99, $troops, $u99['pop'], $repairDuration, 0); - - $database->deletePrisoners($prisoner['id']); - }else if($prisoner['from'] == $village->wid){ - $prisonersToOwner = $database->getVillageField($prisoner['wref'], "owner"); - - for($i = 1; $i <= 11; $i++) $troops += $prisoner['t'.$i]; - - if($prisoner['t11'] > 0){ - $p_owner = $database->getVillageField($prisoner['from'], "owner"); - mysqli_query($database->dblink, "UPDATE ".TB_PREFIX."hero SET `dead` = '1', `health` = '0' WHERE `uid` = '".$p_owner."' AND dead = 0"); - } - - //Reset traps - $database->modifyUnit($prisoner['wref'], ["99", "99o"], [$troops, $troops], [0, 0]); - - if(($troops = round($troops / 3)) > 0){ - $repairDuration = $database->getArtifactsValueInfluence($prisonersToOwner, $prisoner['wref'], 5, round(($bid19[max($building->getTypeLevel(36, $prisoner['wref']), 1)]['attri'] / 100) * $u99['time'] / SPEED)); - $database->trainUnit($prisoner['wref'], 99, $troops, $u99['pop'], $repairDuration, 0); - } - - $database->deletePrisoners($prisoner['id']); - } - - header("Location: build.php?id=39"); - exit; - } - - /** - * Get how much time troops spend to walk from a village to another - * - * @param int $from The start village ID - * @param int $to The target village ID - * @param int $owner The owner of the troops - * @param int $tribe The tribe of the owner's troops - * @param array $unitArray The array containing troops count if mode is 0, otherwise it'll contains the troop speed - * @param int $mode How the time should be calculated - * @return int Returns the time troops take to walk from a village to another - */ - - public function getWalkingTroopsTime($from, $to, $owner, $tribe, $unitArray, $mode, $unit = ""){ - global $generator, $database; - - $fromCoor = $database->getCoor($from); - $toCoor = $database->getCoor($to); - $fromCor = ['x' => $fromCoor['x'], 'y' => $fromCoor['y']]; - $toCor = ['x' => $toCoor['x'], 'y' => $toCoor['y']]; - - if(!$mode) return $generator->procDistanceTime($fromCor, $toCor, $unitArray[0], $mode, $from); - - $start = ($tribe - 1) * 10 + 1; - $end = $tribe * 10; - - $speeds = []; - - //Find slowest unit - if(!empty($unit)){ - for($i = 1; $i <= 11; $i++){ - if(isset($unitArray[$unit.$i]) && $unitArray[$unit.$i] > 0) $unitArray[$i - 1] = $unitArray[$unit.$i]; - else $unitArray[$i - 1] = 0; - } - }else{ - for($i = $start; $i <= $end; $i++){ - if(isset($unitArray['u'.$i]) && $unitArray['u'.$i] > 0) $unitArray[$i - $start] = $unitArray['u'.$i]; - else $unitArray[$i - $start] = 0; - } - - if(isset($unitArray['hero']) && $unitArray['hero'] > 0){ - $unitArray[10] = $unitArray['hero']; - } - else $unitArray[10] = 0; - } - - for($i = 0; $i <= 9; $i++){ - if(isset($unitArray[$i]) && $unitArray[$i] > 0){ - $speeds[] = $GLOBALS['u'.($i + $start)]['speed']; - } - } - - if(isset($unitArray[10]) && $unitArray[10] > 0){ - $heroUnit = $database->getHeroField($owner, 'unit'); - $speeds[] = $GLOBALS['u'.$heroUnit]['speed']; - } - - return $generator->procDistanceTime($fromCor, $toCor, min($speeds), $mode, $from); - } - - public function startRaidList($post){ - global $database, $generator, $session; - - $slots = $post['slot']; - if(empty($slots)){ - header("Location: build.php?id=39&t=99"); - exit(); - } - - $tribe = $session->tribe; - - foreach($slots as $slot){ - $raidList = $database->getRaidList($slot); - $getFLData = $database->getFLData($raidList['lid']); - - //Check if we're trying to start our raidlists or other players raidlist - if($getFLData['owner'] != $session->uid) continue; - - //Get the units in the village - $villageUnits = $database->getUnit($getFLData['wref'], false); - - $sid = $raidList['id']; - $wref = $raidList['towref']; - - for($i = 1; $i <= 6; $i++) ${'t'.$i} = $raidList['t'.$i]; - - if(!$database->isVillageOases($wref)) $villageOwner = $database->getVillageField($wref, 'owner'); - else $villageOwner = $database->getOasisField($wref, 'owner'); - - $userAccess = $database->getUserField($villageOwner, 'access', 0); - $userID = $database->getUserField($villageOwner, 'id', 0); - - if($userAccess != 0 && !($userAccess == MULTIHUNTER && $userID == 5) && ($userAccess != ADMIN || (ADMIN_ALLOW_INCOMING_RAIDS && $userAccess == ADMIN))){ - - //Start = the first troop of the player's tribe - //End = the last selectable troop of the player's tribe - $start = ($session->tribe - 1) * 10 + 1; - $end = $start + 5; - - //Check if we've enough troops - $canSend = true; - for($i = $start; $i <= $end; $i++){ - if($villageUnits['u'.$i] < ${'t'.($i - $start + 1)}){ - $canSend = false; - break; - } - } - - //Send the attack - if($canSend){ - $ckey = $generator->generateRandStr(6); - $id = $database->addA2b($ckey, 0, $wref, $t1, $t2, $t3, $t4, $t5, $t6, 0, 0, 0, 0, 0, 4); - $data = $database->getA2b($ckey); - - $troopsTime = $this->getWalkingTroopsTime($getFLData['wref'], $data['to_vid'], $session->uid, $session->tribe, $data, 1, 'u'); - $time = $database->getArtifactsValueInfluence($getFLData['owner'], $getFLData['wref'], 2, $troopsTime); - - $abdata = $database->getABTech($getFLData['wref']); - $reference = $database->addAttack(($getFLData['wref']), $data['u1'], $data['u2'], $data['u3'], $data['u4'], $data['u5'], $data['u6'], 0, 0, 0, 0, 0, $data['type'], 0, 0, 0, $abdata['b1'], $abdata['b2'], $abdata['b3'], $abdata['b4'], $abdata['b5'], $abdata['b6'], $abdata['b7'], $abdata['b8']); - - $troops = []; - $amounts = []; - $modes = []; - - for($u = $start; $u <= $end; $u++){ - $troops[] = $u; - $amounts[] = $data['u'.($u - $start + 1)]; - $modes[] = 0; - } - - $database->modifyUnit($getFLData['wref'], $troops, $amounts, $modes); - $database->addMovement(3, $getFLData['wref'], $data['to_vid'], $reference, time(), ($time + time())); - - //Prevent re-use of the same attack via re-POSTing the same data - $database->remA2b($id); - } - } - } - header("Location: build.php?id=39&t=99"); - exit(); - } -}; -$units = new Units; - -?> diff --git a/GameEngine/Village.php b/GameEngine/Village.php deleted file mode 100755 index 56e93ed2..00000000 --- a/GameEngine/Village.php +++ /dev/null @@ -1,321 +0,0 @@ -wid = $_SESSION['wid']; - else $this->wid = $session->villages[0]; - - $this->preloadVillagesData(); - - //add new line code - //check exist village if from village destroy to avoid error msg. - if(!$database->checkVilExist($this->wid)){ - $this->wid=$database->getVillageID($session->uid); - $_SESSION['wid'] = $this->wid; - } - - $this->LoadTown(); - $database->cacheResourceLevels($this->wid); - $this->calculateProduction(); - $this->processProduction(); - $this->ActionControl(); - } - - private function preloadVillagesData() { - global $database, $session; - - // preload villages for this user account - $database->getProfileVillages($session->uid, 5); - - // preload villages world data records - $database->cacheVillageByWorldIDs($session->uid); - } - - public function getProd($type) { - return $this->production[$type]; - } - - public function getAllUnits($vid) { - global $database, $technology; - return $technology->getUnits($database->getUnit($vid),$database->getEnforceVillage($vid,0)); - } - - private function LoadTown($second_run = false) { - global $database, $session, $logging, $technology; - - $this->infoarray = $database->getVillage($this->wid); - if($this->infoarray['owner'] != $session->uid && !$session->isAdmin) { - unset($_SESSION['wid']); - $logging->addIllegal($session->uid,$this->wid,1); - $this->wid = $session->villages[0]; - $this->infoarray = $database->getVillage($this->wid); - } - $this->resarray = $database->getResourceLevel($this->wid); - $this->coor = $database->getCoor($this->wid); - $this->type = $database->getVillageType($this->wid); - $this->oasisowned = $database->getOasis($this->wid); - $this->ocounter = $this->sortOasis(); - $this->unitarray = $database->getUnit($this->wid); - $this->enforcetome = $database->getEnforceVillage($this->wid,0); - $this->enforcetoyou = $database->getEnforceVillage($this->wid,1); - $this->enforceoasis = $database->getOasisEnforce($this->wid,0); - $this->unitall = $technology->getAllUnits($this->wid); - $this->techarray = $database->getTech($this->wid); - $this->abarray = $database->getABTech($this->wid); - $this->researching = $database->getResearching($this->wid, !$second_run); - - $this->capital = $this->infoarray['capital']; - $this->natar = $this->infoarray['natar']; - $this->currentcel = $this->infoarray['celebration']; - $this->wid = $this->infoarray['wref']; - $this->vname = $this->infoarray['name']; - $this->awood = $this->infoarray['wood']; - $this->aclay = $this->infoarray['clay']; - $this->airon = $this->infoarray['iron']; - $this->acrop = $this->infoarray['crop']; - $this->atotal = (int)($this->awood + $this->aclay + $this->airon + $this->acrop); - $this->pop = $this->infoarray['pop']; - $this->maxstore = $this->infoarray['maxstore']; - $this->maxcrop = $this->infoarray['maxcrop']; - $this->allcrop = $this->getCropProd(); - $this->loyalty = $this->infoarray['loyalty']; - $this->master = count($database->getMasterJobs($this->wid)); - - //If resources overflow the warehouse/granary limit, set them at the maximum value - $resourceUpdates = []; - if($this->awood > $this->maxstore) - { - $this->awood = $this->maxstore; - $resourceUpdates['wood'] = $this->maxstore; - } - - if($this->aclay > $this->maxstore) - { - $this->aclay = $this->maxstore; - $resourceUpdates['clay'] = $this->maxstore; - } - - if($this->airon > $this->maxstore) - { - $this->airon = $this->maxstore; - $resourceUpdates['iron'] = $this->maxstore; - } - - if($this->acrop > $this->maxcrop) - { - $this->acrop = $this->maxcrop; - $resourceUpdates['crop'] = $this->maxcrop; - } - - if (count($resourceUpdates)) { - $database->updateResource($this->wid, array_keys($resourceUpdates), array_values($resourceUpdates)); - - // reload cache if we've updated resources and the like - if ($second_run) { - // update DB cache - call_user_func(get_class($database).'::clearVillageCache'); - $this->preloadVillagesData(); - } - } - else if ($second_run) $this->preloadVillagesData(); - } - - private function calculateProduction() { - global $technology, $database, $session; - - // clear cache, since we're updating village data - call_user_func(get_class($database).'::clearVillageCache'); - $upkeep = $technology->getUpkeep($this->unitall, 0, $this->wid); - $this->production['wood'] = $this->getWoodProd(); - $this->production['clay'] = $this->getClayProd(); - $this->production['iron'] = $this->getIronProd(); - $this->production['crop'] = $this->getCropProd() - (!$this->natar ? $this->pop : round($this->pop / 2)) - $upkeep; - } - - private function processProduction() { - global $database; - - $timepast = time() - $this->infoarray['lastupdate']; - $nwood = min(($this->production['wood'] / 3600) * $timepast, $this->maxstore); - $nclay = min(($this->production['clay'] / 3600) * $timepast, $this->maxstore); - $niron = min(($this->production['iron'] / 3600) * $timepast, $this->maxstore); - $ncrop = min(($this->production['crop'] / 3600) * $timepast, $this->maxcrop); - - $database->modifyResource($this->wid, $nwood, $nclay, $niron, $ncrop, 1); - $database->updateVillage($this->wid); - $this->LoadTown(true); - } - - private function getWoodProd() { - global $bid1, $bid5, $session; - - $wood = $sawmill = 0; - $woodholder = []; - for($i = 1; $i <= 38; $i++) { - if($this->resarray['f'.$i.'t'] == 1) array_push($woodholder,'f'.$i); - if($this->resarray['f'.$i.'t'] == 5) $sawmill = $this->resarray['f'.$i]; - } - - for($i = 0; $i <= count($woodholder) - 1; $i++) $wood += $bid1[$this->resarray[$woodholder[$i]]]['prod']; - $wood = $wood + $wood * 0.25 * $this->ocounter[0]; - - if($sawmill >= 1) $wood += $wood / 100 * $bid5[$sawmill]['attri']; - if($session->bonus1 == 1) $wood *= 1.25; - - return round($wood * SPEED); - } - - private function getClayProd() { - global $bid2, $bid6, $session; - - $clay = $brick = 0; - $clayholder = []; - for($i = 1; $i <= 38; $i++) { - if($this->resarray['f'.$i.'t'] == 2) array_push($clayholder,'f'.$i); - if($this->resarray['f'.$i.'t'] == 6) $brick = $this->resarray['f'.$i]; - } - - for($i = 0; $i <= count($clayholder) - 1; $i++) $clay+= $bid2[$this->resarray[$clayholder[$i]]]['prod']; - $clay = $clay + $clay * 0.25 * $this->ocounter[1]; - - if($brick >= 1) $clay += $clay / 100 * $bid6[$brick]['attri']; - if($session->bonus2 == 1) $clay *= 1.25; - - return round($clay * SPEED); - } - - private function getIronProd() { - global $bid3, $bid7, $session; - - $iron = $foundry = 0; - $ironholder = []; - for($i = 1; $i <= 38; $i++) { - if($this->resarray['f'.$i.'t'] == 3) array_push($ironholder,'f'.$i); - if($this->resarray['f'.$i.'t'] == 7) $foundry = $this->resarray['f'.$i]; - } - - for($i = 0;$i <= count($ironholder) - 1; $i++) $iron+= $bid3[$this->resarray[$ironholder[$i]]]['prod']; - $iron = $iron + $iron * 0.25 * $this->ocounter[2]; - - if($foundry >= 1) $iron += $iron / 100 * $bid7[$foundry]['attri']; - if($session->bonus3 == 1) $iron *= 1.25; - - return round($iron * SPEED); - } - - private function getCropProd() { - global $bid4, $bid8, $bid9, $session; - - $crop = $grainmill = $bakery = 0; - $cropholder = []; - for($i = 1; $i <= 38; $i++) { - if($this->resarray['f'.$i.'t'] == 4) array_push($cropholder,'f'.$i); - if($this->resarray['f'.$i.'t'] == 8) $grainmill = $this->resarray['f'.$i]; - if($this->resarray['f'.$i.'t'] == 9) $bakery = $this->resarray['f'.$i]; - } - - for ($i = 0; $i <= count($cropholder) - 1; $i++) $crop += $bid4[$this->resarray[$cropholder[$i]]]['prod']; - $bonus = 0.25 * $this->ocounter[3]; - $crop = $crop + $crop * 0.25 * $this->ocounter[3]; - - if($grainmill >= 1 || $bakery >= 1) { - $crop += $crop / 100 * ((isset($bid8[$grainmill]['attri']) ? $bid8[$grainmill]['attri'] : 0) + (isset($bid9[$bakery]['attri']) ? $bid9[$bakery]['attri'] : 0)); - } - if($session->bonus4 == 1) $crop *= 1.25; - - return round($crop * SPEED); - } - - private function sortOasis() { - $crop = $clay = $wood = $iron = 0; - if(!empty($this->oasisowned)){ - foreach($this->oasisowned as $oasis){ - switch($oasis['type']){ - case 1: - case 2: - $wood++; - break; - case 3: - $wood++; - $crop++; - break; - case 4: - case 5: - $clay++; - break; - case 6: - $clay++; - $crop++; - break; - case 7: - case 8: - $iron++; - break; - case 9: - $iron++; - $crop++; - break; - case 10: - case 11: - $crop++; - break; - case 12: - $crop += 2; - break; - } - } - } - return [$wood, $clay, $iron, $crop]; - } - - private function ActionControl() { - global $session; - - if(SERVER_WEB_ROOT) $page = $_SERVER['SCRIPT_NAME']; - else - { - $explode = explode("/",$_SERVER['SCRIPT_NAME']); - $i = count($explode)-1; - $page = $explode[$i]; - } - - if($page == "build.php" && $session->uid != $this->infoarray['owner']) { - unset($_SESSION['wid']); - header("Location: dorf1.php"); - exit; - } - } - -}; -$village = new Village; -$building = new Building; -//include_once("Automation.php"); -?> diff --git a/GameEngine/favicon.ico b/GameEngine/favicon.ico deleted file mode 100755 index f852934812ada931eb76f379e9ff9dfa0c7bfe8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1406 zcmeH^TTGK@7{`C8D4U{yh#TT@TJXS7m=1)3B3%cFxK;{<3L<``h018@r?nhjJdsYP z)5*l3F(OS6LlzZLnrV!h$zh%nqcd?g7-i9f7%sh8_jUKX@^bsXdH(P7`#;Hh@jeiw zoUkwy55W=)Q9zthO2h)C0{OpbLhuxbNP_voD9#!sE7H!&2M!o@^PRq>PMw0adN|vdff^vz9G6!X4PE1lIX0sW|VkOe%!dTIa&RUDR z%0jiYAM?%{Y&AA?wr1t21611`*j<%i8DN)lH%7-{>Rfg*>)MHI`~jESO^T}vhx<59 zLXf^sxtkB*6m85obOKLH3o+kyrxM0S9{&VCk+1DP5+%|bPPP<-oOxpgM<7$ z^oXwE=iLA8K0^;4aCi6xJ&&H!JN$;HzmIa~k5>#m^D{Cs!owGS?v1|V&(TrF#>N;Q zAIItU^ZdP^mw);3EB*iaZ~s926vL)9HI~q%=ot+uE9BiGK62^eg$tK3Z|XNeA4$uE zSf3-yk}Rc%F)QTbiDL7Hm9i9*tl1bc)ig6i2=xN(qzPYWBQ&`Y)90@dLWHJn(JcC8 zT19Qqsyzyd)mvq`NF!BGG`1!yFVor(Pj $repl) - { - $text = str_replace($sub, $repl, $text); - } - - ob_start(); - eval("?>".$text); - $text = ob_get_contents(); - ob_end_clean(); - return $text; -} - -?> \ No newline at end of file diff --git a/README.md b/README.md index 0123cc7f..b922d8f6 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ [![GitHub followers](https://img.shields.io/github/followers/espadrine.svg?style=social&label=Follow)](https://github.com/Shadowss/TravianZ) [![Twitter URL](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/cata7007) ====== -TravianZ Version **v.8.3.4** +TravianZ Version **v9.0.0** ====== **Note:** this game is still in a pre-release state, although at this point it is very playable, tested and found to be fairly stable diff --git a/Security/Security.class.php b/Security/Security.class.php deleted file mode 100644 index 9e7e6141..00000000 --- a/Security/Security.class.php +++ /dev/null @@ -1,264 +0,0 @@ - | -// +----------------------------------------------------------------------+ - -// Source Code Highlight -/* Security Fix; Only dev -if(isset($_GET['show_source'])) -{ - highlight_file(__FILE__); - exit; -} -*/ - -/** - * Provides static functions to help protect against cross site scripting - * attacks and helps clean up the php environment upon initializing. - * - * Based upon Security library by http://kohanaphp.com/ - * - * @license http://opensource.org/licenses/gpl-license.php GNU Public License - */ -define('PCRE_UNICODE_PROPERTIES', (bool) preg_match('/^\pL$/u', '?')); - -class Security -{ - // Instance of the security class. - protected static $instance; - protected $magic_quotes_gpc = FALSE; - - /** - * Gets the instance of the Security class. - * - * @return object Instance of Security - */ - public static function instance() - { - if(self::$instance === NULL) - { - //return new Security; - } - - //return self::$instance; - } - - - /** - * Constructor. Sanitizes global data GET, POST and COOKIE data. - * Also makes sure those pesty magic quotes and register globals - * don't bother us. This is protected because it really only needs - * to be run once. - * - * @return void - */ - protected function __construct() - { - if(self::$instance === NULL) - { - // Check for magic quotes - if(get_magic_quotes_runtime()) - { - // Dear lord!! This is bad and deprected. Sort it out ;) - set_magic_quotes_runtime(0); - } - - if(get_magic_quotes_gpc()) - { - // This is also bad and deprected. See http://php.net/magic_quotes for more information. - $this->magic_quotes_gpc = TRUE; - } - - // Check for register globals and prevent security issues from arising. - if(ini_get('register_globals')) - { - if(isset($_REQUEST['GLOBALS'])) - { - // No no no.. just kill the script here and now - exit('Illegal attack on global variable.'); - } - - // Get rid of REQUEST - $_REQUEST = array(); - - // The following globals are standard and shouldn't really be removed - $preserve = array('GLOBALS', '_REQUEST', '_GET', '_POST', '_FILES', '_COOKIE', '_SERVER', '_ENV', '_SESSION'); - - // Same effect as disabling register_globals - foreach($GLOBALS as $key => $value) - { - if( ! in_array($key, $preserve)) - { - global $$key; - $$key = NULL; - - unset($GLOBALS[$key], $$key); - } - } - } - - // Sanitize global data - - if(is_array($_POST)) - { - foreach($_POST as $key => $value) - { - $_POST[$this->clean_input_keys($key)] = $this->clean_input_data($value); - } - } - else - { - $_POST = array(); - } - - if(is_array($_GET)) - { - foreach($_GET as $key => $value) - { - $_GET[$this->clean_input_keys($key)] = $this->clean_input_data($value); - } - } - else - { - $_GET = array(); - } - - if(is_array($_COOKIE)) - { - foreach($_COOKIE as $key => $value) - { - $_COOKIE[$this->clean_input_keys($key)] = $this->clean_input_data($value); - } - } - else - { - $_COOKIE = array(); - } - - // Just make REQUEST a merge of POST and GET. Who really wants cookies in it anyway? - $_REQUEST = array_merge($_GET, $_POST); - - - self::$instance = $this; - } - } - - /** - * Cross site filtering (XSS). Recursive. - * - * @param string Data to be cleaned - * @return mixed - */ - public function xss_clean($data) - { - // If its empty there is no point cleaning it :\ - if(empty($data)) - return $data; - - // Recursive loop for arrays - if(is_array($data)) - { - foreach($data as $key => $value) - { - $data[$key] = $this->xss_clean($data); - } - - return $data; - } - - // Fix &entity\n; - $data = str_replace(array('&','<','>'), array('&','<','>'), $data); - $data = preg_replace('/(&#*\w+)[\x00-\x20]+;/u', '$1;', $data); - $data = preg_replace('/(&#x*[0-9A-F]+);*/iu', '$1;', $data); - $data = html_entity_decode($data, ENT_COMPAT, 'UTF-8'); - - // Remove any attribute starting with "on" or xmlns - $data = preg_replace('#(<[^>]+?[\x00-\x20"\'])(?:on|xmlns)[^>]*+>#iu', '$1>', $data); - - // Remove javascript: and vbscript: protocols - $data = preg_replace('#([a-z]*)[\x00-\x20]*=[\x00-\x20]*([`\'"]*)[\x00-\x20]*j[\x00-\x20]*a[\x00-\x20]*v[\x00-\x20]*a[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iu', '$1=$2nojavascript...', $data); - $data = preg_replace('#([a-z]*)[\x00-\x20]*=([\'"]*)[\x00-\x20]*v[\x00-\x20]*b[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iu', '$1=$2novbscript...', $data); - $data = preg_replace('#([a-z]*)[\x00-\x20]*=([\'"]*)[\x00-\x20]*-moz-binding[\x00-\x20]*:#u', '$1=$2nomozbinding...', $data); - - // Only works in IE: - $data = preg_replace('#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'"]*.*?expression[\x00-\x20]*\([^>]*+>#i', '$1>', $data); - $data = preg_replace('#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'"]*.*?behaviour[\x00-\x20]*\([^>]*+>#i', '$1>', $data); - $data = preg_replace('#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'"]*.*?s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:*[^>]*+>#iu', '$1>', $data); - - // Remove namespaced elements (we do not need them) - $data = preg_replace('#]*+>#i', '', $data); - - do - { - // Remove really unwanted tags - $old_data = $data; - $data = preg_replace('#]*+>#i', '', $data); - } - while ($old_data !== $data); - - return $data; - } - - /** - * Enforces W3C specifications to prevent malicious exploitation. - * - * @param string Key to clean - * @return string - */ - protected function clean_input_keys($data) - { - $chars = PCRE_UNICODE_PROPERTIES ? '\pL' : 'a-zA-Z'; - - if ( ! preg_match('#^[' . $chars . '0-9:_.-]++$#uD', $data)) - { - exit('Illegal key characters in global data'); - } - - return $data; - } - - /** - * Escapes data. - * - * @param mixed Data to clean - * @return mixed - */ - protected function clean_input_data($data) - { - if(is_array($data)) - { - $new_array = array(); - foreach($data as $key => $value) - { - $new_array[$this->clean_input_keys($key)] = $this->clean_input_data($value); - } - - return $new_array; - } - - if($this->magic_quotes_gpc === TRUE) - { - // Get rid of those pesky magic quotes! - $data = stripslashes($data); - } - - $data = $this->xss_clean($data); - - return $data; - } -} -?> \ No newline at end of file diff --git a/Security/index.php b/Security/index.php deleted file mode 100644 index b5bb52b8..00000000 --- a/Security/index.php +++ /dev/null @@ -1,4 +0,0 @@ - \ No newline at end of file diff --git a/Templates/Build/1.tpl b/Templates/Build/1.tpl deleted file mode 100644 index 535619a7..00000000 --- a/Templates/Build/1.tpl +++ /dev/null @@ -1,53 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id]+1+$loopsame+$doublebuild+$master; - if($village->capital == 1) { - if($next<=20){ - ?> - - - - - - - - - - - - - - - - - - - - -
:resarray['f'.$id]]['prod']* SPEED; ?>
:
:
:
:
- -

diff --git a/Templates/Build/10.tpl b/Templates/Build/10.tpl deleted file mode 100644 index ebe51fd6..00000000 --- a/Templates/Build/10.tpl +++ /dev/null @@ -1,38 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - - -isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id]+1+$loopsame+$doublebuild+$master; - if($next<=20){ - ?> - - - - - - - -
resarray['f'.$id]]['attri']*STORAGE_MULTIPLIER; ?>
: 20:
- -

diff --git a/Templates/Build/11.tpl b/Templates/Build/11.tpl deleted file mode 100644 index 0ea0d379..00000000 --- a/Templates/Build/11.tpl +++ /dev/null @@ -1,39 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - - - -isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id]+1+$loopsame+$doublebuild+$master; - if($next<=20){ - ?> - - - - - - - -
resarray['f'.$id]]['attri']*STORAGE_MULTIPLIER; ?>
: 20:
- -

diff --git a/Templates/Build/14.tpl b/Templates/Build/14.tpl deleted file mode 100644 index 52e2ff77..00000000 --- a/Templates/Build/14.tpl +++ /dev/null @@ -1,37 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id]+1+$loopsame+$doublebuild+$master; - if($next <= 20){ - ?> - - - - - - - -
resarray['f'.$id] > 0 ? $bid14[$village->resarray['f'.$id]]['attri'] : 100; ?>
: 20:
- -

diff --git a/Templates/Build/15.tpl b/Templates/Build/15.tpl deleted file mode 100644 index 279fa6de..00000000 --- a/Templates/Build/15.tpl +++ /dev/null @@ -1,41 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id] + 1 + $loopsame + $doublebuild + $master; - if($next <= 20){ - ?> - - - - - - - -
resarray['f'.$id] > 0 ? round($bid15[$village->resarray['f'.$id]]['attri']) : 300; ?>
: 20:
- -resarray['f'.$id] >= 10){ - include("Templates/Build/15_1.tpl"); -} -include("upgrade.tpl"); -?> -

diff --git a/Templates/Build/15_1.tpl b/Templates/Build/15_1.tpl deleted file mode 100644 index 3940231b..00000000 --- a/Templates/Build/15_1.tpl +++ /dev/null @@ -1,123 +0,0 @@ -delDemolition($village->wid); - header("Location: build.php?gid=15&ty=$ty&cancel=0&demolish=0"); - exit; -} - -if($session->alliance) $memberCount = $database->countAllianceMembers($session->alliance); -else $memberCount = 0; - -if(!empty($_REQUEST["demolish"]) && $_REQUEST["c"] == $session->mchecker) { - if($_REQUEST["type"] != null && ($_REQUEST["type"] >= 19 && $_REQUEST["type"] <= 40 || $_REQUEST["type"] == 99)) { - $type = $_REQUEST['type']; - $demolish_permitted = $database->addDemolition($village->wid,$type); - if ($demolish_permitted === true) { - $session->changeChecker(); - header("Location: build.php?gid=15&ty=$type&cancel=0&demolish=0"); - } - else header("Location: build.php?gid=15&ty=$type&nodemolish=".$demolish_permitted); - exit; - } -} - -if($village->resarray['f'.$id] >= DEMOLISH_LEVEL_REQ) { - echo "

".DEMOLITION_BUILDING.""; - $VillageResourceLevels = $database->getResourceLevel($village->wid); - $DemolitionProgress = $database->getDemolition($village->wid); - if (!empty($DemolitionProgress)) { - $Demolition = $DemolitionProgress[0]; - echo ""; - echo "cancel "; - echo "".DEMOLITION_OF." ".$building->procResType($VillageResourceLevels['f'.$Demolition['buildnumber'].'t']).": ".$generator->getTimeFormat($Demolition['timetofinish']-time()).""; - if($session->gold >= 2) { - ?> - Finish all construction and research orders in this village immediately for 2 Gold? - "; -} else { - if (isset($_GET['nodemolish'])) { - switch ($_GET['nodemolish']) { - case 18: - echo '

- Because you are the leader of your alliance, demolition of your current Embassy cannot be started, - since it still holds all of your '.$memberCount.' alliance members. - You can, however quit the alliance, while selecting a new leader - in the "quit alliance" form, then continue the demolition. -

'; - break; - } - } - - echo " -
mchecker."\" method=\"POST\" style=\"display:inline\"> -
"; -} -} -?> - - \ No newline at end of file diff --git a/Templates/Build/16.tpl b/Templates/Build/16.tpl deleted file mode 100644 index cdaa2729..00000000 --- a/Templates/Build/16.tpl +++ /dev/null @@ -1,315 +0,0 @@ -unitarray = $database->getUnit($village->wid, false); -} -?>
- -

resarray['f'.$id]; ?> -

-

- -resarray['f39'] > 0){ - include_once ("16_menu.tpl"); - $units_type = $database->getMovement(34, $village->wid, 1); - $settlers = $database->getMovement(7, $village->wid, 1); - $oasis_incoming = 0; - $array = $database->getOasis($village->wid); - foreach($array as $conqured) $oasis_incoming += count($database->getMovement(6, $conqured['wref'], 0)); - - $units_incoming = count($units_type); - $settlers_incoming = count($settlers); - for($i = 0; $i < $units_incoming; $i++){ - if($units_type[$i]['attack_type'] == 1 && $units_type[$i]['sort_type'] == 3) $units_incoming -= 1; - } - if($units_incoming > 0 || $settlers_incoming > 0 || $oasis_incoming > 0){ - ?> -

()

- - -

- - - - - - - - - - -
vname; ?> - -
- enforcetome) > 0){ - foreach($village->enforcetome as $enforce){ - $colspan = 10 + $enforce['hero']; - if($enforce['from'] != 0){ - echo " -"; - $tribe = $database->getUserField($database->getVillageField($enforce['from'], "owner"), "tribe", 0); - $start = ($tribe - 1) * 10 + 1; - $end = ($tribe * 10); - echo ""; - for($i = $start; $i <= ($end); $i++){ - echo ""; - } - if($enforce['hero'] != 0){ - echo ""; - } - echo ""; - for($i = $start; $i <= ($start + 9); $i++){ - if($enforce['u'.$i] == 0){ - echo ""; - } - if($enforce['hero'] != 0){ - echo ""; - } - echo " -"; - echo "
-getMapCheck($enforce['from'])."\">".$database->getVillageField($enforce['from'], "name").""; - if(LANG == "es"){ - echo "getVillageField($enforce['from'], "owner")."\">".TROOPSFROM." ".$database->getUserField($database->getVillageField($enforce['from'], "owner"), "username", 0)." "; - }else{ - echo "getVillageField($enforce['from'], "owner")."\">".$database->getUserField($database->getVillageField($enforce['from'], "owner"), "username", 0)." ".TROOPSFROM.""; - } - echo "
 getUnitName($i)."\" alt=\"".$technology->getUnitName($i)."\" />\"Hero\"
".TROOPS.""; - }else{ - echo ""; - } - echo $enforce['u'.$i]."".$enforce['hero']."
".UPKEEP."
".$technology->getUpkeep($enforce, $tribe)."\"Crop\"".PER_HR."
"; - }else{ - echo " -"; - $tribe = 4; - $start = ($tribe - 1) * 10 + 1; - $end = ($tribe * 10); - echo ""; - for($i = $start; $i <= ($end); $i++){ - echo ""; - } - if($enforce['hero'] != 0){ - echo ""; - } - echo ""; - for($i = $start; $i <= ($start + 9); $i++){ - if($enforce['u'.$i] == 0){ - echo ""; - } - if($enforce['hero'] != 0){ - echo ""; - } - echo " -"; - echo "
-".TASKMASTER.""; - echo " ".VILLAGE_OF_THE_ELDERS_TROOPS.""; - echo "
 getUnitName($i)."\" alt=\"".$technology->getUnitName($i)."\" />\"Hero\"
".TROOPS.""; - }else{ - echo ""; - } - echo $enforce['u'.$i]."".$enforce['hero']."
".UPKEEP."
".$technology->getUpkeep($enforce, $tribe)."\"Crop\"".PER_HR."
".SEND_BACK."
"; - } - } - } - $enforcevill = array(); - $enforceoasis = array(); - $allenforce = $village->enforcetoyou; - $enforcemeoasis = $village->enforceoasis; - if(count($allenforce) > 0){ - foreach($allenforce as $enforce){ - $conquredvid = $database->getOasisField($enforce['vref'], "conqured"); - if($conquredvid > 0){ - $enforce['conqured'] = $conquredvid; - array_push($enforceoasis, $enforce); - }else{ - array_push($enforcevill, $enforce); - } - } - } - if(count($enforcemeoasis) > 0){ - foreach($enforcemeoasis as $enforce){ - array_push($enforceoasis, $enforce); - } - } - if(count($enforcevill) > 0){ - echo "

".TROOPS_IN_OTHER_VILLAGE."

"; - foreach($enforcevill as $enforce){ - $colspan = 10 + $enforce['hero']; - echo " -"; - $tribe = $database->getUserField($database->getVillageField($enforce['from'], "owner"), "tribe", 0); - $start = ($tribe - 1) * 10 + 1; - $end = ($tribe * 10); - echo ""; - for($i = $start; $i <= ($end); $i++){ - echo ""; - } - if($enforce['hero'] != 0){ - echo ""; - } - echo ""; - for($i = $start; $i <= ($start + 9); $i++){ - if($enforce['u'.$i] == 0){ - echo ""; - } - if($enforce['hero'] != 0){ - echo ""; - } - echo " -"; - echo "
-getMapCheck($enforce['from'])."\">".$database->getVillageField($enforce['from'], "name").""; - echo "getMapCheck($enforce['vref'])."\">".REINFORCEMENTFOR." ".$database->getVillageField($enforce['vref'], "name")." "; - echo "
 getUnitName($i)."\" alt=\"".$technology->getUnitName($i)."\" />\"Hero\"
".TROOPS.""; - }else{ - echo ""; - } - echo $enforce['u'.$i]."".$enforce['hero']."
".UPKEEP."
".$technology->getUpkeep($enforce, $tribe)."\"Crop\"".PER_HR."
"; - } - } - if(count($enforceoasis) > 0){ - echo "

".TROOPS_IN_OASIS."

"; - foreach($enforceoasis as $enforce){ - $colspan = 10 + $enforce['hero']; - echo " -"; - $tribe = $database->getUserField($database->getVillageField($enforce['from'], "owner"), "tribe", 0); - $start = ($tribe - 1) * 10 + 1; - $end = ($tribe * 10); - echo ""; - for($i = $start; $i <= ($end); $i++){ - echo ""; - } - if($enforce['hero'] != 0){ - echo ""; - } - echo ""; - for($i = $start; $i <= ($start + 9); $i++){ - if($enforce['u'.$i] == 0){ - echo ""; - } - if($enforce['hero'] != 0){ - echo ""; - } - echo " -"; - echo "
-getMapCheck($enforce['vref'])."\">".$database->getVillageField($enforce['conqured'], "name").""; - if(LANG == "es"){ - echo "getVillageField($enforce['from'], "owner")."\">".TROOPSFROM." ".$database->getUserField($database->getVillageField($enforce['from'], "owner"), "username", 0)." ".FROM." getMapCheck($enforce['from'])."\">".$database->getVillageField($enforce['from'], "name").""; - }else{ - echo "getVillageField($enforce['from'], "owner")."\">".$database->getUserField($database->getVillageField($enforce['from'], "owner"), "username", 0)." ".TROOPSFROM." ".FROM." getMapCheck($enforce['from'])."\">".$database->getVillageField($enforce['from'], "name").""; - } - echo "
 getUnitName($i)."\" alt=\"".$technology->getUnitName($i)."\" />\"Hero\"
".TROOPS.""; - }else{ - echo ""; - } - echo $enforce['u'.$i]."".$enforce['hero']."
".UPKEEP."
".$technology->getUpkeep($enforce, $tribe)."\"Crop\"".PER_HR."
"; - } - } - if(count($database->getPrisoners3($village->wid)) > 0){ - echo "

".PRISONERS."

"; - foreach($database->getPrisoners3($village->wid) as $prisoners){ - $colspan = 10 + $prisoners['t11']; - $colspan2 = $colspan + 1; - echo " -"; - $tribe = $database->getUserField($database->getVillageField($prisoners['from'], "owner"), "tribe", 0); - $start = ($tribe - 1) * 10 + 1; - $end = ($tribe * 10); - echo ""; - for($i = $start; $i <= ($end); $i++){ - echo ""; - } - if($prisoners['t11'] != 0){ - echo ""; - } - echo ""; - for($i = 1; $i <= 10; $i++){ - if($prisoners['t'.$i] == 0){ - echo ""; - } - if($prisoners['t11'] > 0) echo ""; - echo " -"; - echo "
-getMapCheck($prisoners['wref'])."\">".$database->getVillageField($prisoners['wref'], "name").""; - echo "getMapCheck($prisoners['wref'])."\">".PRISONERSIN." ".$database->getVillageField($prisoners['wref'], "name").""; - echo "
 getUnitName($i)."\" alt=\"".$technology->getUnitName($i)."\" />\"Hero\"
".TROOPS.""; - }else - echo ""; - echo $prisoners['t'.$i]."".$prisoners['t11']."
".UPKEEP."
".$technology->getUpkeep($prisoners, $tribe, 0, 1)."\"Crop\"".PER_HR."
"; - } - } - if(count($database->getPrisoners($village->wid)) > 0){ - echo "

".PRISONERS."

"; - foreach($database->getPrisoners($village->wid) as $prisoners){ - $colspan = 10 + $prisoners['t11']; - $colspan2 = $colspan + 1; - echo " -"; - $tribe = $database->getUserField($database->getVillageField($prisoners['from'], "owner"), "tribe", 0); - $start = ($tribe - 1) * 10 + 1; - $end = ($tribe * 10); - echo ""; - for($i = $start; $i <= ($end); $i++){ - echo ""; - } - if($prisoners['t11'] != 0){ - echo ""; - } - echo ""; - for($i = 1; $i <= 10; $i++){ - if($prisoners['t'.$i] == 0){ - echo ""; - } - if($prisoners['t11'] > 0) echo ""; - - echo " -"; - echo "
-getMapCheck($prisoners['from'])."\">".$database->getVillageField($prisoners['from'], "name").""; - echo "getMapCheck($prisoners['from'])."\">".PRISONERSFROM." ".$database->getVillageField($prisoners['from'], "name").""; - echo "
 getUnitName($i)."\" alt=\"".$technology->getUnitName($i)."\" />\"Hero\"
".TROOPS.""; - }else - echo ""; - echo $prisoners['t'.$i]."".$prisoners['t11']."
\"Crop\"
"; - } - } - ?> - -getMovement(3, $village->wid, 0); - $settlers = $database->getMovement(5, $village->wid, 0); - $units_incoming = count($units_type); - for($i = 0; $i < $units_incoming; $i++){ - if($units_type[$i]['vref'] != $village->wid) $units_incoming -= 1; - } - $units_incoming += count($settlers); - - if($units_incoming >= 1){ - echo "

".TROOPS_ON_THEIR_WAY."

"; - include ("16_walking.tpl"); - } -} -else echo ''.RALLYPOINT_COMMENCE.'
'; - -include ("upgrade.tpl"); -?> -

-
\ No newline at end of file diff --git a/Templates/Build/16_99.tpl b/Templates/Build/16_99.tpl deleted file mode 100644 index 8e161902..00000000 --- a/Templates/Build/16_99.tpl +++ /dev/null @@ -1,60 +0,0 @@ -goldclub) include("Templates/Build/16.tpl"); -else -{ -?> -
-

resarray['f'.$id]; ?>

-

- - -
- -
-
- - - - - - - - - - - - - - - villages) - 1; $i++) { - $wref = $session->villages[$i]; - $vname = $database->getVillageField($wref, "name"); - $vchecked = $database->getVillageField($wref, "evasion"); - $reinf = $database->getEnforceVillage($wref, 0); - - if($vchecked == 1) $checked = 'checked'; - else $checked = ''; - ?> - - - - - - - getUserArray($session->uid, 1); - ?> - -
>
getUnitsNumber($wref); ?>
-
-
- - (: Gold2 ) -

- -
- \ No newline at end of file diff --git a/Templates/Build/16_incomming.tpl b/Templates/Build/16_incomming.tpl deleted file mode 100644 index 598836bc..00000000 --- a/Templates/Build/16_incomming.tpl +++ /dev/null @@ -1,328 +0,0 @@ -getMovement(34, $village->wid, 1); -$total_for = count($units); -$send = $database->getMovement(1, $village->wid, 1); -$total_for2 = count($send); -$artifactsSum = $database->getArtifactsSumByKind($session->uid, $village->wid, 3); -for($y = 0; $y < $total_for; $y++){ - $session->timer++; - if($units[$y]['sort_type'] == 3){ - if($units[$y]['attack_type'] == 2) $actionType = REINFORCEMENTFOR; - elseif($units[$y]['attack_type'] == 3) $actionType = ATTACK_ON; - elseif($units[$y]['attack_type'] == 4) $actionType = RAID_ON; - - $reinfowner = $database->getVillageField($units[$y]['from'], "owner"); - if($units[$y]['attack_type'] != 1){ - if($units[$y]['from'] != 0){ - if($units[$y]['t11'] > 0 && $reinfowner == $session->uid) $colspan = 11; - else $colspan = 10; - - echo " - "; - $tribe = $database->getUserField($database->getVillageField($units[$y]['from'], "owner"), "tribe", 0); - $start = ($tribe - 1) * 10 + 1; - $end = ($tribe * 10); - echo ""; - for($i = $start; $i <= ($end); $i++){ - echo ""; - } - if($units[$y]['t11'] != 0 && $reinfowner == $session->uid){ - echo ""; - } - echo ""; - for($i = 1; $i <= $colspan; $i++){ - $totalunits = $units[$y]['t1'] + $units[$y]['t2'] + $units[$y]['t3'] + $units[$y]['t4'] + $units[$y]['t5'] + $units[$y]['t6'] + $units[$y]['t7'] + $units[$y]['t8'] + $units[$y]['t9'] + $units[$y]['t10'] + $units[$y]['t11']; - if($units[$y]['attack_type'] == 2){ - if($reinfowner != $session->uid) echo ""; - else - { - if($units[$y]['t'.$i] == 0) echo ""; - else - { - echo ""; - } - } - }else{ - if($artifactsSum['totals'] == 0) echo ""; - else - { - if($units[$y]['t'.$i] == 0) echo ""; - else echo ""; - } - } - } - echo ""; - echo ' - - - - - - "; - echo "
- getMapCheck($units[$y]['from'])."\">".$database->getVillageField($units[$y]['from'], "name").""; - echo "getMapCheck($units[$y]['to'])."\">".$actionType." ".$database->getVillageField($units[$y]['to'], "name").""; - echo "
 getUnitName($i)."\" alt=\"".$technology->getUnitName($i)."\" />\"Hero\"
".TROOPS."?0"; - echo $units[$y]['t'.$i]."?0?
'.ARRIVAL.' -
timer.'>'.$generator->getTimeFormat($units[$y]['endtime'] - time()).' h
'; - $datetime = $generator->procMtime($units[$y]['endtime']); - echo "
"; - if($datetime[0] != "today") echo "".ON." ".$datetime[0]." "; - echo "".AT." ".$datetime[1]." ".HRS."
- -
"; - }else{ - echo " - "; - $tribe = 4; - $start = ($tribe - 1) * 10 + 1; - $end = ($tribe * 10); - echo ""; - for($i = $start; $i <= ($end); $i++){ - echo ""; - } - echo ""; - for($i = 1; $i <= 10; $i++){ - echo ""; - } - echo ""; - echo ' - - - - - - "; - echo "
- village of the elders"; - echo "".VILLAGE_OF_THE_ELDERS_TROOPS.""; - echo "
 getUnitName($i)."\" alt=\"".$technology->getUnitName($i)."\" />
".TROOPS."?
'.ARRIVAL.' -
timer.'>'.$generator->getTimeFormat($units[$y]['endtime'] - time()).' h
'; - $datetime = $generator->procMtime($units[$y]['endtime']); - echo "
"; - if($datetime[0] != "today") echo "".ON." ".$datetime[0]." "; - echo "".AT." ".$datetime[1]."
- -
"; - } - } - }else if($units[$y]['sort_type'] == 4){ - $actionType = RETURNFROM; - - $isoasis = $database->isVillageOases($units[$y]['from']); - if($isoasis == 0) $from = $database->getMInfo($units[$y]['from']); - else $from = $database->getOMInfo($units[$y]['from']); - - $to = $database->getMInfo($units[$y]['vref']); - ?> - - - - - - - - - - tribe; - $start = ($tribe - 1) * 10 + 1; - $end = ($tribe * 10); - echo ""; - for($i = $start; $i <= ($end); $i++){ - echo ""; - } - if($units[$y]['t11'] != 0){ - echo ""; - } - ?> - - - - 0"; - else - { - echo ""; - } - } - ?> - - - 0){ - ?> - - - - - - - - - - - - - - -
vname; ?>
 getUnitName($i)."\" alt=\"".$technology->getUnitName($i)."\" />\"Hero\"
"; - echo $units[$y]['t'.$i]."
- \"Lumber\"".$units[$y]['wood']." | \"Clay\"".$units[$y]['clay']." | \"Iron\"".$units[$y]['iron']." | \"Crop\"".$units[$y]['crop'].""; - echo "
\"carry\"".$totalres."/".$totalcarry."
"; - ?> -
- timer.">".$generator->getTimeFormat($units[$y]['endtime'] - time())." h"; - $datetime = $generator->procMtime($units[$y]['endtime']); - echo "
"; - if($datetime[0] != "today") echo "".ON." ".$datetime[0]." "; - echo "".AT." ".$datetime[1]."
"; - ?> - -
-getOasis($village->wid); -foreach($array as $conqured){ - $oasis = $database->getMovement("6", $conqured['wref'], 0); - $total_for = count($oasis); - for($y = 0; $y < $total_for; $y++){ - $session->timer++; - $to = $database->getOMInfo($oasis[$y]['to']); - if($oasis[$y]['attack_type'] == 2) $actionType = REINFORCEMENTFOR; - else if($oasis[$y]['attack_type'] == 3) $actionType = ATTACK_ON; - else if($oasis[$y]['attack_type'] == 4) $actionType = RAID_ON; - - $reinfowner = $database->getVillageField($oasis[$y]['from'], "owner"); - if($oasis[$y]['t11'] != 0 && $reinfowner == $session->uid) $colspan = 11; - else $colspan = 10; - - echo " - "; - $tribe = $database->getUserField($reinfowner, "tribe", 0); - $start = ($tribe - 1) * 10 + 1; - $end = ($tribe * 10); - echo ""; - for($i = $start; $i <= ($end); $i++){ - echo ""; - } - if($oasis[$y]['t11'] != 0 && $reinfowner == $session->uid){ - echo ""; - } - echo ""; - for($i = 1; $i <= $colspan; $i++){ - $totalunits = $oasis[$y]['t1'] + $oasis[$y]['t2'] + $oasis[$y]['t3'] + $oasis[$y]['t4'] + $oasis[$y]['t5'] + $oasis[$y]['t6'] + $oasis[$y]['t7'] + $oasis[$y]['t8'] + $oasis[$y]['t9'] + $oasis[$y]['t10'] + $oasis[$y]['t11']; - if($oasis[$y]['attack_type'] == 2){ - if($reinfowner != $session->uid) echo ""; - else - { - if($oasis[$y]['t'.$i] == 0) echo ""; - else - { - echo ""; - } - } - }else{ - if($artifactsSum['totals'] == 0) echo ""; - else - { - if($oasis[$y]['t'.$i] == 0) echo ""; - else echo ""; - } - } - } - echo ""; - echo ' - - - - - - "; - echo "
- getMapCheck($oasis[$y]['from'])."\">".$database->getVillageField($oasis[$y]['from'], "name").""; - echo "getMapCheck($oasis[$y]['to'])."\">".$actionType." ".$to['name'].""; - echo "
 getUnitName($i)."\" alt=\"".$technology->getUnitName($i)."\" />\"Hero\"
".TROOPS."?0"; - echo $oasis[$y]['t'.$i]."?0?
'.ARRIVAL.' -
timer.'>'.$generator->getTimeFormat($oasis[$y]['endtime'] - time()).' h
'; - $datetime = $generator->procMtime($oasis[$y]['endtime']); - echo "
"; - if($datetime[0] != "today") echo "".ON." ".$datetime[0]." "; - echo "".AT." ".$datetime[1]." ".HRS."
- -
"; - } -} - -$settlers = $database->getMovement(7, $village->wid, 1); -$total_for3 = count($settlers); -for($x = 0; $x < $total_for3; $x++){ - $session->timer++; - $to = $database->getMInfo($settlers[$x]['to']); - ?> - - - - - - - - - tribe; - $start = ($tribe - 1) * 10 + 1; - $end = ($tribe * 10); - echo ""; - for($i = $start; $i <= ($end); $i++){ - echo ""; - } - ?> - - - - 0"; - else - { - echo ""; - } - } - ?> - - - - - - - - - -
vname; ?>
 getUnitName($i)."\" alt=\"".$technology->getUnitName($i)."\" />
"; - echo $settlers[$x]['t'.$i]."
- timer.">".$generator->getTimeFormat($settlers[$x]['endtime'] - time())." h"; - $datetime = $generator->procMtime($settlers[$x]['endtime']); - echo "
"; - if($datetime[0] != "today") echo "".ON." ".$datetime[0]." "; - echo "".AT." ".$datetime[1]."
"; - ?> - -
- \ No newline at end of file diff --git a/Templates/Build/16_menu.tpl b/Templates/Build/16_menu.tpl deleted file mode 100644 index edf1c3c3..00000000 --- a/Templates/Build/16_menu.tpl +++ /dev/null @@ -1,8 +0,0 @@ -
- goldclub)) echo "class=\"selected\""; ?> > | - | - - goldclub == 1){ ?>| - >Gold Club - -
\ No newline at end of file diff --git a/Templates/Build/16_troops.tpl b/Templates/Build/16_troops.tpl deleted file mode 100644 index 61929035..00000000 --- a/Templates/Build/16_troops.tpl +++ /dev/null @@ -1,34 +0,0 @@ - tribe; - $start = ($tribe-1)*10+1; - $end = ($tribe*10); - echo " "; - for($i=$start;$i<=($end);$i++) { - echo "getUnitName($i)."\" alt=\"".$technology->getUnitName($i)."\" />"; - } - if($village->unitarray['hero'] != 0) { - echo "\"Hero\""; - } - - ?> - - unitarray['u'.$i] == 0) { - echo ""; - } - else { - echo ""; - } - echo $village->unitarray['u'.$i].""; - } - - if($village->unitarray['hero'] != 0) { - echo ""; - echo $village->unitarray['hero'].""; - } - - ?> - - - ">getUpkeep($village->unitarray,0); ?>Crop diff --git a/Templates/Build/16_walking.tpl b/Templates/Build/16_walking.tpl deleted file mode 100644 index 626a8e72..00000000 --- a/Templates/Build/16_walking.tpl +++ /dev/null @@ -1,168 +0,0 @@ -getMovement(3,$village->wid,0); -$total_for = count($units); - -for($y=0;$y<$total_for;$y++){ -$session->timer++; - -if($units[$y]['attack_type'] == 2){ - $attack_type = REINFORCEMENTFOR; - } -if($units[$y]['attack_type'] == 1){ - $attack_type = SCOUTING; - } -if($units[$y]['attack_type'] == 3){ - $attack_type = ATTACK_ON; - } -if($units[$y]['attack_type'] == 4){ - $attack_type = RAID_ON; - } -$isoasis = $database->isVillageOases($units[$y]['to']); -if ($isoasis ==0){ -$to = $database->getMInfo($units[$y]['to']); -} else { -$to = $database->getOMInfo($units[$y]['to']);} -?> - - - - - - - - - "; - for($i=($session->tribe-1)*10+1;$i<=$session->tribe*10;$i++) { - echo ""; - } - if($units[$y]['t11'] != 0) { - echo ""; - } - ?> - - - "; - } - else { - echo ""; - } - ?> - - 0 && $units[$y]['attack_type'] == 3 && !$database->isVillageOases($units[$y]['to'])){ ?> - - - - - - - - - - - - - - -
vname; ?>">
 getUnitName($i)."\" alt=\"".$technology->getUnitName($i)."\" />\"Hero\"
"; - } - echo $units[$y]['t'.$i]."
- - "> - -
"> - timer>".$generator->getTimeFormat($units[$y]['endtime']-time())." h"; - $datetime = $generator->procMtime($units[$y]['endtime']); - echo "
"; - if($datetime[0] != "today") { - echo "".ON." ".$datetime[0]." "; - } - echo "".AT." ".$datetime[1]."
"; - if (($units[$y]['starttime']+90)>time()){ - ?> - - - -
- - - getMovement(5,$village->wid,0); - if($settlers){ - $total_for = count($settlers); - -for($y=0;$y<$total_for;$y++){ - $session->timer++; - -?> - - - - - - - - - tribe; - $start = ($tribe-1)*10+1; - $end = ($tribe*10); - echo ""; - for($i=$start;$i<=($end);$i++) { - echo ""; - } - ?> - - - 0"; - } - else { - echo ""; - } - } - ?> - - - - - - - -
vname; ?>
 getUnitName($i)."\" alt=\"".$technology->getUnitName($i)."\" />
"; - echo $units[$y]['t'.$i]."
"> - timer>".$generator->getTimeFormat($settlers[$y]['endtime']-time())." h"; - $datetime = $generator->procMtime($settlers[$y]['endtime']); - echo "
"; - if($datetime[0] != "today") { - echo "".ON." ".$datetime[0]." "; - } - echo "".AT." ".$datetime[1]."
"; - if (($settlers[$y]['starttime']+90)>time()){ - ?> - - - -
- diff --git a/Templates/Build/17.tpl b/Templates/Build/17.tpl deleted file mode 100644 index 0ff76ad7..00000000 --- a/Templates/Build/17.tpl +++ /dev/null @@ -1,307 +0,0 @@ -
-

resarray['f'.$id]; ?>

-

-

- - - - -getVilWref($_POST['x'],$_POST['y']); - $checkexist = $database->checkVilExist($getwref); -} -else if(!empty($_POST['dname'])){ - $getwref = $database->getVillageByName($_POST['dname']); - $checkexist = $database->checkVilExist($getwref); -} -if(isset($checkexist) && $checkexist){ -$villageOwner = $database->getVillageField($getwref,'owner'); -$userAccess = $database->getUserField($villageOwner,'access',0); -$userVacation = $database->getUserField($villageOwner,'vac_mode',0); -$userID = $database->getUserField($villageOwner,'id',0); -} -$maxcarry = $market->maxcarry; -$maxcarry *= $market->merchantAvail(); -if(isset($_POST['ft'])=='check' && (($_POST['send3'] > 1 && $_POST['send3'] <= 3 && $session->goldclub) || $_POST['send3'] == 1) && $getwref != $village->wid && $allres!=0 && $allres <= $maxcarry && ($_POST['x']!="" && $_POST['y']!="" or $_POST['dname']!="") && $checkexist && ($userAccess == 2 || $userAccess == MULTIHUNTER || (ADMIN_ALLOW_INCOMING_RAIDS && $userAccess == ADMIN)) && $userVacation == 0){ -?> -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Lumber / maxcarry; ?>
Clay / maxcarry; ?>
Iron - / maxcarry; ?>
Crop - / maxcarry; ?>
- - - - getVilWref($_POST['x'],$_POST['y']); - $getvilname = $database->getVillageField($getwref, "name"); - $getvilowner = $database->getVillageField($getwref, "owner"); - $getvilcoor['y'] = $_POST['y']; - $getvilcoor['x'] = $_POST['x']; - $time = $generator->procDistanceTime($getvilcoor, $village->coor, $session->tribe, 0); - } - else if(!empty($_POST['dname'])){ - $getwref = $database->getVillageByName($_POST['dname']); - $getvilcoor = $database->getCoor($getwref); - $getvilname = $database->getVillageField($getwref, "name"); - $getvilowner = $database->getVillageField($getwref, "owner"); - $time = $generator->procDistanceTime($getvilcoor, $village->coor, $session->tribe, 0); - } - ?> - - - - - - - - - - - - - - - - - - - -
:(|)
:getUserField($getvilowner,'username',0); ?>
:getTimeFormat($time); ?>
:maxcarry); ?>
-
- -
-

-

merchantAvail()) { echo "DISABLED"; }?>/>

- -
- - - - - - - - - - - - - - - - - - - - - - -
- Lumber - - : - - - - (maxcarry; ?>) -
- Clay - - : - - - - (maxcarry; ?>) -
- Iron - - : - - - - (maxcarry; ?>) -
- Crop - - : - - - - (maxcarry; ?>) -
- - - - - - - - - - -getCoor($_GET['z']); -} -else{ -$coor['x'] = ""; -$coor['y'] = ""; -} -?> - - -
merchantAvail(); ?>/merchant; ?>
- : - -
- X: - Y: -
-
-goldclub == 1){?> -

- - - -

merchantAvail()) { echo "DISABLED"; }?>/>

-returnErrors() > 0) $error = ''.$form->getError("error").''; - elseif(!$checkexist){ - $error = ''.NO_COORDINATES_SELECTED.''; - }elseif($getwref == $village->wid){ - $error = ''.CANNOT_SEND_RESOURCES.''; - }elseif($_POST['send3'] < 1 || $_POST['send3'] > 3 || ($_POST['send3'] > 1 && !$session->goldclub)){ - $error = ''.INVALID_MERCHANTS_REPETITION.''; - }elseif($userAccess == '0' or ($userAccess == MULTIHUNTER && $userID == 5) or (!ADMIN_ALLOW_INCOMING_RAIDS && $userAccess == ADMIN)){ - $error = ''.BANNED_CANNOT_SEND_RESOURCES.'.'; - }elseif($_POST['r1']==0 && $_POST['r2']==0 && $_POST['r3']==0 && $_POST['r4']==0){ - $error = ''.RESOURCES_NO_SELECTED.'.'; - }elseif($userVacation == '1') { - $error = 'Player is on vacation mode. You cannot send resources to him.'; - }elseif(!$_POST['x'] && !$_POST['y'] && !$_POST['dname']){ - $error = ''.ENTER_COORDINATES.'.'; - }elseif($allres > $maxcarry){ - $error = ''.TOO_FEW_MERCHANTS.'.'; - } - echo $error; -} -?> -

- -

maxcarry; ?>

-recieving) > 0) { -echo "

".MERCHANT_COMING.":

"; - foreach($market->recieving as $recieve) { - echo ""; - $villageowner = $database->getVillageField($recieve['from'],"owner"); - echo ""; - echo ""; - echo ""; - echo "
".$database->getUserField($villageowner,"username",0)."getMapCheck($recieve['from'])."\">".TRANSPORT_FROM." ".$database->getVillageField($recieve['from'],"name")."
".ARRIVAL_IN.""; - echo "
timer.">".$generator->getTimeFormat($recieve['endtime']-time())." h
"; - $datetime = $generator->procMtime($recieve['endtime']); - echo "
"; - if($datetime[0] != "today") { - echo "".ON." ".$datetime[0]." "; - } - echo "".AT." ".$datetime[1]."
"; - echo "
".RESOURCES." "; - echo "\"Lumber\"".$recieve['wood']." | \"Clay\"".$recieve['clay']." | \"Iron\"".$recieve['iron']." | \"Crop\"".$recieve['crop']."
"; - } -} -if(count($market->sending) > 0) { - echo "

".OWN_MERCHANTS_ONWAY.":

"; - foreach($market->sending as $send) { - $villageowner = $database->getVillageField($send['to'],"owner"); - $ownername = $database->getUserField($villageowner,"username",0); - echo ""; - echo ""; - echo ""; - echo ""; - echo "
$ownernamegetMapCheck($send['to'])."\">".TRANSPORT_TO." ".$database->getVillageField($send['to'],"name")."
".ARRIVAL_IN." "; - echo "
timer.">".$generator->getTimeFormat($send['endtime']-time())." h
"; - $datetime = $generator->procMtime($send['endtime']); - echo "
"; - if($datetime[0] != "today") { - echo "".ON." ".$datetime[0]." "; - } - echo "".AT." ".$datetime[1]."
"; - echo "
".RESOURCES.""; - echo "\"Lumber\"".$send['wood']." | \"Clay\"".$send['clay']." | \"Iron\"".$send['iron']." | \"Crop\"".$send['crop']."
"; - } -} -if(count($market->return) > 0) { - echo "

".MERCHANTS_RETURNING.":

"; - foreach($market->return as $return) { - $villageowner = $database->getVillageField($return['from'],"owner"); - $ownername = $database->getUserField($villageowner,"username",0); - echo ""; - echo ""; - echo ""; - echo ""; - echo "
$ownernamegetMapCheck($return['from'])."\">".RETURNFROM." ".$database->getVillageField($return['from'],"name")."
".ARRIVAL_IN." "; - echo "
timer.">".$generator->getTimeFormat($return['endtime']-time())." h
"; - $datetime = $generator->procMtime($return['endtime']); - echo "
"; - if($datetime[0] != "today") { - echo "".ON." ".$datetime[0]." "; - } - echo "".AT." ".$datetime[1]."
"; - echo "
"; - } -} -include("upgrade.tpl"); -?> -

diff --git a/Templates/Build/17_1.tpl b/Templates/Build/17_1.tpl deleted file mode 100644 index 86be9343..00000000 --- a/Templates/Build/17_1.tpl +++ /dev/null @@ -1,146 +0,0 @@ - - -
-

resarray['f'.$id]; ?>

-

-

- -plus) { -?> - - - - - - - - - -
>Lumber>Clay>Iron>Crop
- - - - - -
>1:1
>1:x
- - - - - - - - - -
>Lumber>Clay>Iron>Crop
- -
-".NOT_ENOUGH_RESOURCES."

"; -} -elseif(isset($_GET['e2'])) -{ - echo "

".INVALID_OFFER."

"; -} -elseif(isset($_GET['e3'])) -{ - echo "

".NOT_ENOUGH_MERCHANTS."

"; -} -?> - - - - - - - - - - - -onsale) > 0) { -for($i=0+$u;$i<=40+$u;$i++) { -if(isset($market->onsale[$i])) { -echo ""; - echo ""; - if(($market->onsale[$i]['wtype'] == 1 && $village->awood <= $market->onsale[$i]['wamt']) ||($market->onsale[$i]['wtype'] == 2 && $village->aclay <= $market->onsale[$i]['wamt']) ||($market->onsale[$i]['wtype'] == 3 && $village->airon <= $market->onsale[$i]['wamt']) ||($market->onsale[$i]['wtype'] == 4 && $village->acrop <= $market->onsale[$i]['wamt'])) { - echo ""; - } - else if($reqMerc > $market->merchantAvail()) { - echo ""; - } - else if($session->access != BANNED){ - echo ""; - }else{ - echo ""; - } - echo""; - } -} -} -else { -echo ""; -} -?> - -
"; -$reqMerc = 1; -if($market->onsale[$i]['wamt'] > $market->maxcarry) { - $reqMerc = round($market->onsale[$i]['wamt']/$market->maxcarry); - if($market->onsale[$i]['wamt'] > $market->maxcarry*$reqMerc) { - $reqMerc += 1; - } - } -switch($market->onsale[$i]['gtype']) { - case 1: echo "\"Wood\""; break; - case 2: echo "\"Clay\""; break; - case 3: echo "\"Iron\""; break; - case 4: echo "\"Crop\""; break; - } - echo $market->onsale[$i]['gamt']; - echo " "; - switch($market->onsale[$i]['wtype']) { - case 1: echo "\"Wood\""; break; - case 2: echo "\"Clay\""; break; - case 3: echo "\"Iron\""; break; - case 4: echo "\"Crop\""; break; - } - echo $market->onsale[$i]['wamt']; - echo "getVillageField($market->onsale[$i]['vref'],"name")."\">"; - echo "onsale[$i]['vref']."&c=".$generator->getMapCheck($market->onsale[$i]['vref'])."\">".$database->getUserField($database->getVillageField($market->onsale[$i]['vref'],"owner"),"username",0)."".$generator->getTimeFormat($market->onsale[$i]['duration'])."".NOT_ENOUGH_RESOURCES."
".NOT_ENOUGH_MERCHANTS."
mchecker."&g=".$market->onsale[$i]['id']."\">Accept offer".ACCEP_OFFER."
".NO_AVAILABLE_OFFERS."
- -onsale) < 40) { - echo "«»"; - } - else if (!isset($_GET['u']) && count($market->onsale) > 40) { - echo "«&t=1&u=40\">»"; - } - else if(isset($_GET['u']) && count($market->onsale) > $_GET['u']) { - if(count($market->onsale) > ($_GET['u']+40) && $_GET['u']-40 < count($market->onsale) && $_GET['u'] != 0) { - echo "&t=1&u=".($_GET['u']-40)."\">«&t=1&u=".($_GET['u']+40)."\">»"; - } - else if(count($market->onsale) > $_GET['u']+40) { - echo "«&t=1&u=".($_GET['u']+40)."\">»"; - } - else { - echo "&t=1&u=".($_GET['u']-40)."\">«»"; - } - } -?> -
\ No newline at end of file diff --git a/Templates/Build/17_2.tpl b/Templates/Build/17_2.tpl deleted file mode 100644 index ab1df9ba..00000000 --- a/Templates/Build/17_2.tpl +++ /dev/null @@ -1,125 +0,0 @@ -
-

resarray['f'.$id]; ?>

-

- - -
- - - - - - - - - - - - - - - - -
- - :
- - - userinfo['alliance'] != 0) - { - echo " ".OWN_ALLIANCE_ONLY.""; - } - ?> -
- - ".NOT_ENOUGH_RESOURCES."

"; - } - elseif(isset($_GET['e2'])) - { - echo "

".INVALID_OFFER."

"; - } - elseif(isset($_GET['e3'])) - { - echo "

".NOT_ENOUGH_MERCHANTS."

"; - } - - echo "

Merchants: ".$market->merchantAvail()."/".$market->merchant."

"; - ?> - merchantAvail()) { echo "DISABLED"; }?>/>

-
-onmarket) > 0) -{ - echo ""; - foreach($market->onmarket as $offer) - { - if($session->access != BANNED) - { - echo ""; - echo ""; - echo ""; - } - echo "
".OWN_OFFERS."
 ".OFFER."ratio".SEARCH."".MERCHANT."".ALLIANCE."".DURATION."
\"Delete\""; - } - else - { - echo "
\"Delete\""; - } - switch($offer['gtype']) - { - case 1: echo "\"Wood\""; break; - case 2: echo "\"Clay\""; break; - case 3: echo "\"Iron\""; break; - case 4: echo "\"Crop\""; break; - } - echo $offer['gamt']; - $sss = ($offer['wamt']/$offer['gamt']); - $ratio = round($sss, 1); - if($ratio <= 1){ - $class = 'red'; - }elseif($ratio > 1 && $ratio < 2){ - $class = 'orange'; - }elseif($ratio >= 2){ - $class = 'green'; - } - echo " ".$ratio." "; - switch($offer['wtype']) - { - case 1: echo "\"Wood\""; break; - case 2: echo "\"Clay\""; break; - case 3: echo "\"Iron\""; break; - case 4: echo "\"Crop\""; break; - } - echo $offer['wamt']; - echo "".$offer['merchant']." "; - echo ($offer['alliance'] == 0)? 'No' : 'Yes'; - echo ""; - if($offer['maxtime'] != 0) - { - echo $offer['maxtime']/3600; - echo " hrs."; - } - else - { - echo "".ALL.""; - } - echo "
"; -} -?> -
diff --git a/Templates/Build/17_3.tpl b/Templates/Build/17_3.tpl deleted file mode 100644 index 9da79ff6..00000000 --- a/Templates/Build/17_3.tpl +++ /dev/null @@ -1,271 +0,0 @@ -gold > 2){ ?> -
-

resarray['f'.$id]; ?>

-

-

- - - -

. 3Gold

- - - -

- - - - -
- - - - getResourceLevel($village->wid); - if($wwvillage['f99t']!=40){ - ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Lumber - awood); ?> - - Clay - aclay); ?> - - Iron - airon); ?> - - Crop - acrop); ?> - awood+$village->acrop+$village->airon+$village->aclay); ?>
- /> - - - /> - - - /> - - - /> - -
- awood); ?> - - aclay); ?> - - airon); ?> - - acrop); ?> - - awood+$village->acrop+$village->airon+$village->aclay)-($_GET['r1']+$_GET['r2']+$_GET['r3']+$_GET['r4']); - } else { echo floor($village->awood+$village->acrop+$village->airon+$village->aclay); } ?>
-

- userinfo['gold'] >= 3) { ?>) (: Gold3)".TRADE_RESOURCES.") (".COSTS.": Gold3)"; }?>

-

-
- - - -

- -
- \ No newline at end of file diff --git a/Templates/Build/17_4.tpl b/Templates/Build/17_4.tpl deleted file mode 100644 index 1f335e37..00000000 --- a/Templates/Build/17_4.tpl +++ /dev/null @@ -1,73 +0,0 @@ -goldclub == 1 && count($database->getProfileVillages($session->uid)) > 1) { ?> -
-

resarray['f'.$id]; ?>

-

-

- -gold > 1){ -$routeaccess = 1; -include("17_create.tpl"); -}else if($_POST['action'] == 'editRoute' && isset($_POST['routeid']) && !empty($_POST['routeid']) && $database->getTradeRouteUid($_POST['routeid']) == $session->uid){ -include("17_edit.tpl"); -}else{ -?> - -

Gold2.

-
- - - - - - - - - -getTradeRoute($village->wid); - if(empty($routes)) { - echo ""; - }else{ -foreach($routes as $route){ -?> - - - - - - - - - - -
".NO_TRADE_ROUTES.".
-getMapCheck($route['wid']).">".$database->getVillageField($route['wid'],"name").""; -?> - 9){ echo $route['start'];}else{ echo "0".$route['start'];} echo ":00"; ?>
- - - - | - | -
-
- * Gold2 -
-
- » -
-
- - diff --git a/Templates/Build/17_create.tpl b/Templates/Build/17_create.tpl deleted file mode 100644 index 78defb60..00000000 --- a/Templates/Build/17_create.tpl +++ /dev/null @@ -1,78 +0,0 @@ -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- : - - -
- : - Lumber Clay Iron Crop -
- : - -
- : - -
- : - Gold 2 -
- : - 7 -
- -
-
-

-
- \ No newline at end of file diff --git a/Templates/Build/17_edit.tpl b/Templates/Build/17_edit.tpl deleted file mode 100644 index f6d4ef40..00000000 --- a/Templates/Build/17_edit.tpl +++ /dev/null @@ -1,40 +0,0 @@ -getTradeRoute2($_POST['routeid']); ?> -
-
- - - - - - - - - - - - - - - - - - - - - -
- : - Lumber Clay Iron Crop -
- : - -
- : - -
- -
-
-

-
- \ No newline at end of file diff --git a/Templates/Build/17_menu.tpl b/Templates/Build/17_menu.tpl deleted file mode 100644 index 354b5347..00000000 --- a/Templates/Build/17_menu.tpl +++ /dev/null @@ -1,17 +0,0 @@ -
- "> - | > - | > - userinfo['gold'] > 2) { - ?> - | > - - goldclub == 1 && count($database->getProfileVillages($session->uid)) > 1) { - ?> - | > - -
\ No newline at end of file diff --git a/Templates/Build/19.tpl b/Templates/Build/19.tpl deleted file mode 100644 index 14163255..00000000 --- a/Templates/Build/19.tpl +++ /dev/null @@ -1,59 +0,0 @@ -
-

resarray['f'.$id]; ?>

-

- -getTypeLevel(19) > 0) { ?> -
- - - - - - - - -
-

- ".TRAINING_COMMENCE_BARRACKS."

\n"; - } - $trainlist = $technology->getTrainingList(1); - if(count($trainlist) > 0) { - echo " - - - - - - - "; - $TrainCount = 0; - foreach($trainlist as $train) { - $TrainCount++; - echo " -
".TRAINING."".DURATION."".FINISHED."
"; - echo "\"".$train['name']."\""; - echo $train['amt']." ".$train['name'].""; - if ($TrainCount == 1 ) { - $NextFinished = $generator->getTimeFormat($train['timestamp2']-time()); - echo "timer.">".$generator->getTimeFormat($train['timestamp']-time()).""; - } else { - echo $generator->getTimeFormat($train['eachtime']*$train['amt']); - } - echo ""; - $time = $generator->procMTime($train['timestamp']); - if($time[0] != "today") { - echo "on ".$time[0]." at "; - } - echo $time[1]; - } ?> -
- -

\ No newline at end of file diff --git a/Templates/Build/19_train.tpl b/Templates/Build/19_train.tpl deleted file mode 100644 index 641fe1fd..00000000 --- a/Templates/Build/19_train.tpl +++ /dev/null @@ -1,50 +0,0 @@ -tribe != 4){ - for ($i=($session->tribe-1)*10+1;$i<=($session->tribe-1)*10+4;$i++) { - if ($i <> 4 && $i <> 23 && $i <> 24 && ($technology->getTech($i) || $i%10 == 1)) { - -echo " -
-\"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" /> - ".$technology->getUnitName($i)." (".AVAILABLE.": ".$village->unitarray['u'.$i].") -
-
-\"Wood\"".(${'u'.$i}['wood'])."|\"Clay\"".(${'u'.$i}['clay'])."|\"Iron\"".(${'u'.$i}['iron'])."|\"Crop\"".(${'u'.$i}['crop'])."|\"Crop".${'u'.$i}['pop']."|\"Duration\""; -$dur = $database->getArtifactsValueInfluence($session->uid, $village->wid, 5, round(${'u'.$i}['time'] * ($bid19[$village->resarray['f'.$id]]['attri'] / 100) / SPEED)); -echo $generator->getTimeFormat($dur); - -//-- If available resources combined are not enough, remove NPC button -$total_required = (int)(${'u'.$i}['wood'] + ${'u'.$i}['clay'] + ${'u'.$i}['iron'] + ${'u'.$i}['crop']); - -if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) { - echo "|maxUnitPlus($i))."&r2=".((${'u'.$i}['clay'])*$technology->maxUnitPlus($i))."&r3=".((${'u'.$i}['iron'])*$technology->maxUnitPlus($i))."&r4=".((${'u'.$i}['crop'])*$technology->maxUnitPlus($i))."\" title=\"NPC trade\">\"NPC"; - } -echo "
- - -maxUnit($i,false)."; return false;\">(".$technology->maxUnit($i,false).")"; - } - } - }else{ - for ($i=31;$i<=40;$i++) { - -echo " -
-\"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" /> - ".$technology->getUnitName($i)." (".AVAILABLE.": ".$village->unitarray['u'.$i].") -
-
-\"Wood\"".(${'u'.$i}['wood'])."|\"Clay\"".(${'u'.$i}['clay'])."|\"Iron\"".(${'u'.$i}['iron'])."|\"Crop\"".(${'u'.$i}['crop'])."|\"Crop".${'u'.$i}['pop']."|\"Duration\""; -$dur = $database->getArtifactsValueInfluence($session->uid, $village->wid, 5, round(${'u'.$i}['time'] * ($bid19[$village->resarray['f'.$id]]['attri'] / 100) / SPEED)); -echo $generator->getTimeFormat($dur); - -if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1) { - echo "|maxUnitPlus($i))."&r2=".((${'u'.$i}['clay'])*$technology->maxUnitPlus($i))."&r3=".((${'u'.$i}['iron'])*$technology->maxUnitPlus($i))."&r4=".((${'u'.$i}['crop'])*$technology->maxUnitPlus($i))."\" title=\"NPC trade\">\"NPC"; - } -echo "
- - -maxUnit($i,false)."; return false;\">(".$technology->maxUnit($i,false).")"; - } - } -?> diff --git a/Templates/Build/2.tpl b/Templates/Build/2.tpl deleted file mode 100644 index 755674b3..00000000 --- a/Templates/Build/2.tpl +++ /dev/null @@ -1,55 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id]+1+$loopsame+$doublebuild+$master; - if($village->capital == 1) { - if($next<=20){ - ?> - - - - - - - - - - - - - - - - - - - - -
:resarray['f'.$id]]['prod']* SPEED; ?>
:
:
:
:
- -

- diff --git a/Templates/Build/20.tpl b/Templates/Build/20.tpl deleted file mode 100644 index d1a165c9..00000000 --- a/Templates/Build/20.tpl +++ /dev/null @@ -1,72 +0,0 @@ -
- -

resarray['f'.$id]; ?>

-


- -getTypeLevel(20) > 0) { ?> - -
- - - - - - - - - - - - tribe != 4){ - include("20_train.tpl"); - } - ?> - -
-

- -

- -
-".TRAINING_COMMENCE_STABLE."
\n"; - } - $trainlist = $technology->getTrainingList(2); - if(count($trainlist) > 0) { - echo " - - - - - - - "; - $TrainCount = 0; - foreach($trainlist as $train) { - $TrainCount++; - echo " -
".TRAINING."".DURATION."".FINISHED."
"; - echo "\"".$train['name']."\""; - echo $train['amt']." ".$train['name'].""; - if ($TrainCount == 1) { - $NextFinished = $generator->getTimeFormat($train['timestamp2']-time()); - echo "timer.">".$generator->getTimeFormat($train['timestamp']-time()).""; - } else { - echo $generator->getTimeFormat($train['eachtime']*$train['amt']); - } - echo ""; - $time = $generator->procMTime($train['timestamp']); - if($time[0] != "today") { - echo "on ".$time[0]." at "; - } - echo $time[1]; - } ?> -
- -

diff --git a/Templates/Build/20_train.tpl b/Templates/Build/20_train.tpl deleted file mode 100644 index 5bbde8e9..00000000 --- a/Templates/Build/20_train.tpl +++ /dev/null @@ -1,41 +0,0 @@ -tribe - 1) * 10 + 4 - (($session->tribe == 3) ? 1 : 0) + (($session->tribe == 2) ? 1 : 0); -$end = $session->tribe * 10 - 4; - -for($i = $start; $i <= $end; $i++) { - if($technology->getTech($i)) { - echo "
\"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" /> - ".$technology->getUnitName($i)." (".AVAILABLE.": ".$village->unitarray['u'.$i].")
"; - if(${'u'.$i}['drinking'] <= $building->getTypeLevel(41)) { - echo "
- \"Wood\"".${'u'.$i}['wood']."|\"Clay\"".${'u'.$i}['clay']."|\"Iron\"".${'u'.$i}['iron']."|\"Crop\"".${'u'.$i}['crop']."|\"Crop".(${'u'.$i}['pop']-1)."|\"Duration\""; -}else{ - echo "
- \"Wood\"".${'u'.$i}['wood']."|\"Clay\"".${'u'.$i}['clay']."|\"Iron\"".${'u'.$i}['iron']."|\"Crop\"".${'u'.$i}['crop']."|\"Crop".(${'u'.$i}['pop'])."|\"Duration\""; -} - $dur = $database->getArtifactsValueInfluence($session->uid, $village->wid, 5, round(${'u'.$i}['time'] * ($bid20[$village->resarray['f'.$id]]['attri'] / 100) * ($building->getTypeLevel(41)>=1?(1/$bid41[$building->getTypeLevel(41)]['attri']):1) / SPEED)); - echo $generator->getTimeFormat($dur); - - //-- If available resources combined are not enough, remove NPC button - $total_required = (int)(${'u'.$i}['wood'] + ${'u'.$i}['clay'] + ${'u'.$i}['iron'] + ${'u'.$i}['crop']); - - if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) { - echo "|maxUnitPlus($i))."&r2=".((${'u'.$i}['clay'])*$technology->maxUnitPlus($i))."&r3=".((${'u'.$i}['iron'])*$technology->maxUnitPlus($i))."&r4=".((${'u'.$i}['crop'])*$technology->maxUnitPlus($i))."\" title=\"NPC trade\">\"NPC"; - } - echo "
- - - - - - maxUnit($i)."; return false;\">(".$technology->maxUnit($i).") - - "; - $success += 1; - } -} -if($success == 0) { - echo "
".AVAILABLE_ACADEMY."
"; -} -?> diff --git a/Templates/Build/21.tpl b/Templates/Build/21.tpl deleted file mode 100644 index 525d0d63..00000000 --- a/Templates/Build/21.tpl +++ /dev/null @@ -1,114 +0,0 @@ -
- -

resarray['f'.$id]; ?>

-

-getTypeLevel(21) > 0) { ?> - -
- - - - - - - - - - - - tribe == 1)? 7 : (($session->tribe == 2)? 17 : 27); - if ($session->tribe == 1){ - $start = 7; - }else if ($session->tribe == 2){ - $start = 17; - }else if ($session->tribe == 3){ - $start = 27; - }else if ($session->tribe == 5){ - $start = 47; - } - if($session->tribe != 4){ - for($i=$start;$i<=($start+1);$i++) { - if($technology->getTech($i)) { - echo " - - - - "; - $success += 1; - } - } - if($success == 0) { - echo ""; - } - } - ?> - -
\"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" /> - ".$technology->getUnitName($i)." (".AVAILABLE.": ".$village->unitarray['u'.$i].")
"; - echo "
- \"Wood\"".${'u'.$i}['wood']."|\"Clay\"".${'u'.$i}['clay']."|\"Iron\"".${'u'.$i}['iron']."|\"Crop\"".${'u'.$i}['crop']."|\"Crop".${'u'.$i}['pop']."|\"Duration\""; - $dur = $database->getArtifactsValueInfluence($session->uid, $village->wid, 5, round(${'u'.$i}['time'] * ($bid21[$village->resarray['f'.$id]]['attri'] / 100) / SPEED)); - echo $generator->getTimeFormat($dur); - - //-- If available resources combined are not enough, remove NPC button - $total_required = (int)(${'u'.$i}['wood'] + ${'u'.$i}['clay'] + ${'u'.$i}['iron'] + ${'u'.$i}['crop']); - - if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) { - echo "|maxUnitPlus($i))."&r2=".((${'u'.$i}['clay'])*$technology->maxUnitPlus($i))."&r3=".((${'u'.$i}['iron'])*$technology->maxUnitPlus($i))."&r4=".((${'u'.$i}['crop'])*$technology->maxUnitPlus($i))."\" title=\"NPC trade\">\"NPC"; - } - echo "
- - - maxUnit($i)."; return false;\">(".$technology->maxUnit($i).") -
".AVAILABLE_ACADEMY."
-

- - -

-
-".TRAINING_COMMENCE_WORKSHOP."
\n"; - } - - $trainlist = $technology->getTrainingList(3); - if(count($trainlist) > 0) { - //$timer = 2*count($trainlist); - echo " - - - - - - - "; - $TrainCount = 0; - foreach($trainlist as $train) { - $TrainCount++; - echo " -
".TRAINING."".DURATION."".FINISHED."
"; - echo "\"".$train['name']."\""; - echo $train['amt']." ".$train['name'].""; - if ($TrainCount == 1 ) { - $NextFinished = $generator->getTimeFormat($train['timestamp2']-time()); - echo "timer.">".$generator->getTimeFormat($train['timestamp']-time()).""; - } else { - echo $generator->getTimeFormat($train['eachtime']*$train['amt']); - } - echo ""; - $time = $generator->procMTime($train['timestamp']); - if($time[0] != "today") { - echo "on ".$time[0]." at "; - } - echo $time[1]; - } ?> -
- -

- - diff --git a/Templates/Build/22.tpl b/Templates/Build/22.tpl deleted file mode 100644 index a41e86e4..00000000 --- a/Templates/Build/22.tpl +++ /dev/null @@ -1,17 +0,0 @@ -
-

resarray['f'.$id]; ?>

-

-getTypeLevel(22) > 0) { - include("22_".$session->tribe.".tpl"); - } else { - echo "

".RESEARCH_COMMENCE_ACADEMY."
\n"; - } - - include("upgrade.tpl"); -?> -

-
diff --git a/Templates/Build/22_1.tpl b/Templates/Build/22_1.tpl deleted file mode 100644 index 3bb7bb2e..00000000 --- a/Templates/Build/22_1.tpl +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - -grabAcademyRes(); -for($i=2;$i<=9;$i++) { - if($technology->meetRRequirement($i) && !$technology->getTech($i) && !$technology->isResearch($i,1)) { - echo ""; - echo ""; - } - else if(${'r'.$i}['crop'] > $village->maxcrop) { - echo "
".EXPAND_GRANARY1.""; - echo ""; - } - else if(${'r'.$i}['wood'] > $village->awood || ${'r'.$i}['clay'] > $village->aclay || ${'r'.$i}['iron'] > $village->airon || ${'r'.$i}['crop'] > $village->acrop) { - if($village->getProd("crop")>0){ - $time = $technology->calculateAvaliable(22,${'r'.$i}); - echo "
".ENOUGH_RESOURCES." ".$time[0]." at ".$time[1].""; - } else { - echo "
".CROP_NEGATIVE.""; - } - echo ""; - } - else if (count($acares) > 0) { - echo ""; - echo ""; - } - else if($session->access != BANNED){ - echo ""; - echo ""; - }else{ - echo ""; - echo ""; - } - $success += 1; - } - else { - $fail += 1; - } -} -if($success == 0) { -echo ""; -} -?> - -
-
- \"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" /> - ".$technology->getUnitName($i)." -
-
\"Lumber\"".${'r'.$i}['wood']."|\"Clay\"".${'r'.$i}['clay']."|\"Iron\"".${'r'.$i}['iron']."|\"Crop\"".${'r'.$i}['crop']."|\"duration\""; - echo $generator->getTimeFormat(round(${'r'.$i}['time'] * ($bid22[$village->resarray['f'.$id]]['attri'] / 100)/SPEED)); - - //-- If available resources combined are not enough, remove NPC button - $total_required = (int)(${'r'.$i}['wood'] + ${'r'.$i}['clay'] + ${'r'.$i}['iron'] + ${'r'.$i}['crop']); - if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) { - echo "|\"NPC"; - } - if(${'r'.$i}['wood'] > $village->maxstore || ${'r'.$i}['clay'] > $village->maxstore || ${'r'.$i}['iron'] > $village->maxstore) { - echo "
".EXPAND_WAREHOUSE1."
-
".EXPAND_WAREHOUSE."
-
-
".EXPAND_GRANARY."
-
".TOO_FEW_RESOURCES."
- ".RESEARCH_IN_PROGRESS."
- mchecker."\">".RESEARCH."
- ".RESEARCH."
".RESEARCH_AVAILABLE."
- 0) { - echo "

".SHOW_MORE."

- - "; - if(!$technology->meetRRequirement(2) && !$technology->getTech(2)) { - echo""; - } - if(!$technology->meetRRequirement(3) && !$technology->getTech(3)) { - echo""; - } - if(!$technology->meetRRequirement(4) && !$technology->getTech(4)) { - echo ""; - } - if(!$technology->meetRRequirement(5) && !$technology->getTech(5)) { - echo ""; - } - if(!$technology->meetRRequirement(6) && !$technology->getTech(6)) { - echo ""; - } - if(!$technology->meetRRequirement(7) && !$technology->getTech(7)) { - echo " - "; - } - if(!$technology->meetRRequirement(8) && !$technology->getTech(8)) { - echo " - "; - } - if(!$technology->meetRRequirement(9) && !$technology->getTech(9)) { - echo " "; - } - echo ""; - echo "
".PREREQUISITES."
".ACADEMY." -  ".LEVEL." 1
".ARMOURY."  ".LEVEL." 1
".ACADEMY." -  ".LEVEL." 5
".BLACKSMITH."  ".LEVEL." 1
- ".ACADEMY." ".LEVEL." 5
".STABLE." ".LEVEL." 1
- ".ACADEMY." ".LEVEL." 5
".STABLE." ".LEVEL." 5
- ".ACADEMY." ".LEVEL." 15
- ".STABLE." ".LEVEL." 10
".ACADEMY." -  ".LEVEL." 10
".WORKSHOP." ".LEVEL." 1
".WORKSHOP." -  ".LEVEL." 10
".ACADEMY." ".LEVEL." 15
- ".RALLYPOINT." ".LEVEL." 10
- ".ACADEMY." ".LEVEL." 20
"; -} -//$acares = $technology->grabAcademyRes(); -if(count($acares) > 0) { - echo " - "; - foreach($acares as $aca) { - $unit = substr($aca['tech'],1,2); - echo ""; - echo ""; - $date = $generator->procMtime($aca['timestamp']); - echo ""; - echo ""; - } - echo "
".RESEARCHING."".DURATION."".COMPLETE."
\"".$technology-getUnitName($unit)."\" title=\"".$technology->getUnitName($unit)."\" />".$technology->getUnitName($unit)."timer."\">".$generator->getTimeFormat($aca['timestamp']-time())."".$date[1]." hrs
"; -} -?> diff --git a/Templates/Build/22_2.tpl b/Templates/Build/22_2.tpl deleted file mode 100644 index f4ff9597..00000000 --- a/Templates/Build/22_2.tpl +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - -grabAcademyRes(); -for($i=12;$i<=19;$i++) { - if($technology->meetRRequirement($i) && !$technology->getTech($i) && !$technology->isResearch($i,1)) { - echo ""; - echo ""; - } - else if(${'r'.$i}['crop'] > $village->maxcrop) { - echo "
".EXPAND_GRANARY1.""; - echo ""; - } - else if(${'r'.$i}['wood'] > $village->awood || ${'r'.$i}['clay'] > $village->aclay || ${'r'.$i}['iron'] > $village->airon || ${'r'.$i}['crop'] > $village->acrop) { - if($village->getProd("crop")>0){ - $time = $technology->calculateAvaliable(22,${'r'.$i}); - echo "
".ENOUGH_RESOURCES." ".$time[0]." at ".$time[1].""; - } else { - echo "
".CROP_NEGATIVE.""; - } - echo ""; - } - else if ( count($acares) > 0 ) { - echo ""; - echo ""; - } - else if($session->access != BANNED){ - echo ""; - echo ""; - }else{ - echo ""; - echo ""; - } - $success += 1; - } - else { - $fail += 1; - } -} -if($success == 0) { -echo ""; -} -?> - -
-
- \"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" /> - ".$technology->getUnitName($i)." -
-
\"Lumber\"".${'r'.$i}['wood']."|\"Clay\"".${'r'.$i}['clay']."|\"Iron\"".${'r'.$i}['iron']."|\"Crop\"".${'r'.$i}['crop']."|\"duration\""; - echo $generator->getTimeFormat(round(${'r'.$i}['time'] * ($bid22[$village->resarray['f'.$id]]['attri'] / 100)/SPEED)); - - //-- If available resources combined are not enough, remove NPC button - $total_required = (int)(${'r'.$i}['wood'] + ${'r'.$i}['clay'] + ${'r'.$i}['iron'] + ${'r'.$i}['crop']); - if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) { - echo "|\"NPC"; - } - if(${'r'.$i}['wood'] > $village->maxstore || ${'r'.$i}['clay'] > $village->maxstore || ${'r'.$i}['iron'] > $village->maxstore) { - echo "
".EXPAND_WAREHOUSE1."
-
".EXPAND_WAREHOUSE."
-
-
".EXPAND_GRANARY."
-
".TOO_FEW_RESOURCES."
- ".RESEARCH_IN_PROGRESS."
- mchecker."\">".RESEARCH."
- ".RESEARCH."
".RESEARCH_AVAILABLE."
- 0) { - echo "

".SHOW_MORE."

- - "; - if(!$technology->meetRRequirement(13) && !$technology->getTech(13)) { - echo""; - } - if(!$technology->meetRRequirement(14) && !$technology->getTech(14)) { - echo ""; - } - if(!$technology->meetRRequirement(15) && !$technology->getTech(15)) { - echo ""; - } - if(!$technology->meetRRequirement(16) && !$technology->getTech(16)) { - echo ""; - } - if(!$technology->meetRRequirement(17) && !$technology->getTech(17)) { - echo " - "; - } - if(!$technology->meetRRequirement(18) && !$technology->getTech(18)) { - echo " - "; - } - if(!$technology->meetRRequirement(19) && !$technology->getTech(19)) { - echo " "; - } - echo " "; - echo "
".PREREQUISITES."
".ACADEMY." - ".LEVEL." 3
".BLACKSMITH." ".LEVEL." 1
- ".ACADEMY." ".LEVEL." 1
".MAINBUILDING." - ".LEVEL." 5
- ".ACADEMY." ".LEVEL." 5
".STABLE." - ".LEVEL." 5
- ".ACADEMY." ".LEVEL." 15
- ".STABLE." ".LEVEL." 10
\"Ram\" - Ram
".ACADEMY." - ".LEVEL." 10
".WORKSHOP." ".LEVEL." 1
".WORKSHOP." - ".LEVEL." 10
".ACADEMY." ".LEVEL." 15
- ".RALLYPOINT." ".LEVEL." 5
- Academy ".LEVEL." 20
"; -} -//$acares = $technology->grabAcademyRes(); -if(count($acares) > 0) { - echo " - "; - foreach($acares as $aca) { - $unit = substr($aca['tech'],1,2); - echo ""; - echo ""; - $date = $generator->procMtime($aca['timestamp']); - echo ""; - echo ""; - } - echo "
".RESEARCHING."".DURATION."".COMPLETE."
\"".$technology-getUnitName($unit)."\" title=\"".$technology->getUnitName($unit)."\" />".$technology->getUnitName($unit)."timer."\">".$generator->getTimeFormat($aca['timestamp']-time())."".$date[1]." hrs
"; -} -?> diff --git a/Templates/Build/22_3.tpl b/Templates/Build/22_3.tpl deleted file mode 100644 index 8fb6ffa0..00000000 --- a/Templates/Build/22_3.tpl +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - -grabAcademyRes(); -for($i=22;$i<=29;$i++) { - if($technology->meetRRequirement($i) && !$technology->getTech($i) && !$technology->isResearch($i,1)) { - echo ""; - echo ""; - } - else if(${'r'.$i}['crop'] > $village->maxcrop) { - echo "
".EXPAND_GRANARY1.""; - echo ""; - } - else if(${'r'.$i}['wood'] > $village->awood || ${'r'.$i}['clay'] > $village->aclay || ${'r'.$i}['iron'] > $village->airon || ${'r'.$i}['crop'] > $village->acrop) { - if($village->getProd("crop")>0){ - $time = $technology->calculateAvaliable(22,${'r'.$i}); - echo "
".ENOUGH_RESOURCES." ".$time[0]." at ".$time[1].""; - } else { - echo "
".CROP_NEGATIVE.""; - } - echo ""; - } - else if ( count($acares) > 0 ) { - echo ""; - echo ""; - } - else if($session->access != BANNED){ - echo ""; - echo ""; - }else{ - echo ""; - echo ""; - } - $success +=1; - } - else { - $fail += 1; - } -} -if($success == 0) { -echo ""; -} -?> -
-
- \"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" /> - ".$technology->getUnitName($i)." -
-
\"Lumber\"".${'r'.$i}['wood']."|\"Clay\"".${'r'.$i}['clay']."|\"Iron\"".${'r'.$i}['iron']."|\"Crop\"".${'r'.$i}['crop']."|\"duration\""; - echo $generator->getTimeFormat(round(${'r'.$i}['time'] * ($bid22[$village->resarray['f'.$id]]['attri'] / 100)/SPEED)); - //-- If available resources combined are not enough, remove NPC button - $total_required = (int)(${'r'.$i}['wood'] + ${'r'.$i}['clay'] + ${'r'.$i}['iron'] + ${'r'.$i}['crop']); - if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) { - echo "|\"NPC"; - } - if(${'r'.$i}['wood'] > $village->maxstore || ${'r'.$i}['clay'] > $village->maxstore || ${'r'.$i}['iron'] > $village->maxstore) { - echo "
".EXPAND_WAREHOUSE1."
-
".EXPAND_WAREHOUSE."
-
-
".EXPAND_GRANARY."
-
".TOO_FEW_RESOURCES."
- ".RESEARCH_IN_PROGRESS."
- mchecker."\">".RESEARCH."
- ".RESEARCH."
".RESEARCH_AVAILABLE."
- 0) { - echo "

".SHOW_MORE."

- - "; - if(!$technology->meetRRequirement(22) && !$technology->getTech(22)) { - echo""; - } - if(!$technology->meetRRequirement(23) && !$technology->getTech(23)) { - echo""; - } - if(!$technology->meetRRequirement(24) && !$technology->getTech(24)) { - echo ""; - } - if(!$technology->meetRRequirement(25) && !$technology->getTech(25)) { - echo ""; - } - if(!$technology->meetRRequirement(26) && !$technology->getTech(26)) { - echo ""; - } - if(!$technology->meetRRequirement(27) && !$technology->getTech(27)) { - echo " - "; - } - if(!$technology->meetRRequirement(28) && !$technology->getTech(28)) { - echo " - "; - } - if(!$technology->meetRRequirement(29) && !$technology->getTech(29)) { - echo " "; - } - echo " "; - echo "
".PREREQUISITES."
".ACADEMY." -  ".LEVEL." 3
".BLACKSMITH."  ".LEVEL." 1
".ACADEMY." -  ".LEVEL." 5
".STABLE."  ".LEVEL." 1
- ".ACADEMY." ".LEVEL." 5
".STABLE." -  ".LEVEL." 3
- ".ACADEMY." ".LEVEL." 5
".STABLE." -  ".LEVEL." 5
- ".ACADEMY." ".LEVEL." 15
- ".STABLE." ".LEVEL." 10
\"Ram\" - Ram
".ACADEMY." -  ".LEVEL." 10
".WORKSHOP." ".LEVEL." 1
".WORKSHOP." -  ".LEVEL." 10
".ACADEMY." ".LEVEL." 15
- ".RALLYPOINT." ".LEVEL." 10
- ".ACADEMY." ".LEVEL." 20
"; -} -$acares = $technology->grabAcademyRes(); -if(count($acares) > 0) { - echo " - "; - foreach($acares as $aca) { - $unit = substr($aca['tech'],1,2); - echo ""; - echo ""; - $date = $generator->procMtime($aca['timestamp']); - echo ""; - echo ""; - } - echo "
".RESEARCHING."".DURATION."".COMPLETE."
\"".$technology-getUnitName($unit)."\" title=\"".$technology->getUnitName($unit)."\" />".$technology->getUnitName($unit)."timer."\">".$generator->getTimeFormat($aca['timestamp']-time())."".$date[1]." hrs
"; -} -?> diff --git a/Templates/Build/22_4.tpl b/Templates/Build/22_4.tpl deleted file mode 100644 index e97e1148..00000000 --- a/Templates/Build/22_4.tpl +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - -grabAcademyRes(); -for($i=32;$i<=39;$i++) { - if($technology->meetRRequirement($i) && !$technology->getTech($i) && !$technology->isResearch($i,1)) { - echo ""; - echo ""; - } - else if(${'r'.$i}['crop'] > $village->maxcrop) { - echo "
".EXPAND_GRANARY1.""; - echo ""; - } - else if(${'r'.$i}['wood'] > $village->awood || ${'r'.$i}['clay'] > $village->aclay || ${'r'.$i}['iron'] > $village->airon || ${'r'.$i}['crop'] > $village->acrop) { - $time = $technology->calculateAvaliable($i); - echo "
".ENOUGH_RESOURCES." ".$time[0]." at ".$time[1].""; - echo ""; - } - else if ( count($acares) > 0 ) { - echo ""; - echo ""; - } - else if($session->access != BANNED){ - echo ""; - echo ""; - }else{ - echo ""; - echo ""; - } - $success += 1; - } - else { - $fail += 1; - } -} -if($success == 0) { -echo ""; -} -?> - -
-
- \"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" /> - ".$technology->getUnitName($i)." -
-
\"Lumber\"".${'r'.$i}['wood']."|\"Clay\"".${'r'.$i}['clay']."|\"Iron\"".${'r'.$i}['iron']."|\"Crop\"".${'r'.$i}['crop']."|\"duration\""; - echo $generator->getTimeFormat(round(${'r'.$i}['time'] * ($bid22[$village->resarray['f'.$id]]['attri'] / 100)/SPEED)); - //-- If available resources combined are not enough, remove NPC button - $total_required = (int)(${'r'.$i}['wood'] + ${'r'.$i}['clay'] + ${'r'.$i}['iron'] + ${'r'.$i}['crop']); - if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) { - echo "|\"NPC"; - } - if(${'r'.$i}['wood'] > $village->maxstore || ${'r'.$i}['clay'] > $village->maxstore || ${'r'.$i}['iron'] > $village->maxstore) { - echo "
".EXPAND_WAREHOUSE1."
-
".EXPAND_WAREHOUSE."
-
-
".EXPAND_GRANARY."
-
-
".TOO_FEW_RESOURCES."
-
- ".RESEARCH_IN_PROGRESS."
- mchecker."\">".RESEARCH."
- ".RESEARCH."
".RESEARCH_AVAILABLE."
- 0) { - echo "

".SHOW_MORE."

- - "; - if(!$technology->meetRRequirement(33) && !$technology->getTech(33)) { - echo""; - } - if(!$technology->meetRRequirement(34) && !$technology->getTech(34)) { - echo ""; - } - if(!$technology->meetRRequirement(35) && !$technology->getTech(35)) { - echo ""; - } - if(!$technology->meetRRequirement(36) && !$technology->getTech(36)) { - echo ""; - } - if(!$technology->meetRRequirement(17) && !$technology->getTech(17)) { - echo " - "; - } - if(!$technology->meetRRequirement(38) && !$technology->getTech(38)) { - echo " - "; - } - if(!$technology->meetRRequirement(39) && !$technology->getTech(39)) { - echo " "; - } - echo " "; - echo "
".PREREQUISITES."
".ACADEMY." - ".LEVEL." 3
".BLACKSMITH." ".LEVEL." 1
- ".ACADEMY." ".LEVEL." 1
".MAINBUILDING." - ".LEVEL." 5
- ".ACADEMY." ".LEVEL." 5
".STABLE." - ".LEVEL." 5
- ".ACADEMY." ".LEVEL." 15
- ".STABLE." ".LEVEL." 10
".ACADEMY." - ".LEVEL." 10
".WORKSHOP." ".LEVEL." 1
".WORKSHOP." - ".LEVEL." 10
".ACADEMY." ".LEVEL." 15
- ".RALLYPOINT." ".LEVEL." 5
- ".ACADEMY." ".LEVEL." 20
"; -} -//$acares = $technology->grabAcademyRes(); -if(count($acares) > 0) { - echo " - "; - foreach($acares as $aca) { - $unit = substr($aca['tech'],1,2); - echo ""; - echo ""; - $date = $generator->procMtime($aca['timestamp']); - echo ""; - echo ""; - } - echo "
".RESEARCHING."".DURATION."".COMPLETE."
\"".$technology-getUnitName($unit)."\" title=\"".$technology->getUnitName($unit)."\" />".$technology->getUnitName($unit)."timer."\">".$generator->getTimeFormat($aca['timestamp']-time())."".$date[1]." hrs
"; -} -?> diff --git a/Templates/Build/22_5.tpl b/Templates/Build/22_5.tpl deleted file mode 100644 index 4c102a96..00000000 --- a/Templates/Build/22_5.tpl +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - -grabAcademyRes(); -for($i=42;$i<=49;$i++) { - if($technology->meetRRequirement($i) && !$technology->getTech($i) && !$technology->isResearch($i,1)) { - echo ""; - echo ""; - } - else if(${'r'.$i}['crop'] > $village->maxcrop) { - echo "
".EXPAND_GRANARY1.""; - echo ""; - } - else if(${'r'.$i}['wood'] > $village->awood || ${'r'.$i}['clay'] > $village->aclay || ${'r'.$i}['iron'] > $village->airon || ${'r'.$i}['crop'] > $village->acrop) { - $time = $technology->calculateAvaliable($i); - echo "
".ENOUGH_RESOURCES." ".$time[0]." at ".$time[1].""; - echo ""; - } - else if ( count($acares) > 0 ) { - echo ""; - echo ""; - } - else { - echo ""; - echo ""; - } - $success += 1; - } - else { - $fail += 1; - } -} -if($success == 0) { -echo ""; -} -?> - -
-
- \"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" /> - ".$technology->getUnitName($i)." -
-
\"Lumber\"".${'r'.$i}['wood']."|\"Clay\"".${'r'.$i}['clay']."|\"Iron\"".${'r'.$i}['iron']."|\"Crop\"".${'r'.$i}['crop']."|\"duration\""; - echo $generator->getTimeFormat(round(${'r'.$i}['time'] * ($bid22[$village->resarray['f'.$id]]['attri'] / 100)/SPEED)); - //-- If available resources combined are not enough, remove NPC button - $total_required = (int)(${'r'.$i}['wood'] + ${'r'.$i}['clay'] + ${'r'.$i}['iron'] + ${'r'.$i}['crop']); - if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) { - echo "|\"NPC"; - } - if(${'r'.$i}['wood'] > $village->maxstore || ${'r'.$i}['clay'] > $village->maxstore || ${'r'.$i}['iron'] > $village->maxstore) { - echo "
".EXPAND_WAREHOUSE1."
-
".EXPAND_WAREHOUSE."
-
-
".EXPAND_GRANARY."
-
-
".TOO_FEW_RESOURCES."
-
- ".RESEARCH_IN_PROGRESS."
- mchecker."\">".RESEARCH."
".RESEARCH_AVAILABLE."
- 0) { - echo "

".SHOW_MORE."

- - "; - if(!$technology->meetRRequirement(43) && !$technology->getTech(43)) { - echo""; - } - if(!$technology->meetRRequirement(44) && !$technology->getTech(44)) { - echo ""; - } - if(!$technology->meetRRequirement(45) && !$technology->getTech(45)) { - echo ""; - } - if(!$technology->meetRRequirement(46) && !$technology->getTech(46)) { - echo ""; - } - if(!$technology->meetRRequirement(47) && !$technology->getTech(47)) { - echo " - "; - } - if(!$technology->meetRRequirement(48) && !$technology->getTech(48)) { - echo " - "; - } - if(!$technology->meetRRequirement(49) && !$technology->getTech(49)) { - echo " "; - } - echo " "; - echo "
".PREREQUISITES."
".ACADEMY." - ".LEVEL." 3
".BLACKSMITH." ".LEVEL." 1
- ".ACADEMY." ".LEVEL." 1
".MAINBUILDING." - ".LEVEL." 5
- ".ACADEMY." ".LEVEL." 5
".STABLE." - ".LEVEL." 5
- ".ACADEMY." ".LEVEL." 15
- ".STABLE." ".LEVEL." 10
".ACADEMY." - ".LEVEL." 10
".WORKSHOP." ".LEVEL." 1
".WORKSHOP." - ".LEVEL." 10
".ACADEMY." ".LEVEL." 15
- ".RALLYPOINT." ".LEVEL." 5
- ".ACADEMY." ".LEVEL." 20
"; -} -//$acares = $technology->grabAcademyRes(); -if(count($acares) > 0) { - echo " - "; - foreach($acares as $aca) { - $unit = substr($aca['tech'],1,2); - echo ""; - echo ""; - $date = $generator->procMtime($aca['timestamp']); - echo ""; - echo ""; - } - echo "
".RESEARCHING."".DURATION."".COMPLETE."
\"".$technology-getUnitName($unit)."\" title=\"".$technology->getUnitName($unit)."\" />".$technology->getUnitName($unit)."timer."\">".$generator->getTimeFormat($aca['timestamp']-time())."".$date[1]." hrs
"; -} -?> diff --git a/Templates/Build/23.tpl b/Templates/Build/23.tpl deleted file mode 100644 index 80cdbc21..00000000 --- a/Templates/Build/23.tpl +++ /dev/null @@ -1,27 +0,0 @@ -tribe == 3) ? 2 : 1) * CRANNY_CAPACITY; -$actualLevel = $village->resarray['f'.$id]; -$level = min($actualLevel + 1 + $loopsame + $doublebuild + $master, 10); -?> -
-

resarray['f'.$id]; ?>

-

- - - - - - - - - - - -
getArtifactsValueInfluence($session->uid, $village->wid, 7, $bid23[$village->resarray['f'.$id]]['attri'] * $multiplier); ?>
:getArtifactsValueInfluence($session->uid, $village->wid, 7, $bid23[$level]['attri'] * $multiplier); ?>
- -
\ No newline at end of file diff --git a/Templates/Build/25.tpl b/Templates/Build/25.tpl deleted file mode 100644 index e71ffd2e..00000000 --- a/Templates/Build/25.tpl +++ /dev/null @@ -1,26 +0,0 @@ -

resarray['f'.$id]; ?>

-

- -

- -capital == 1) { - echo "

".CAPITAL."

"; -} - -include("25_menu.tpl"); - -if($village->resarray['f'.$id] >= 10){ - include ("25_train.tpl"); -} -else{ - echo '
'.RESIDENCE_TRAIN_DESC.'
'; -} - -include("upgrade.tpl"); -?> -
diff --git a/Templates/Build/25_2.tpl b/Templates/Build/25_2.tpl deleted file mode 100644 index fa9320ab..00000000 --- a/Templates/Build/25_2.tpl +++ /dev/null @@ -1,28 +0,0 @@ -

resarray['f'.$id]; ?>

-

- -

- - - -

- - - - -getVillageField($village->wid, 'natar') == 0){ ?> - - - - - - - - - -
getVillageField($village->wid, 'cp'); ?> 0
getVSumField($session->uid, 'cp'); ?>

cp; ?> getProfileVillages($session->uid)); echo ${'cp'.$mode}[$total+1]; ?> .

-
diff --git a/Templates/Build/25_3.tpl b/Templates/Build/25_3.tpl deleted file mode 100644 index 21ac6297..00000000 --- a/Templates/Build/25_3.tpl +++ /dev/null @@ -1,13 +0,0 @@ -

resarray['f'.$id]; ?>

-

- -

- - - - - getVillageField($village->wid,'loyalty')); ?> .
diff --git a/Templates/Build/25_4.tpl b/Templates/Build/25_4.tpl deleted file mode 100644 index a3c315a3..00000000 --- a/Templates/Build/25_4.tpl +++ /dev/null @@ -1,54 +0,0 @@ -

resarray['f'.$id]; ?>

-

- -

- - - - - - - - - - - - - - - -getVillageField($village->wid, 'exp1'); -$slot2 = $database->getVillageField($village->wid, 'exp2'); -$slot3 = $database->getVillageField($village->wid, 'exp3'); - -if($slot1 != 0 || $slot2 != 0 || $slot3 != 0){ - for($i=1; $i <= 3; $i++){ - if (${'slot'.$i}<>0) { - $coor = $database->getCoor(${'slot'.$i}); - $vname = $database->getVillageField(${'slot'.$i},'name'); - $owner = $database->getVillageField(${'slot'.$i},'owner'); - $pop = $database->getVillageField(${'slot'.$i},'pop'); - $vcreated = $database->getVillageField(${'slot'.$i},'created'); - $ownername = $database->getUserField($owner,'username',0); -echo ' - - - - - - - -'; - } - } -} -else{ -echo ''; -} -?> -
'.$i.'.'.$vname.''.$ownername.''.$pop.'
('.$coor['x'].'
|
'.$coor['y'].')
'.date('d.m.Y',$vcreated).'
'.NONE_CONQUERED_BY_VILLAGE.'
diff --git a/Templates/Build/25_create.tpl b/Templates/Build/25_create.tpl deleted file mode 100644 index a033e521..00000000 --- a/Templates/Build/25_create.tpl +++ /dev/null @@ -1,68 +0,0 @@ -
- - - - - - - - - - - - - - - "; - ?> - - -
NaamAantalmax
-
- \"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" /> - ".$technology->getUnitName($i)." (Available: ".$village->unitarray['u'.$i].") -
-
\"Lumber\"".${'u'.$i}['wood']."|\"Clay\"".${'u'.$i}['clay']."|\"Iron\"".${'u'.$i}['iron']."|\"Crop\"".${'u'.$i}['crop']."|\"duration\""; - echo $generator->getTimeFormat(round(${'u'.$i}['time']/SPEED)); - //-- If available resources combined are not enough, remove NPC button - //$total_required = (int)(${'r'.$i}['wood'] + ${'r'.$i}['clay'] + ${'r'.$i}['iron'] + ${'r'.$i}['crop']); - - //if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) { - //echo "|\"NPC"; - //} - echo " -
maxUnit($i)."; return false;\">(".$technology->maxUnit($i).")
-

- -

- - getTrainingList(20); - if(count($trainlist) > 0) { - $timer = 2*count($trainlist); - echo " - - - - - - - "; - foreach($trainlist as $train) { - echo " - "; - } - echo "
TrainingDurationFinished
"; - echo "\"".$train['name']."\"".$train['amt']." ".$train['name']."".$generator->getTimeFormat(($train['commence']+($train['eachtime']*$train['amt']))-time()).""; - $timer -= 1; - $time = $generator->procMTime($train['commence']+(1*$train['amt'])); - if($time[0] != "today") { - echo "on ".$time[0]." at"; - } - echo $time[1]." o'clock
The next unit will be finished in ".$generator->getTimeFormat(($train['commence']+$train['eachtime'])-time())."
"; - } - ?> - -
diff --git a/Templates/Build/25_menu.tpl b/Templates/Build/25_menu.tpl deleted file mode 100644 index 388d2952..00000000 --- a/Templates/Build/25_menu.tpl +++ /dev/null @@ -1,7 +0,0 @@ - -
- > - | > - | > - | > -
\ No newline at end of file diff --git a/Templates/Build/25_progress.tpl b/Templates/Build/25_progress.tpl deleted file mode 100644 index 8b1baf41..00000000 --- a/Templates/Build/25_progress.tpl +++ /dev/null @@ -1,34 +0,0 @@ - getTrainingList(4); - if(count($trainlist) > 0) { - echo " - - - - - - - "; - $TrainCount = 0; - foreach($trainlist as $train) { - $TrainCount++; - echo " -
".TRAINING."".DURATION."".FINISHED."
"; - echo "\"".$train['name']."\""; - echo $train['amt']." ".$train['name'].""; - if ($TrainCount == 1 ) { - $NextFinished = $generator->getTimeFormat($train['timestamp2']-time()); - echo "timer.">".$generator->getTimeFormat($train['timestamp']-time()).""; - } else { - echo $generator->getTimeFormat($train['eachtime']*$train['amt']); - } - echo ""; - $time = $generator->procMTime($train['timestamp']); - if($time[0] != "today") { - echo "on ".$time[0]." at "; - } - echo $time[1]; - } ?> -
- diff --git a/Templates/Build/25_train.tpl b/Templates/Build/25_train.tpl deleted file mode 100644 index db0224f1..00000000 --- a/Templates/Build/25_train.tpl +++ /dev/null @@ -1,63 +0,0 @@ -getAvailableExpansionTraining(); - - if ($slots['settlers'] + $slots['chiefs']>0) { ?> - -
- - - - - - - - - - - - -tribe - 1) * 10 + 9; $i <= ($session->tribe * 10); $i++) { - if ($slots['settlers'] > 0 && $i % 10 == 0 || $slots['chiefs'] > 0 && $i % 10 == 9 && $session->tribe != 4) { - $maxunit = MIN($technology->maxUnit($i), ($i % 10 == 0 ? $slots['settlers'] : $slots['chiefs'])); - -echo " -"; - } - } ?> - - -
-
-\"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" /> -".$technology->getUnitName($i)." (".AVAILABLE.": ".$village->unitarray['u'.$i].")
-
\"Lumber\"".${'u'.$i}['wood']."|\"Clay\"".${'u'.$i}['clay']."|\"Iron\"".${'u'.$i}['iron']."|\"Crop\"".${'u'.$i}['crop']."|\"duration\""; -$dur = $database->getArtifactsValueInfluence($session->uid, $village->wid, 5, round(${'u'.$i}['time'] * ($bid25[$village->resarray['f'.$id]]['attri'] / 100) / SPEED)); -echo $generator->getTimeFormat($dur); -//-- If available resources combined are not enough, remove NPC button -$total_required = (int)(${'u'.$i}['wood'] + ${'u'.$i}['clay'] + ${'u'.$i}['iron'] + ${'u'.$i}['crop']); - -if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) { - echo "|\"NPC"; - } -echo "
(".$maxunit.")
-

- -

-
-'.RESIDENCE_TRAIN_DESC.'
'; - - include ("25_progress.tpl"); -?> diff --git a/Templates/Build/26.tpl b/Templates/Build/26.tpl deleted file mode 100644 index ec774b3a..00000000 --- a/Templates/Build/26.tpl +++ /dev/null @@ -1,89 +0,0 @@ - 5){ - $_SESSION['time_p'] = ''; - $_SESSION['error_p'] = ''; -} - -if($_POST and $_GET['action'] == 'change_capital' && !$village->capital){ - $pass = mysqli_escape_string($database->dblink, $_POST['pass']); - $query = mysqli_query($database->dblink, 'SELECT password FROM `'.TB_PREFIX.'users` WHERE `id` = '.(int)$session->uid); - $data = mysqli_fetch_assoc($query); - if(password_verify($pass, $data['password'])){ - $query1 = mysqli_query($database->dblink, 'SELECT wref FROM `'.TB_PREFIX.'vdata` WHERE `owner` = '.(int)$session->uid.' AND `capital` = 1'); - $data1 = mysqli_fetch_assoc($query1); - $query2 = mysqli_query($database->dblink, 'SELECT * FROM `'.TB_PREFIX.'fdata` WHERE `vref` = '.(int)$data1['wref']); - $data2 = mysqli_fetch_assoc($query2); - if($data2['vref'] != $village->wid){ - for($i = 1; $i <= 18; ++$i){ - if($data2['f'.$i] > 10){ - $query2 = mysqli_query($database->dblink, 'UPDATE `'.TB_PREFIX.'fdata` SET `f'.$i.'` = 10 WHERE `vref` = '.(int)$data2['vref']); - } - } - for($i = 19; $i <= 40; ++$i){ - if($data2['f'.$i.'t'] == 34){ - $query3 = mysqli_query($database->dblink, 'UPDATE `'.TB_PREFIX.'fdata` SET `f'.$i.'t` = 0, `f'.$i.'` = 0 WHERE `vref` = '.(int)$data2['vref']); - } - } - - for($i = 19; $i <= 40; ++$i){ - if($data2['f'.$i.'t'] == 29 || $data2['f'.$i.'t'] == 30 || $data2['f'.$i.'t'] == 38 || $data2['f'.$i.'t'] == 39 || $data2['f'.$i.'t'] == 42){ - $query3 = mysqli_query($database->dblink, 'UPDATE `'.TB_PREFIX.'fdata` SET `f'.$i.'t` = 0, `f'.$i.'` = 0 WHERE `vref` = '.(int)$village->wid); - } - } - - $database->changeCapital((int)$data1['wref'], 0); - $database->changeCapital($village->wid); - header("location: build.php?gid=26"); - exit; - } - }else{ - $error = '
'.LOGIN_PW_ERROR.'
'; - $_SESSION['error_p'] = $error; - $_SESSION['time_p'] = time(); - echo ''; - } -} -?> -

resarray['f'.$id]; ?>

-

- -

- -getTypeLevel(26) > 0) { - -include("26_menu.tpl"); - -if($village->resarray['f'.$id] >= 10) include ("26_train.tpl"); -else echo '
'.PALACE_TRAIN_DESC.'
'; - -?> - -capital == 1) { -?> -

-» '.CHANGE_CAPITAL.'

'; - } else { - print '

Are you sure, that you want to change your capital?
You can\'t undo this!
For security you must enter your password to confirm:
-

-'.$_SESSION['error_p'].' -'.PASSWORD.':
- -
-

'; - } -} -} -else echo ""; - -include("upgrade.tpl"); -?> -
\ No newline at end of file diff --git a/Templates/Build/26_2.tpl b/Templates/Build/26_2.tpl deleted file mode 100644 index 8927c7d6..00000000 --- a/Templates/Build/26_2.tpl +++ /dev/null @@ -1,27 +0,0 @@ -

resarray['f'.$id]; ?>

-

- -

- - - -

- - - -getVillageField($village->wid, 'natar') == 0){ ?> - - - - - - - - - -
getVillageField($village->wid, 'cp'); ?> 0
getVSumField($session->uid, 'cp'); ?>

cp; ?> getProfileVillages($session->uid)); echo ${'cp'.$mode}[$total+1]; ?> .

-
diff --git a/Templates/Build/26_3.tpl b/Templates/Build/26_3.tpl deleted file mode 100644 index a1268d27..00000000 --- a/Templates/Build/26_3.tpl +++ /dev/null @@ -1,13 +0,0 @@ -

resarray['f'.$id]; ?>

-

- -

- - - - - getVillageField($village->wid,'loyalty')); ?> .
diff --git a/Templates/Build/26_4.tpl b/Templates/Build/26_4.tpl deleted file mode 100644 index 7b01ec56..00000000 --- a/Templates/Build/26_4.tpl +++ /dev/null @@ -1,55 +0,0 @@ -

resarray['f'.$id]; ?>

-

- - - - - - - - - - - - - - - - - - -getVillageField($village->wid, 'exp1'); -$slot2 = $database->getVillageField($village->wid, 'exp2'); -$slot3 = $database->getVillageField($village->wid, 'exp3'); - -if($slot1 != 0 || $slot2 != 0 || $slot3 != 0){ - for($i=1; $i <= 3; $i++){ - if (${'slot'.$i}<>0) { - $coor = $database->getCoor(${'slot'.$i}); - $vname = $database->getVillageField(${'slot'.$i},'name'); - $owner = $database->getVillageField(${'slot'.$i},'owner'); - $pop = $database->getVillageField(${'slot'.$i},'pop'); - $vcreated = $database->getVillageField(${'slot'.$i},'created'); - $ownername = $database->getUserField($owner,'username',0); -echo ' - - - - - - - -'; - } - } -} -else{ -echo ''; -} -?> -
'.$i.'.'.$vname.''.$ownername.''.$pop.'
('.$coor['x'].'
|
'.$coor['y'].')
'.date('d.m.Y',$vcreated).'
'.NONE_CONQUERED_BY_VILLAGE.'

diff --git a/Templates/Build/26_create.tpl b/Templates/Build/26_create.tpl deleted file mode 100644 index a033e521..00000000 --- a/Templates/Build/26_create.tpl +++ /dev/null @@ -1,68 +0,0 @@ -
- - - - - - - - - - - - - - - "; - ?> - - -
NaamAantalmax
-
- \"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" /> - ".$technology->getUnitName($i)." (Available: ".$village->unitarray['u'.$i].") -
-
\"Lumber\"".${'u'.$i}['wood']."|\"Clay\"".${'u'.$i}['clay']."|\"Iron\"".${'u'.$i}['iron']."|\"Crop\"".${'u'.$i}['crop']."|\"duration\""; - echo $generator->getTimeFormat(round(${'u'.$i}['time']/SPEED)); - //-- If available resources combined are not enough, remove NPC button - //$total_required = (int)(${'r'.$i}['wood'] + ${'r'.$i}['clay'] + ${'r'.$i}['iron'] + ${'r'.$i}['crop']); - - //if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) { - //echo "|\"NPC"; - //} - echo " -
maxUnit($i)."; return false;\">(".$technology->maxUnit($i).")
-

- -

- - getTrainingList(20); - if(count($trainlist) > 0) { - $timer = 2*count($trainlist); - echo " - - - - - - - "; - foreach($trainlist as $train) { - echo " - "; - } - echo "
TrainingDurationFinished
"; - echo "\"".$train['name']."\"".$train['amt']." ".$train['name']."".$generator->getTimeFormat(($train['commence']+($train['eachtime']*$train['amt']))-time()).""; - $timer -= 1; - $time = $generator->procMTime($train['commence']+(1*$train['amt'])); - if($time[0] != "today") { - echo "on ".$time[0]." at"; - } - echo $time[1]." o'clock
The next unit will be finished in ".$generator->getTimeFormat(($train['commence']+$train['eachtime'])-time())."
"; - } - ?> - -
diff --git a/Templates/Build/26_menu.tpl b/Templates/Build/26_menu.tpl deleted file mode 100644 index 9de4eed7..00000000 --- a/Templates/Build/26_menu.tpl +++ /dev/null @@ -1,7 +0,0 @@ - -
- > - | > - | > - | > -
\ No newline at end of file diff --git a/Templates/Build/26_progress.tpl b/Templates/Build/26_progress.tpl deleted file mode 100644 index 8b1baf41..00000000 --- a/Templates/Build/26_progress.tpl +++ /dev/null @@ -1,34 +0,0 @@ - getTrainingList(4); - if(count($trainlist) > 0) { - echo " - - - - - - - "; - $TrainCount = 0; - foreach($trainlist as $train) { - $TrainCount++; - echo " -
".TRAINING."".DURATION."".FINISHED."
"; - echo "\"".$train['name']."\""; - echo $train['amt']." ".$train['name'].""; - if ($TrainCount == 1 ) { - $NextFinished = $generator->getTimeFormat($train['timestamp2']-time()); - echo "timer.">".$generator->getTimeFormat($train['timestamp']-time()).""; - } else { - echo $generator->getTimeFormat($train['eachtime']*$train['amt']); - } - echo ""; - $time = $generator->procMTime($train['timestamp']); - if($time[0] != "today") { - echo "on ".$time[0]." at "; - } - echo $time[1]; - } ?> -
- diff --git a/Templates/Build/26_train.tpl b/Templates/Build/26_train.tpl deleted file mode 100644 index a986e758..00000000 --- a/Templates/Build/26_train.tpl +++ /dev/null @@ -1,64 +0,0 @@ -getAvailableExpansionTraining(); - - if ($slots['settlers'] + $slots['chiefs'] > 0) { ?> - -
- - - - - - - - - - - - -tribe - 1) * 10 + 9; $i <= $session->tribe * 10; $i++) { - if ($slots['settlers'] > 0 && $i % 10 == 0 || $slots['chiefs'] > 0 && $i % 10 == 9 && $session->tribe != 4) { - $maxunit = MIN($technology->maxUnit($i), ($i % 10 == 0 ? $slots['settlers'] : $slots['chiefs'])); - -echo " -"; - } - } ?> - - -
-
-\"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" /> -".$technology->getUnitName($i)." (".AVAILABLE.": ".$village->unitarray['u'.$i].")
-
\"Lumber\"".${'u'.$i}['wood']."|\"Clay\"".${'u'.$i}['clay']."|\"Iron\"".${'u'.$i}['iron']."|\"Crop\"".${'u'.$i}['crop']."|\"duration\""; -$dur = $database->getArtifactsValueInfluence($session->uid, $village->wid, 5, round(${'u'.$i}['time'] * ($bid26[$village->resarray['f'.$id]]['attri'] / 100) / SPEED)); -echo $generator->getTimeFormat($dur); - -//-- If available resources combined are not enough, remove NPC button -$total_required = (int)(${'u'.$i}['wood'] + ${'u'.$i}['clay'] + ${'u'.$i}['iron'] + ${'u'.$i}['crop']); - -if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) { -echo "|\"NPC"; - } -echo "
(".$maxunit.")
-

- -

-
-'.PALACE_TRAIN_DESC.''; - - include ("26_progress.tpl"); -?> diff --git a/Templates/Build/28.tpl b/Templates/Build/28.tpl deleted file mode 100644 index c58e4624..00000000 --- a/Templates/Build/28.tpl +++ /dev/null @@ -1,37 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id] + 1 + $loopsame + $doublebuild + $master; - if($next<=20){ - ?> - - - - - - - -
resarray['f'.$id] > 0 ? $bid28[$village->resarray['f'.$id]]['attri'] : 100; ?>
: 20:
- -

diff --git a/Templates/Build/29.tpl b/Templates/Build/29.tpl deleted file mode 100644 index 2fdb70c6..00000000 --- a/Templates/Build/29.tpl +++ /dev/null @@ -1,59 +0,0 @@ -
-

resarray['f'.$id]; ?>

-

- -getTypeLevel(29) > 0) { ?> -
- - - - - - - - -
-

- ".TRAINING_COMMENCE_GREATBARRACKS."
\n"; - } - $trainlist = $technology->getTrainingList(5); - if(count($trainlist) > 0) { - echo " - - - - - - - "; - $TrainCount = 0; - foreach($trainlist as $train) { - $TrainCount++; - echo " -
".TRAINING."".DURATION."".FINISHED."
"; - echo "\"".$train['name']."\""; - echo $train['amt']." ".$train['name'].""; - if ($TrainCount == 1 ) { - $NextFinished = $generator->getTimeFormat($train['timestamp2']-time()); - echo "timer.">".$generator->getTimeFormat($train['timestamp']-time()).""; - } else { - echo $generator->getTimeFormat($train['eachtime']*$train['amt']); - } - echo ""; - $time = $generator->procMTime($train['timestamp']); - if($time[0] != "today") { - echo "on ".$time[0]." at "; - } - echo $time[1]; - } ?> -
- -

\ No newline at end of file diff --git a/Templates/Build/29_train.tpl b/Templates/Build/29_train.tpl deleted file mode 100644 index 9d0b40f0..00000000 --- a/Templates/Build/29_train.tpl +++ /dev/null @@ -1,27 +0,0 @@ -tribe-1)*10+1;$i<=($session->tribe-1)*10+4;$i++) { - if ($i <> 4 && $i <> 23 && $i <> 24 && ($technology->getTech($i) || $i%10 == 1)) { - -echo " -
-\"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" /> - ".$technology->getUnitName($i)." (".AVAILABLE.": ".$village->unitarray['u'.$i].") -
-
-\"Wood\"".(${'u'.$i}['wood']*3)."|\"Clay\"".(${'u'.$i}['clay']*3)."|\"Iron\"".(${'u'.$i}['iron']*3)."|\"Crop\"".(${'u'.$i}['crop']*3)."|\"Crop".${'u'.$i}['pop']."|\"Duration\""; -$dur = $database->getArtifactsValueInfluence($session->uid, $village->wid, 5, round(${'u'.$i}['time'] * ($bid29[$village->resarray['f'.$id]]['attri'] / 100) / SPEED)); -echo $generator->getTimeFormat($dur); - -//-- If available resources combined are not enough, remove NPC button -$total_required = (int)(${'u'.$i}['wood'] + ${'u'.$i}['clay'] + ${'u'.$i}['iron'] + ${'u'.$i}['crop']); - -if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) { - echo "|maxUnitPlus($i))."&r2=".((${'u'.$i}['clay'])*$technology->maxUnitPlus($i))."&r3=".((${'u'.$i}['iron'])*$technology->maxUnitPlus($i))."&r4=".((${'u'.$i}['crop'])*$technology->maxUnitPlus($i))."\" title=\"NPC trade\">\"NPC"; - } -echo "
- - -maxUnit($i,true)."; return false;\">(".$technology->maxUnit($i,true).")"; - } - } -?> diff --git a/Templates/Build/3.tpl b/Templates/Build/3.tpl deleted file mode 100644 index 7b87a153..00000000 --- a/Templates/Build/3.tpl +++ /dev/null @@ -1,56 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id]+1+$loopsame+$doublebuild+$master; - if($village->capital == 1) { - if($next<=20){ - ?> - - - - - - - - - - - - - - - - - - - - -
resarray['f'.$id]]['prod']* SPEED; ?> per hour
:
:
:
:
- -

diff --git a/Templates/Build/30.tpl b/Templates/Build/30.tpl deleted file mode 100644 index 54b9b5db..00000000 --- a/Templates/Build/30.tpl +++ /dev/null @@ -1,59 +0,0 @@ -
-

resarray['f'.$id]; ?>

-


- -getTypeLevel(30) > 0) { ?> -
- - - - - - - - -
-

- ".TRAINING_COMMENCE_GREATSTABLE."
\n"; - } - $trainlist = $technology->getTrainingList(6); - if(count($trainlist) > 0) { - echo " - - - - - - - "; - $TrainCount = 0; - foreach($trainlist as $train) { - $TrainCount++; - echo " -
".TRAINING."".DURATION."".FINISHED."
"; - echo "\"".$train['name']."\""; - echo $train['amt']." ".$train['name'].""; - if ($TrainCount == 1 ) { - $NextFinished = $generator->getTimeFormat($train['timestamp2']-time()); - echo "timer.">".$generator->getTimeFormat($train['timestamp']-time()).""; - } else { - echo $generator->getTimeFormat($train['eachtime']*$train['amt']); - } - echo ""; - $time = $generator->procMTime($train['timestamp']); - if($time[0] != "today") { - echo "on ".$time[0]." at "; - } - echo $time[1]; - } ?> -
- -

\ No newline at end of file diff --git a/Templates/Build/30_train.tpl b/Templates/Build/30_train.tpl deleted file mode 100644 index afd7d0e6..00000000 --- a/Templates/Build/30_train.tpl +++ /dev/null @@ -1,31 +0,0 @@ -tribe-1)*10+3;$i<=($session->tribe-1)*10+6;$i++) { - if ($i <> 3 && $i <> 13 && $i <> 14 && $technology->getTech($i)) { - $success ++; -echo " -
-\"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" /> - ".$technology->getUnitName($i)." (".AVAILABLE.": ".$village->unitarray['u'.$i].") -
-
-\"Wood\"".(${'u'.$i}['wood']*3)."|\"Clay\"".(${'u'.$i}['clay']*3)."|\"Iron\"".(${'u'.$i}['iron']*3)."|\"Crop\"".(${'u'.$i}['crop']*3)."|\"Crop".(${'u'.$i}['pop']-($building->getTypeLevel(41)>=1?1:0))."|\"Duration\""; -$dur = $database->getArtifactsValueInfluence($session->uid, $village->wid, 5, round(${'u'.$i}['time'] * ($bid30[$village->resarray['f'.$id]]['attri'] * ($building->getTypeLevel(41)>=1?(1/$bid41[$building->getTypeLevel(41)]['attri']):1) / 100) / SPEED)); -echo $generator->getTimeFormat($dur); - -//-- If available resources combined are not enough, remove NPC button -$total_required = (int)(${'u'.$i}['wood'] + ${'u'.$i}['clay'] + ${'u'.$i}['iron'] + ${'u'.$i}['crop']); - -if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) { - echo "|maxUnitPlus($i))."&r2=".((${'u'.$i}['clay'])*$technology->maxUnitPlus($i))."&r3=".((${'u'.$i}['iron'])*$technology->maxUnitPlus($i))."&r4=".((${'u'.$i}['crop'])*$technology->maxUnitPlus($i))."\" title=\"NPC trade\">\"NPC"; - } -echo "
- - -maxUnit($i,true)."; return false;\">(".$technology->maxUnit($i,true).")"; - } - } -if($success == 0) { - echo "
".AVAILABLE_ACADEMY."
"; -} -?> diff --git a/Templates/Build/31.tpl b/Templates/Build/31.tpl deleted file mode 100644 index 08aa4c9a..00000000 --- a/Templates/Build/31.tpl +++ /dev/null @@ -1,35 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id] + 1 + $loopsame + $doublebuild + $master; - if($next <= 20){ - ?> - - - - - - - -
resarray['f'.$id] > 0 ? $bid31[$village->resarray['f'.$id]]['attri'] : 0; ?>
: 20:
- -

-
\ No newline at end of file diff --git a/Templates/Build/32.tpl b/Templates/Build/32.tpl deleted file mode 100644 index 653c981f..00000000 --- a/Templates/Build/32.tpl +++ /dev/null @@ -1,35 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id] + 1 + $loopsame + $doublebuild + $master; - if($next <= 20){ - ?> - - - - - - - -
resarray['f'.$id] > 0 ? $bid32[$village->resarray['f'.$id]]['attri'] : 0; ?>
: 20:
- -

-
\ No newline at end of file diff --git a/Templates/Build/33.tpl b/Templates/Build/33.tpl deleted file mode 100644 index 13c7dce3..00000000 --- a/Templates/Build/33.tpl +++ /dev/null @@ -1,35 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id] + 1 + $loopsame + $doublebuild + $master; - if($next <= 20){ - ?> - - - - - - - -
resarray['f'.$id] > 0 ? $bid33[$village->resarray['f'.$id]]['attri'] : 0; ?>
: 20:
- -

-
\ No newline at end of file diff --git a/Templates/Build/34.tpl b/Templates/Build/34.tpl deleted file mode 100644 index b53a6c2c..00000000 --- a/Templates/Build/34.tpl +++ /dev/null @@ -1,37 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id] + 1 + $loopsame + $doublebuild + $master; - if($next <= 20){ - ?> - - - - - - - -
resarray['f'.$id] > 0 ? $bid34[$village->resarray['f'.$id]]['attri'] : 100; ?>
: 20:
- -

\ No newline at end of file diff --git a/Templates/Build/35.tpl b/Templates/Build/35.tpl deleted file mode 100644 index afe96f30..00000000 --- a/Templates/Build/35.tpl +++ /dev/null @@ -1,37 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id] + 1 + $loopsame + $doublebuild + $master; - if($next <= 10){ - ?> - - - - - - - -
resarray['f'.$id] > 0 ? $bid35[$village->resarray['f'.$id]]['attri'] : 0; ?>
: 10:
- -

\ No newline at end of file diff --git a/Templates/Build/36.tpl b/Templates/Build/36.tpl deleted file mode 100644 index 48348d4d..00000000 --- a/Templates/Build/36.tpl +++ /dev/null @@ -1,135 +0,0 @@ - -

resarray['f'.$id]; ?>

-

- -

- - - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id]+1+$loopsame+$doublebuild+$master; - if($next<=20){ - ?> - - - - - - - - -
resarray['f'.$id]]['attri'] * TRAPPER_CAPACITY; ?>
: 20:
-

unitarray['u99']; ?> , unitarray['u99o']; ?>

-getTypeLevel(36) > 0) { ?> -
- - - - - - - - - - - - - - - - getTrainingList(8); - foreach($trainlist as $train) $train_amt += $train['amt']; - - $max = $technology->maxUnit(99, false); - $max1 = 0; - for($i = 19; $i < 41; $i++){ - if($village->resarray['f'.$i.'t'] == 36){ - $max1 += $bid36[$village->resarray['f'.$i]]['attri'] * TRAPPER_CAPACITY; - } - } - - if (!isset($train_amt)) $train_amt = 0; - - if($max > $max1 - ($village->unitarray['u99'] + $train_amt)){ - $max = $max1 - ($village->unitarray['u99'] + $train_amt); - } - - if($max < 0) $max = 0; - ?> - - - - -
-
Trap (: unitarray['u99']; ?>) -
-
- Lumber20|Clay30|Iron10|Crop20|Crop consumption0|Duration - getTimeFormat($database->getArtifactsValueInfluence($session->uid, $village->wid, 5, round(($bid19[$village->resarray['f'.$id]]['attri'] / 100) * ${'u99'}['time'] / SPEED))); ?> - - -
-
()
-

- ".TRAINING_COMMENCE_TRAPPER."
\n"; - } - if(!empty($trainlist)) { - echo " - - - - - - - "; - $TrainCount = 0; - foreach($trainlist as $train) { - $TrainCount++; - echo " -
".TRAINING."".DURATION."".FINISHED."
"; - echo "\"".U99."\""; - echo $train['amt']." ".U99.""; - if ($TrainCount == 1) { - $NextFinished = $generator->getTimeFormat(($train['timestamp'] - time()) - ($train['amt'] - 1) * $train['eachtime']); - echo "".$generator->getTimeFormat($train['timestamp'] - time()).""; - } - else echo $generator->getTimeFormat($train['eachtime'] * $train['amt']); - - echo ""; - $time = $generator->procMTime($train['timestamp']); - if($time[0] != "today") echo "on ".$time[0]." at "; - echo $time[1]; - } ?> -
- -

\ No newline at end of file diff --git a/Templates/Build/38.tpl b/Templates/Build/38.tpl deleted file mode 100644 index 324bda95..00000000 --- a/Templates/Build/38.tpl +++ /dev/null @@ -1,38 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - - -isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id]+1+$loopsame+$doublebuild+$master; - if($next<=20){ - ?> - - - - - - - -
resarray['f'.$id]]['attri']*STORAGE_MULTIPLIER; ?>
: 20:
- -

diff --git a/Templates/Build/39.tpl b/Templates/Build/39.tpl deleted file mode 100644 index cd8e06be..00000000 --- a/Templates/Build/39.tpl +++ /dev/null @@ -1,39 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - - - -isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id]+1+$loopsame+$doublebuild+$master; - if($next<=20){ - ?> - - - - - - - -
resarray['f'.$id]]['attri']*STORAGE_MULTIPLIER; ?>
: 20:
- -

diff --git a/Templates/Build/4.tpl b/Templates/Build/4.tpl deleted file mode 100644 index 6ea83e23..00000000 --- a/Templates/Build/4.tpl +++ /dev/null @@ -1,56 +0,0 @@ - -
-

resarray['f'.$id];?>

-

- - - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id]+1+$loopsame+$doublebuild+$master; - if($village->capital == 1) { - if($next<=20){ - ?> - - - - - - - - - - - - - - - - - - - - - -
resarray['f'.$id]]['prod']* SPEED; ?>
:
:
:
:
- -

diff --git a/Templates/Build/41.tpl b/Templates/Build/41.tpl deleted file mode 100644 index 6232e02c..00000000 --- a/Templates/Build/41.tpl +++ /dev/null @@ -1,32 +0,0 @@ -
-

resarray['f'.$id]; ?>

-

- - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id] + 1 + $loopsame + $doublebuild + $master; - if($next <= 20){ - ?> - - - - - - - -
resarray['f'.$id] > 0 ? $bid41[$village->resarray['f'.$id]]['attri'] * 100 - 100 : 0; ?>
: 20:
- -

\ No newline at end of file diff --git a/Templates/Build/42.tpl b/Templates/Build/42.tpl deleted file mode 100644 index 879d2cb3..00000000 --- a/Templates/Build/42.tpl +++ /dev/null @@ -1,59 +0,0 @@ -
-

resarray['f'.$id]; ?>

-

- -getTypeLevel(42) > 0) { ?> -
- - - - - - - - -
-

- ".TRAINING_COMMENCE_GREATWORKSHOP."
\n"; - } - $trainlist = $technology->getTrainingList(7); - if(count($trainlist) > 0) { - echo " - - - - - - - "; - $TrainCount = 0; - foreach($trainlist as $train) { - $TrainCount++; - echo " -
".TRAINING."".DURATION."".FINISHED."
"; - echo "\"".$train['name']."\""; - echo $train['amt']." ".$train['name'].""; - if ($TrainCount == 1 ) { - $NextFinished = $generator->getTimeFormat($train['timestamp2']-time()); - echo "timer.">".$generator->getTimeFormat($train['timestamp']-time()).""; - } else { - echo $generator->getTimeFormat($train['eachtime']*$train['amt']); - } - echo ""; - $time = $generator->procMTime($train['timestamp']); - if($time[0] != "today") { - echo "on ".$time[0]." at "; - } - echo $time[1]; - } ?> -
- -

\ No newline at end of file diff --git a/Templates/Build/42_train.tpl b/Templates/Build/42_train.tpl deleted file mode 100644 index f9f0a4f6..00000000 --- a/Templates/Build/42_train.tpl +++ /dev/null @@ -1,31 +0,0 @@ -tribe-1)*10+7;$i<=($session->tribe-1)*10+8;$i++) { - if ($technology->getTech($i)) { - $success++; -echo " -
-\"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" /> - ".$technology->getUnitName($i)." (".AVAILABLE.": ".$village->unitarray['u'.$i].") -
-
-\"Wood\"".(${'u'.$i}['wood']*3)."|\"Clay\"".(${'u'.$i}['clay']*3)."|\"Iron\"".(${'u'.$i}['iron']*3)."|\"Crop\"".(${'u'.$i}['crop']*3)."|\"Crop".${'u'.$i}['pop']."|\"Duration\""; -$dur = $database->getArtifactsValueInfluence($session->uid, $village->wid, 5, round(${'u'.$i}['time'] * ($bid42[$village->resarray['f'.$id]]['attri'] / 100) / SPEED)); -echo $generator->getTimeFormat($dur); - -//-- If available resources combined are not enough, remove NPC button -$total_required = (int)(${'u'.$i}['wood'] + ${'u'.$i}['clay'] + ${'u'.$i}['iron'] + ${'u'.$i}['crop']); - -if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) { - echo "|maxUnitPlus($i))."&r2=".((${'u'.$i}['clay'])*$technology->maxUnitPlus($i))."&r3=".((${'u'.$i}['iron'])*$technology->maxUnitPlus($i))."&r4=".((${'u'.$i}['crop'])*$technology->maxUnitPlus($i))."\" title=\"NPC trade\">\"NPC"; - } -echo "
- - -maxUnit($i,true)."; return false;\">(".$technology->maxUnit($i,true).")"; - } - } -if($success == 0) { - echo "
".AVAILABLE_ACADEMY."
"; -} -?> \ No newline at end of file diff --git a/Templates/Build/5.tpl b/Templates/Build/5.tpl deleted file mode 100644 index 9a9e1c57..00000000 --- a/Templates/Build/5.tpl +++ /dev/null @@ -1,37 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id]+1+$loopsame+$doublebuild+$master; - if($next<=5){ - ?> - - - - - - - -
resarray['f'.$id] > 0 ? $bid5[$village->resarray['f'.$id]]['attri'] : 0; ?>
: 5:
- -

diff --git a/Templates/Build/6.tpl b/Templates/Build/6.tpl deleted file mode 100644 index a73b728d..00000000 --- a/Templates/Build/6.tpl +++ /dev/null @@ -1,37 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id]+1+$loopsame+$doublebuild+$master; - if($next <= 5){ - ?> - - - - - - - -
resarray['f'.$id] > 0 ? $bid6[$village->resarray['f'.$id]]['attri'] : 0; ?>
: 5:
- -

diff --git a/Templates/Build/7.tpl b/Templates/Build/7.tpl deleted file mode 100644 index 604d968c..00000000 --- a/Templates/Build/7.tpl +++ /dev/null @@ -1,37 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id]+1+$loopsame+$doublebuild+$master; - if($next<=5){ - ?> - - - - - - - -
resarray['f'.$id] > 0 ? $bid7[$village->resarray['f'.$id]]['attri'] : 0; ?>
: 5:
- -

diff --git a/Templates/Build/8.tpl b/Templates/Build/8.tpl deleted file mode 100644 index a71d0ba7..00000000 --- a/Templates/Build/8.tpl +++ /dev/null @@ -1,37 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id]+1+$loopsame+$doublebuild+$master; - if($next <= 5){ - ?> - - - - - - - -
resarray['f'.$id] > 0 ? $bid8[$village->resarray['f'.$id]]['attri'] : 0; ?>
: 5:
- -

diff --git a/Templates/Build/9.tpl b/Templates/Build/9.tpl deleted file mode 100644 index 329d01ce..00000000 --- a/Templates/Build/9.tpl +++ /dev/null @@ -1,37 +0,0 @@ - -
-

resarray['f'.$id]; ?>

-

- - - - - - - - - isMax($village->resarray['f'.$id.'t'],$id)) { - $next = $village->resarray['f'.$id]+1+$loopsame+$doublebuild+$master; - if($next <= 5){ - ?> - - - - - - - -
resarray['f'.$id] > 0 ? $bid9[$village->resarray['f'.$id]]['attri'] : 0; ?>
: 5:
- -

diff --git a/Templates/Build/next.tpl b/Templates/Build/next.tpl deleted file mode 100644 index 487ffea5..00000000 --- a/Templates/Build/next.tpl +++ /dev/null @@ -1,5 +0,0 @@ -isCurrent($id) || $building->isLoop($id))?1:0; - $doublebuild = ($building->isCurrent($id) && $building->isLoop($id))?1:0; - $master = count($database->getMasterJobsByField($village->wid,$id)); -?> \ No newline at end of file diff --git a/Templates/Build/upgrade.tpl b/Templates/Build/upgrade.tpl deleted file mode 100644 index d2a75015..00000000 --- a/Templates/Build/upgrade.tpl +++ /dev/null @@ -1,146 +0,0 @@ -resarray['f'.$id.'t']; -$bindicate = $building->canBuild($id, $bid); -if($bindicate == 1) { - echo "

".MAX_LEVEL."

"; -} else if($bindicate == 10) { - echo "

".BUILDING_MAX_LEVEL_UNDER."

"; -} else if($bindicate == 11) { - echo "

".BUILDING_BEING_DEMOLISHED."

"; -} else { - $loopsame = ($building->isCurrent($id) || $building->isLoop($id)) ? 1 : 0; - $doublebuild = ($building->isCurrent($id) && $building->isLoop($id)) ? 1 : 0; - $master = count($database->getMasterJobsByField($village->wid,$id)); - - // master and loopsame would have duplicated level display, - // so we need to decrease loopsame if master is the only job left - if ($master == 1 && $loopsame == 1) $loopsame = 0; - - //-- If available resources combined are not enough, remove NPC button - $uprequire = $building->resourceRequired($id,$village->resarray['f'.$id.'t'],1 + $loopsame + $doublebuild + $master); -?> - -

resarray['f'.$id]+1+$loopsame+$doublebuild+$master; ?>:
-Lumber | Clay | Iron | Crop | Crop consumption | durationgetTimeFormat($uprequire['time']); -if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) { - echo "| \"NPC"; -} ?>
-".WORKERS_ALREADY_WORK.""; - if($session->goldclub == 1){ -?>
-gold >= 1 && $village->master == 0){ - echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; - echo '('.COSTS.': Gold1)'; - }else{ - echo "".CONSTRUCTING_MASTER_BUILDER.""; - echo '('.COSTS.': Gold1)'; - } - }else{ - if($session->gold >= 1 && $village->master == 0){ - echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; - echo '('.COSTS.': Gold1)'; - }else{ - echo "".CONSTRUCTING_MASTER_BUILDER.""; - echo '('.COSTS.': Gold1)'; - } - } - } - } - else if($bindicate == 3) { - echo "".WORKERS_ALREADY_WORK_WAITING.""; - if($session->goldclub == 1){ -?>
-gold >= 1 && $village->master == 0){ - echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; - echo '('.COSTS.': Gold1)'; - }else{ - echo "".CONSTRUCTING_MASTER_BUILDER.""; - echo '('.COSTS.': Gold1)'; - } - }else{ - if($session->gold >= 1 && $village->master == 0){ - echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; - echo '('.COSTS.': Gold1)'; - }else{ - echo "".CONSTRUCTING_MASTER_BUILDER.""; - echo '('.COSTS.': Gold1)'; - } - } - } - } - else if($bindicate == 4) { - echo "".ENOUGH_FOOD_EXPAND_CROPLAND.""; - } - else if($bindicate == 5) { - echo "".UPGRADE_WAREHOUSE."."; - } - else if($bindicate == 6) { - echo "".UPGRADE_GRANARY."."; - } - else if($bindicate == 7) { - if($village->allcrop - $village->pop - $technology->getUpkeep($village->unitall, 0) > 0){ - $neededtime = $building->calculateAvaliable($id,$village->resarray['f'.$id.'t'],1+$loopsame+$doublebuild+$master); - echo "".ENOUGH_RESOURCES." ".$neededtime[0]." at ".$neededtime[1].""; - }else{ - echo "".YOUR_CROP_NEGATIVE.""; - } - if($session->goldclub == 1){ -?>
-gold >= 1 && $village->master == 0){ - echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; - echo '('.COSTS.': Gold1)'; - }else{ - echo "".CONSTRUCTING_MASTER_BUILDER.""; - echo '('.COSTS.': Gold1)'; - } - }else{ - if($session->gold >= 1 && $village->master == 0){ - echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; - echo '('.COSTS.': Gold1)'; - }else{ - echo "".CONSTRUCTING_MASTER_BUILDER.""; - echo '('.COSTS.': Gold1)'; - } - } - } - } - else if($bindicate == 8) { - if($session->access==BANNED){ - echo "".UPGRADE_LEVEL." "; - } - else if($id <= 18) { - echo "checker\">".UPGRADE_LEVEL." "; - } - else { - echo "checker\">".UPGRADE_LEVEL." "; - } - echo $village->resarray['f'.$id]+1; - echo "."; - } - else if($bindicate == 9) { - if($session->access==BANNED){ - echo "".UPGRADE_LEVEL." "; - } - else if($id <= 18) { - echo "checker\">".UPGRADE_LEVEL." "; - } - else { - echo "checker\">".UPGRADE_LEVEL." "; - } - echo $village->resarray['f'.$id]+($loopsame > 0 ? 2:1); - echo ". ".WAITING." "; - } -} - -?> diff --git a/Templates/Build/ww.tpl b/Templates/Build/ww.tpl deleted file mode 100644 index 02c07f3e..00000000 --- a/Templates/Build/ww.tpl +++ /dev/null @@ -1,46 +0,0 @@ -isCurrent($id) || $building->isLoop($id))?1:0; - $doublebuild = ($building->isCurrent($id) && $building->isLoop($id))?1:0; -?> - -

-


resarray['f'.$id];?>

-

-
-getWWName($vref); - -if($village->resarray['f'.$id] < 0){ -echo ''.WORLD_WONDER_CHANGE_NAME.'. -

'.WORLD_WONDER_NAME.':

'; -} else if($village->resarray['f'.$id] > 0 and $village->resarray['f'.$id] < 11) { -echo '

'.WORLD_WONDER_NAME.':

'; -} else if ($village->resarray['f'.$id] > 10){ -echo ''.WORLD_WONDER_NOTCHANGE_NAME.'. -

'.WORLD_WONDER_NAME.':

'; -}?> -
- '.WORLD_WONDER_NAME_CHANGED.'.

'; - } - ?> - - -

diff --git a/Templates/Build/wwupgrade.tpl b/Templates/Build/wwupgrade.tpl deleted file mode 100644 index 8dc367f0..00000000 --- a/Templates/Build/wwupgrade.tpl +++ /dev/null @@ -1,154 +0,0 @@ -resarray[ 'f' . $id . 't' ]; -$bindicate = $building->canBuild( $id, $bid ); -$wwlevel = $village->resarray['f99']; -if ( $wwlevel >= 50 ) { - $needed_plan = 1; -} else { - $needed_plan = 0; -} - -if ( $building->allowWwUpgrade() ) { - if ( $bindicate == 1 ) { - echo "

" . MAX_LEVEL . "

"; - } else if ( $bindicate == 10 ) { - echo "

" . BUILDING_MAX_LEVEL_UNDER . "

"; - } else if ( $bindicate == 11 ) { - echo "

" . BUILDING_BEING_DEMOLISHED . "

"; - } else { - $loopsame = ( $building->isCurrent( $id ) || $building->isLoop( $id ) ) ? 1 : 0; - $doublebuild = ( $building->isCurrent( $id ) && $building->isLoop( $id ) ) ? 1 : 0; - $master = count( $database->getMasterJobsByField( $village->wid, $id ) ); - $uprequire = $building->resourceRequired( $id, $village->resarray[ 'f' . $id . 't' ], 1 + $loopsame + $doublebuild + $master ); -?> -

- resarray[ 'f' . $id ] + 1 + $loopsame + $doublebuild + $master; ?> - :
- Lumber | Clay | Iron | Crop | Crop consumption - | durationgetTimeFormat( $uprequire['time'] ); - //-- If available resources combined are not enough, remove NPC button - $total_required = (int)($uprequire['wood'] + $uprequire['clay'] + $uprequire['iron'] + $uprequire['crop']); - if ( $session->userinfo['gold'] >= 3 && $building->getTypeLevel( 17 ) >= 1 && $village->atotal >= $total_required) { - echo "|\"NPC"; - } ?>
- " . WORKERS_ALREADY_WORK . ""; - if ( $session->goldclub == 1 ) { - ?>
- gold >= 1 && $village->master == 0 ) { - echo "" . CONSTRUCTING_MASTER_BUILDER . " "; - echo '(' . COSTS . ': Gold1)'; - } else { - echo "" . CONSTRUCTING_MASTER_BUILDER . ""; - echo '(' . COSTS . ': Gold1)'; - } - } else { - if ( $session->gold >= 1 && $village->master == 0 ) { - echo "" . CONSTRUCTING_MASTER_BUILDER . " "; - echo '(' . COSTS . ': Gold1)'; - } else { - echo "" . CONSTRUCTING_MASTER_BUILDER . ""; - echo '(' . COSTS . ': Gold1)'; - } - } - } - } else if ( $bindicate == 3 ) { - echo "" . WORKERS_ALREADY_WORK_WAITING . ""; - if ( $session->goldclub == 1 ) { - ?>
- gold >= 1 && $village->master == 0 ) { - echo "" . CONSTRUCTING_MASTER_BUILDER . " "; - echo '(' . COSTS . ': Gold1)'; - } else { - echo "" . CONSTRUCTING_MASTER_BUILDER . ""; - echo '(' . COSTS . ': Gold1)'; - } - } else { - if ( $session->gold >= 1 && $village->master == 0 ) { - echo "" . CONSTRUCTING_MASTER_BUILDER . " "; - echo '(' . COSTS . ': Gold1)'; - } else { - echo "" . CONSTRUCTING_MASTER_BUILDER . ""; - echo '(' . COSTS . ': Gold1)'; - } - } - } - } else if ( $bindicate == 4 ) { - echo "" . ENOUGH_FOOD_EXPAND_CROPLAND . ""; - } else if ( $bindicate == 5 ) { - echo "" . UPGRADE_WAREHOUSE . "."; - } else if ( $bindicate == 6 ) { - echo "" . UPGRADE_GRANARY . "."; - } else if ( $bindicate == 7 ) { - if ( $village->allcrop > 0 ) { - $neededtime = $building->calculateAvaliable( $id, $village->resarray[ 'f' . $id . 't' ], 1 + $loopsame + $doublebuild + $master ); - echo "" . ENOUGH_RESOURCES . " " . $neededtime[0] . " at " . $neededtime[1] . ""; - } else { - echo "" . YOUR_CROP_NEGATIVE . ""; - } - if ( $session->goldclub == 1 ) { - ?>
- gold >= 1 && $village->master == 0 ) { - echo "" . CONSTRUCTING_MASTER_BUILDER . " "; - echo '(' . COSTS . ': Gold1)'; - } else { - echo "" . CONSTRUCTING_MASTER_BUILDER . ""; - echo '(' . COSTS . ': Gold1)'; - } - } else { - if ( $session->gold >= 1 && $village->master == 0 ) { - echo "" . CONSTRUCTING_MASTER_BUILDER . " "; - echo '(' . COSTS . ': Gold1)'; - } else { - echo "" . CONSTRUCTING_MASTER_BUILDER . ""; - echo '(' . COSTS . ': Gold1)'; - } - } - } - } else if ( $bindicate == 8 ) { - if ( $session->access == BANNED ) { - echo "" . UPGRADE_LEVEL . " "; - } else if ( $id <= 18 ) { - echo "checker\">" . UPGRADE_LEVEL . " "; - } else { - echo "checker\">" . UPGRADE_LEVEL . " "; - } - echo $village->resarray[ 'f' . $id ] + 1; - echo "."; - } else if ( $bindicate == 9 ) { - if ( $session->access == BANNED ) { - echo "" . UPGRADE_LEVEL . " "; - } else if ( $id <= 18 ) { - echo "checker\">" . UPGRADE_LEVEL . " "; - } else { - echo "checker\">" . UPGRADE_LEVEL . " "; - } - echo $village->resarray[ 'f' . $id ] + ( $loopsame > 0 ? 2 : 1 ); - echo ". " . WAITING . " "; - } - } - } else { - if ( $needed_plan == 0 ) { - echo "" . NEED_WWCONSTRUCTION_PLAN . "."; - } else { - echo "" . NEED_MORE_WWCONSTRUCTION_PLAN . "."; - } - } -?> \ No newline at end of file diff --git a/Templates/Building.tpl b/Templates/Building.tpl deleted file mode 100644 index 57392072..00000000 --- a/Templates/Building.tpl +++ /dev/null @@ -1,56 +0,0 @@ -loadBuilding(); -?> -NewBuilding){ ?> - - - - - - buildArray as $jobs) { - if($jobs['master'] == 0){ - echo ""; - echo ""; - }else{ - echo " -
- gold >= 2) { - ?> - Finish all construction and research orders in this village immediately for 2 Gold? - -
checker\">"; - echo "\"cancel\""; - echo Building::procResType($jobs['type'])." (Level ".$jobs['level'].")"; - - if($jobs['loopcon'] == 1) echo " (waiting loop)"; - - echo "in timer."\">"; - echo $generator->getTimeFormat($jobs['timestamp']-time()); - echo " hrs.done at ".date('H:i', $jobs['timestamp'])."
checker\">"; - echo "\"cancel\""; - echo Building::procResType($jobs['type'])." (Level ".$jobs['level'].")"; - } - } - ?> -
- - - diff --git a/Templates/News/newsbox1.tpl b/Templates/News/newsbox1.tpl deleted file mode 100644 index 7a890098..00000000 --- a/Templates/News/newsbox1.tpl +++ /dev/null @@ -1,64 +0,0 @@ -

newsbox 1
-dblink,"SELECT Count(*) as Total FROM " . TB_PREFIX . "users WHERE timestamp > ".(time() - (60*10))." AND tribe!=0 AND tribe!=4 AND tribe!=5"); -$top_rank = mysqli_fetch_assoc(mysqli_query($database->dblink,"SELECT username FROM ".TB_PREFIX."users WHERE ".(INCLUDE_ADMIN ? '' : 'access< 8 AND ')."id > 5 AND tribe<=3 AND tribe > 0 ORDER BY oldrank ASC Limit 1")); - -?> - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Online Users: users
Server Speed:
Troop Speed: x
Evasion Speed:
Map Size: x
Village Exp.:
Beginners Prot.: hrs
Medal Interval: = 86400){ echo ''.(MEDALINTERVAL/86400).' Days'; } else if(MEDALINTERVAL < 86400){ echo ''.(MEDALINTERVAL/3600).' Hours'; } ?>
Server Start:
Peace system:
Best Player:
-
diff --git a/Templates/News/newsbox2.tpl b/Templates/News/newsbox2.tpl deleted file mode 100644 index 407a621d..00000000 --- a/Templates/News/newsbox2.tpl +++ /dev/null @@ -1,29 +0,0 @@ -areArtifactsSpawned(), $database->areWWVillagesSpawned(), $database->areArtifactsSpawned(true)]; - -?> -
newsbox 2
-
- - - - - - - -
-:
-
\ No newline at end of file diff --git a/Templates/a2b/search.tpl b/Templates/a2b/search.tpl deleted file mode 100644 index 7e438406..00000000 --- a/Templates/a2b/search.tpl +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - -getCoor($_GET['z']); -} -else{ -$coor['x']=$form->getValue("x"); -$coor['y']=$form->getValue("y"); -} -?> - - -
- - - - Village: - -
- - - - or
- - - x: - - y: - -
- - - -

getError("error"); ?>

- diff --git a/Templates/a2b/units_1.tpl b/Templates/a2b/units_1.tpl deleted file mode 100644 index b9b736eb..00000000 --- a/Templates/a2b/units_1.tpl +++ /dev/null @@ -1,104 +0,0 @@ -

Send Troops

- -
- - - - - "; - }else{ - echo "(0)"; - } - ?> - - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - - - "; - }else{ - echo "(0)"; - } - ?> - - - "; - }else{ - echo "(0)"; - } - ?> - - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - - - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - "; - } - ?> - -
Legionnaire unitarray['u1']<=0) {echo ' disabled="disabled"';}?> name="t1" value="" maxlength="6" type="text"> - unitarray['u1']>0){ - echo "unitarray['u1']."; return false;\">(".$village->unitarray['u1'].")Equites Legati unitarray['u4']<=0) {echo ' disabled="disabled"';}?> name="t4" value="" maxlength="6" type="text"> - unitarray['u4']>0){ - echo "unitarray['u4']."; return false;\">(".$village->unitarray['u4'].")Battering Ram unitarray['u7']<=0) {echo ' disabled="disabled"';}?> name="t7" value="" maxlength="6" type="text"> - unitarray['u7']>0){ - echo "unitarray['u7']."; return false;\">(".$village->unitarray['u7'].")Senator unitarray['u9']<=0) {echo ' disabled="disabled"';}?> name="t9" value="" maxlength="6" type="text"> - unitarray['u9']>0){ - echo "unitarray['u9']."; return false;\">(".$village->unitarray['u9'].")
Praetorian unitarray['u2']<=0) {echo ' disabled="disabled"';}?> name="t2" value="" maxlength="6" type="text"> - unitarray['u2']>0){ - echo "unitarray['u2']."; return false;\">(".$village->unitarray['u2'].")Equites Imperatoris unitarray['u5']<=0) {echo ' disabled="disabled"';}?> name="t5" value="" maxlength="6" type="text"> - unitarray['u5']>0){ - echo "unitarray['u5']."; return false;\">(".$village->unitarray['u5'].")Fire Catapult unitarray['u8']<=0) {echo ' disabled="disabled"';}?> name="t8" value="" maxlength="6" type="text"> - unitarray['u8']>0){ - echo "unitarray['u8']."; return false;\">(".$village->unitarray['u8'].")Settler unitarray['u10']<=0) {echo ' disabled="disabled"';}?> name="t10" value="" maxlength="6" type="text"> - unitarray['u10']>0){ - echo "unitarray['u10']."; return false;\">(".$village->unitarray['u10'].")
Imperian unitarray['u3']<=0) {echo ' disabled="disabled"';}?> name="t3" value="" maxlength="6" type="text"> - unitarray['u3']>0){ - echo "unitarray['u3']."; return false;\">(".$village->unitarray['u3'].")Equites Caesaris unitarray['u6']<=0) {echo ' disabled="disabled"';}?> name="t6" value="" maxlength="6" type="text"> - unitarray['u6']>0){ - echo "unitarray['u6']."; return false;\">(".$village->unitarray['u6'].")unitarray['hero']>0){ - echo "\"Hero\" "; - echo "unitarray['hero']."; return false;\">(".$village->unitarray['hero'].")
- diff --git a/Templates/a2b/units_2.tpl b/Templates/a2b/units_2.tpl deleted file mode 100644 index 42723fc2..00000000 --- a/Templates/a2b/units_2.tpl +++ /dev/null @@ -1,104 +0,0 @@ -

Send Troops

- - - - - - - "; - }else{ - echo "(0)"; - } - ?> - - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - - - "; - }else{ - echo "(0)"; - } - ?> - - - "; - }else{ - echo "(0)"; - } - ?> - - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - - - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - "; - } - ?> - -
Clubswinger unitarray['u11']<=0) {echo ' disabled="disabled"';}?> name="t1" value="" maxlength="6" type="text"> - unitarray['u11']>0){ - echo "unitarray['u11']."; return false;\">(".$village->unitarray['u11'].")Scout unitarray['u14']<=0) {echo ' disabled="disabled"';}?> name="t4" value="" maxlength="6" type="text"> - unitarray['u14']>0){ - echo "unitarray['u14']."; return false;\">(".$village->unitarray['u14'].")Ram unitarray['u17']<=0) {echo ' disabled="disabled"';}?> name="t7" value="" maxlength="6" type="text"> - unitarray['u17']>0){ - echo "unitarray['u17']."; return false;\">(".$village->unitarray['u17'].")Chief unitarray['u19']<=0) {echo ' disabled="disabled"';}?> name="t9" value="" maxlength="6" type="text"> - unitarray['u19']>0){ - echo "unitarray['u19']."; return false;\">(".$village->unitarray['u19'].")
Spearman unitarray['u12']<=0) {echo ' disabled="disabled"';}?> name="t2" value="" maxlength="6" type="text"> - unitarray['u12']>0){ - echo "unitarray['u12']."; return false;\">(".$village->unitarray['u12'].")Paladin unitarray['u15']<=0) {echo ' disabled="disabled"';}?> name="t5" value="" maxlength="6" type="text"> - unitarray['u15']>0){ - echo "unitarray['u15']."; return false;\">(".$village->unitarray['u15'].")Catapult unitarray['u18']<=0) {echo ' disabled="disabled"';}?> name="t8" value="" maxlength="6" type="text"> - unitarray['u18']>0){ - echo "unitarray['u18']."; return false;\">(".$village->unitarray['u18'].")Settler unitarray['u20']<=0) {echo ' disabled="disabled"';}?> name="t10" value="" maxlength="6" type="text"> - unitarray['u20']>0){ - echo "unitarray['u20']."; return false;\">(".$village->unitarray['u20'].")
Axeman unitarray['u13']<=0) {echo ' disabled="disabled"';}?> name="t3" value="" maxlength="6" type="text"> - unitarray['u13']>0){ - echo "unitarray['u13']."; return false;\">(".$village->unitarray['u13'].")Teutonic Knight unitarray['u16']<=0) {echo ' disabled="disabled"';}?> name="t6" value="" maxlength="6" type="text"> - unitarray['u16']>0){ - echo "unitarray['u16']."; return false;\">(".$village->unitarray['u16'].")unitarray['hero']>0){ - echo "\"Hero\" "; - echo "unitarray['hero']."; return false;\">(".$village->unitarray['hero'].")
- diff --git a/Templates/a2b/units_3.tpl b/Templates/a2b/units_3.tpl deleted file mode 100644 index e3700947..00000000 --- a/Templates/a2b/units_3.tpl +++ /dev/null @@ -1,104 +0,0 @@ -

Send Troops

- - - - - - - "; - }else{ - echo "(0)"; - } - ?> - - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - - - "; - }else{ - echo "(0)"; - } - ?> - - - "; - }else{ - echo "(0)"; - } - ?> - - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - - - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - "; - } - ?> - -
Phalanx unitarray['u21']<=0) {echo ' disabled="disabled"';}?> name="t1" value="" maxlength="6" type="text"> - unitarray['u21']>0){ - echo "unitarray['u21']."; return false;\">(".$village->unitarray['u21'].")Theutates Thunder unitarray['u24']<=0) {echo ' disabled="disabled"';}?> name="t4" value="" maxlength="6" type="text"> - unitarray['u24']>0){ - echo "unitarray['u24']."; return false;\">(".$village->unitarray['u24'].")Ram unitarray['u27']<=0) {echo ' disabled="disabled"';}?> name="t7" value="" maxlength="6" type="text"> - unitarray['u27']>0){ - echo "unitarray['u27']."; return false;\">(".$village->unitarray['u27'].")Chieftain unitarray['u29']<=0) {echo ' disabled="disabled"';}?> name="t9" value="" maxlength="6" type="text"> - unitarray['u29']>0){ - echo "unitarray['u29']."; return false;\">(".$village->unitarray['u29'].")
Swordsman unitarray['u22']<=0) {echo ' disabled="disabled"';}?> name="t2" value="" maxlength="6" type="text"> - unitarray['u22']>0){ - echo "unitarray['u22']."; return false;\">(".$village->unitarray['u22'].")Druidrider unitarray['u25']<=0) {echo ' disabled="disabled"';}?> name="t5" value="" maxlength="6" type="text"> - unitarray['u25']>0){ - echo "unitarray['u25']."; return false;\">(".$village->unitarray['u25'].")Trebuchet unitarray['u28']<=0) {echo ' disabled="disabled"';}?> name="t8" value="" maxlength="6" type="text"> - unitarray['u28']>0){ - echo "unitarray['u28']."; return false;\">(".$village->unitarray['u28'].")Settler unitarray['u30']<=0) {echo ' disabled="disabled"';}?> name="t10" value="" maxlength="6" type="text"> - unitarray['u30']>0){ - echo "unitarray['u30']."; return false;\">(".$village->unitarray['u30'].")
Pathfinder unitarray['u23']<=0) {echo ' disabled="disabled"';}?> name="t3" value="" maxlength="6" type="text"> - unitarray['u23']>0){ - echo "unitarray['u23']."; return false;\">(".$village->unitarray['u23'].")Haeduan unitarray['u26']<=0) {echo ' disabled="disabled"';}?> name="t6" value="" maxlength="6" type="text"> - unitarray['u26']>0){ - echo "unitarray['u26']."; return false;\">(".$village->unitarray['u26'].")unitarray['hero']>0){ - echo "\"Hero\" "; - echo "unitarray['hero']."; return false;\">(".$village->unitarray['hero'].")
- diff --git a/Templates/a2b/units_4.tpl b/Templates/a2b/units_4.tpl deleted file mode 100644 index a13c2868..00000000 --- a/Templates/a2b/units_4.tpl +++ /dev/null @@ -1,104 +0,0 @@ -

Send Troops

- - - - - - - "; - }else{ - echo "(0)"; - } - ?> - - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - - - "; - }else{ - echo "(0)"; - } - ?> - - - "; - }else{ - echo "(0)"; - } - ?> - - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - - - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - "; - } - ?> - -
<?php echo U31; ?> unitarray['u31']<=0) {echo ' disabled="disabled"';}?> name="t1" value="" maxlength="6" type="text"> - unitarray['u31']>0){ - echo "unitarray['u31']."; return false;\">(".$village->unitarray['u31'].")<?php echo U34; ?> unitarray['u34']<=0) {echo ' disabled="disabled"';}?> name="t4" value="" maxlength="6" type="text"> - unitarray['u34']>0){ - echo "unitarray['u34']."; return false;\">(".$village->unitarray['u34'].")<?php echo U37; ?> unitarray['u37']<=0) {echo ' disabled="disabled"';}?> name="t7" value="" maxlength="6" type="text"> - unitarray['u37']>0){ - echo "unitarray['u37']."; return false;\">(".$village->unitarray['u37'].")<?php echo U39; ?> unitarray['u39']<=0) {echo ' disabled="disabled"';}?> name="t9" value="" maxlength="6" type="text"> - unitarray['u39']>0){ - echo "unitarray['u39']."; return false;\">(".$village->unitarray['u39'].")
<?php echo U32; ?> unitarray['u32']<=0) {echo ' disabled="disabled"';}?> name="t2" value="" maxlength="6" type="text"> - unitarray['u32']>0){ - echo "unitarray['u32']."; return false;\">(".$village->unitarray['u32'].")<?php echo U35; ?> unitarray['u35']<=0) {echo ' disabled="disabled"';}?> name="t5" value="" maxlength="6" type="text"> - unitarray['u35']>0){ - echo "unitarray['u35']."; return false;\">(".$village->unitarray['u35'].")<?php echo U38; ?> unitarray['u38']<=0) {echo ' disabled="disabled"';}?> name="t8" value="" maxlength="6" type="text"> - unitarray['u38']>0){ - echo "unitarray['u38']."; return false;\">(".$village->unitarray['u38'].")<?php echo U40; ?> unitarray['u40']<=0) {echo ' disabled="disabled"';}?> name="t10" value="" maxlength="6" type="text"> - unitarray['u40']>0){ - echo "unitarray['u40']."; return false;\">(".$village->unitarray['u40'].")
<?php echo U33; ?> unitarray['u33']<=0) {echo ' disabled="disabled"';}?> name="t3" value="" maxlength="6" type="text"> - unitarray['u33']>0){ - echo "unitarray['u33']."; return false;\">(".$village->unitarray['u33'].")<?php echo U36; ?> unitarray['u36']<=0) {echo ' disabled="disabled"';}?> name="t6" value="" maxlength="6" type="text"> - unitarray['u36']>0){ - echo "unitarray['u36']."; return false;\">(".$village->unitarray['u36'].")unitarray['hero']>0){ - echo "\"Hero\" "; - echo "unitarray['hero']."; return false;\">(".$village->unitarray['hero'].")
- diff --git a/Templates/a2b/units_5.tpl b/Templates/a2b/units_5.tpl deleted file mode 100644 index 4e3d0c6f..00000000 --- a/Templates/a2b/units_5.tpl +++ /dev/null @@ -1,99 +0,0 @@ -

Send Troops

- - - - - - - "; - }else{ - echo "(0)"; - } - ?> - - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - - - "; - }else{ - echo "(0)"; - } - ?> - - - "; - }else{ - echo "(0)"; - } - ?> - - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - - - "; - }else{ - echo "(0)"; - } - ?> - "; - }else{ - echo "(0)"; - } - ?> - - -
<?php echo U41; ?> unitarray['u41']<=0) {echo ' disabled="disabled"';}?> name="t1" value="" maxlength="6" type="text"> - unitarray['u41']>0){ - echo "unitarray['u41']."; return false;\">(".$village->unitarray['u41'].")<?php echo U44; ?> unitarray['u44']<=0) {echo ' disabled="disabled"';}?> name="t4" value="" maxlength="6" type="text"> - unitarray['u44']>0){ - echo "unitarray['u44']."; return false;\">(".$village->unitarray['u44'].")<?php echo U47; ?> unitarray['u47']<=0) {echo ' disabled="disabled"';}?> name="t7" value="" maxlength="6" type="text"> - unitarray['u47']>0){ - echo "unitarray['u47']."; return false;\">(".$village->unitarray['u47'].")<?php echo U49; ?> unitarray['u49']<=0) {echo ' disabled="disabled"';}?> name="t9" value="" maxlength="6" type="text"> - unitarray['u49']>0){ - echo "unitarray['u49']."; return false;\">(".$village->unitarray['u49'].")
<?php echo U42; ?> unitarray['u42']<=0) {echo ' disabled="disabled"';}?> name="t2" value="" maxlength="6" type="text"> - unitarray['u42']>0){ - echo "unitarray['u42']."; return false;\">(".$village->unitarray['u42'].")<?php echo U45; ?> unitarray['u45']<=0) {echo ' disabled="disabled"';}?> name="t5" value="" maxlength="6" type="text"> - unitarray['u45']>0){ - echo "unitarray['u45']."; return false;\">(".$village->unitarray['u45'].")<?php echo U48; ?> unitarray['u48']<=0) {echo ' disabled="disabled"';}?> name="t8" value="" maxlength="6" type="text"> - unitarray['u48']>0){ - echo "unitarray['u48']."; return false;\">(".$village->unitarray['u48'].")<?php echo U50; ?> unitarray['u50']<=0) {echo ' disabled="disabled"';}?> name="t10" value="" maxlength="6" type="text"> - unitarray['u50']>0){ - echo "unitarray['u50']."; return false;\">(".$village->unitarray['u50'].")
<?php echo U43; ?> unitarray['u43']<=0) {echo ' disabled="disabled"';}?> name="t3" value="" maxlength="6" type="text"> - unitarray['u43']>0){ - echo "unitarray['u43']."; return false;\">(".$village->unitarray['u43'].")<?php echo U46; ?> unitarray['u46']<=0) {echo ' disabled="disabled"';}?> name="t6" value="" maxlength="6" type="text"> - unitarray['u46']>0){ - echo "unitarray['u46']."; return false;\">(".$village->unitarray['u46'].")
- diff --git a/Templates/activate/activate.tpl b/Templates/activate/activate.tpl deleted file mode 100644 index 27eec6da..00000000 --- a/Templates/activate/activate.tpl +++ /dev/null @@ -1,208 +0,0 @@ -
- date('d.m.y') || START_DATE == date('d.m.y') && START_TIME <= date('H:i')){ ?> -
Activation Availble in:
- - -

- date('d.m.y') || START_DATE == date('d.m.y') && START_TIME <= date('H:i')){ - ?> -

Activation Availble in:
- - -
-
-

- Activation code: -

- -

- - -

- -
-
- - - \ No newline at end of file diff --git a/Templates/activate/activated.tpl b/Templates/activate/activated.tpl deleted file mode 100644 index c971946f..00000000 --- a/Templates/activate/activated.tpl +++ /dev/null @@ -1,7 +0,0 @@ -
-

register for the game

-
registration
- -

Your account has been successfully activated.

Follow this link to log in

- -
\ No newline at end of file diff --git a/Templates/activate/cantfind.tpl b/Templates/activate/cantfind.tpl deleted file mode 100644 index bd4a85f0..00000000 --- a/Templates/activate/cantfind.tpl +++ /dev/null @@ -1,4 +0,0 @@ -

Either the password is wrong
or the registration has already been deleted.

"; -?> \ No newline at end of file diff --git a/Templates/activate/delete.tpl b/Templates/activate/delete.tpl deleted file mode 100644 index 5ea435f9..00000000 --- a/Templates/activate/delete.tpl +++ /dev/null @@ -1,34 +0,0 @@ -
-

register for the game

- - -
No email received?
- In order to play Travian you need a valid email address to which the activation code can be send. There are exceptional cases when this email might not arrive. -

Following causes are possible:

-
-
    -
  • Typos in the email address
  • -
  • The email account`s storage limit is reached
  • -
  • Wrong domain: There is e.g. no @aol.de, only @aol.com
  • -
  • The email has been moved to the spam/junk folder
  • -
-

You can undo the registration and re-register with a different email address. -Then the activation code will be send again
-
- - - - - - - - - - - -
NicknamegetActivateField($_GET['id'],"username",0); echo $naam; ?>
Password
-

- -

-
-
diff --git a/Templates/dorf2.tpl b/Templates/dorf2.tpl deleted file mode 100644 index 2a67c1f8..00000000 --- a/Templates/dorf2.tpl +++ /dev/null @@ -1,150 +0,0 @@ - - -walling()){ - $wtitle = Building::procResType($building->walling())." Level ".$village->resarray['f40']; -}else{ - $wtitle = ($village->resarray['f40'] == 0) ? "Outer building site" : Building::procResType($village->resarray['f40t'], 0)." Level ".$village->resarray['f40']; -} -?> - - - - - - "53,91,91,71,127,91,91,112", "136,66,174,46,210,66,174,87", "196,56,234,36,270,56,234,77", "270,69,308,49,344,69,308,90", "327,117,365,97,401,117,365,138", "14,129,52,109,88,129,52,150", "97,137,135,117,171,137,135,158", "182,119,182,65,257,65,257,119,220,140", - "337,156,375,136,411,156,375,177", "2,199,40,179,76,199,40,220", "129,164,167,144,203,164,167,185", "92,189,130,169,166,189,130,210", "342,216,380,196,416,216,380,237", "22,238,60,218,96,238,60,259", "167,232,205,212,241,232,205,253", "290,251,328,231,364,251,328,272", - "95,273,133,253,169,273,133,294", "222,284,260,264,296,284,260,305", "80,306,118,286,154,306,118,327", "199,316,237,296,273,316,237,337", "270,158,303,135,316,155,318,178,304,211,288,227,263,238,250,215"]; -for($t = 19; $t <= 39; $t++){ - if($village->natar == 1 && in_array($t, [25, 26, 29, 30, 33])){ - if($t == 33){ - if($village->resarray['f99'] > 0) $title = Building::procResType(40)." Level ".$village->resarray['f99']; - else $title = Building::procResType(40); - echo ""; - } - }else{ - if($village->resarray['f'.$t.'t'] > 0){ - $title = Building::procResType($village->resarray['f'.$t.'t'])." Level ".$village->resarray['f'.$t]; - }else{ - $title = "Building site"; - if(($t == 39) && ($village->resarray['f'.$t] == 0)) $title = "Rally Point building site"; - } - echo ""; - } -} -?> - - - - - -tribe == 3) $session->tribe = ''; - -if($building->walling()) $vmapc = "d2_1".$session->tribe; -else $vmapc = ($village->resarray['f40'] == 0) ? "d2_0" : "d2_1".$session->tribe; -?> -
-natar == 1 and (($i + 18) == '25' || ($i + 18) == '26' || ($i + 18) == '29' || ($i + 18) == '30' || ($i + 18) == '33')){ - }else{ - $text = "Building site"; - $img = "iso"; - if($village->resarray['f'.($i + 18).'t'] != 0){ - $text = Building::procResType($village->resarray['f'.($i + 18).'t'])." Level ".$village->resarray['f'.($i + 18)]; - $img = "g".$village->resarray['f'.($i + 18).'t']; - } - foreach($building->buildArray as $job){ - if($job['field'] == ($i + 18)){ - $img = 'g'.$job['type'].'b'; - $text = Building::procResType($job['type'])." Level ".$village->resarray['f'.$job['field']]; - } - } - echo "\"$text\""; - // set event last quest - if(($_SESSION['qst'] == 38 && QTYPE == 37) || ($_SESSION['qst'] == 31 && QTYPE == 25)){ - if($i < 8){ - $dte = ["tur", "purp", "yell", "oran", "green", "red", "dark"]; - $im = $dte[$i - 1]; - echo "\"$text\""; - } - } - } -} -if(($_SESSION['qst'] == 38 && QTYPE == 37) || ($_SESSION['qst'] == 31 && QTYPE == 25)){ - $database->updateUserField($_SESSION['username'], 'quest', '40', 0); - $_SESSION['qst'] = 40; -} -if($village->resarray['f39'] == 0){ - if($building->rallying()) echo "\"Rallyresarray['f39']."\" />"; - else echo "\"Rally"; -} -else echo "\"Rallyresarray['f39']."\" />"; - -?> -resarray['f99t'] == 40){ - if($village->resarray['f99'] >= 0 && $village->resarray['f99'] <= 19){ - echo 'Worldwonder'; - } - if($village->resarray['f99'] >= 20 && $village->resarray['f99'] <= 39){ - echo 'Worldwonder'; - } - if($village->resarray['f99'] >= 40 && $village->resarray['f99'] <= 59){ - echo 'Worldwonder'; - } - if($village->resarray['f99'] >= 60 && $village->resarray['f99'] <= 79){ - echo 'Worldwonder'; - } - if($village->resarray['f99'] >= 80 && $village->resarray['f99'] <= 99){ - echo 'Worldwonder'; - } - if($village->resarray['f99'] == 100){ - echo 'Worldwonder'; - } -} -?> -
> -resarray['f'.($i + 18).'t'] != 0){ - echo "
".$village->resarray['f'.($i + 18)]."
"; - } -} -if($village->resarray['f39t'] != 0){ - echo "
".$village->resarray['f39']."
"; -} -if($village->resarray['f40t'] != 0){ - echo "
".$village->resarray['f40']."
"; -} -if($village->resarray['f99t'] != 0){ - echo "
".$village->resarray['f99']."
"; -} -?> -
- -
- - onclick="vil_levels_toggle()" /> diff --git a/Templates/dorf3/1.tpl b/Templates/dorf3/1.tpl deleted file mode 100644 index ccaab45a..00000000 --- a/Templates/dorf3/1.tpl +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - -getProfileVillages($session->uid); - foreach($varray as $vil){ - $vid = $vil['wref']; - $vdata = $database->getVillage($vid); - $jobs = $database->getJobs($vid); - $units = $database->getTraining($vid); - $unitsArray = []; - foreach($units as $unit) $unitsArray[$unit['unit']] += $unit['amt']; - $totalmerchants = $building->getTypeLevel(17,$vid); - $availmerchants = $totalmerchants - $database->totalMerchantUsed($vid); - $incoming_attacks = $database->getMovement(3,$vid,1); - $bui = $tro = $att = ''; - - if (count($incoming_attacks) > 0) { - $inc_atts = count($incoming_attacks); - for($i=0;$i 0) { - $att = ''.count($incoming_attacks).' incoming attack'.(count($incoming_attacks)>1?'s':'').''; - } - } - foreach($jobs as $b){ - $bui .= ''.Building::procResType($b['type']).''; - } - foreach($unitsArray as $key => $c){ - if($key == 99) $key = 51; - $gid = in_array($key, $unitsbytype['infantry'])?19:(in_array($key, $unitsbytype['cavalry'])?20:(in_array($key, $unitsbytype['siege'])?21:(in_array(($key-60), $unitsbytype['infantry'])?29:(in_array(($key-60), $unitsbytype['cavalry'])?30:($key == 51)?36:($building->getTypeLevel(26)>0?26:25))))); - if($key > 60) { $key -= 60; } - $tro .= ''.$c.'x '.$technology->getUnitName($key).''; - } - if($vid == $village->wid) { $class = 'hl'; } else {$class = ''; } - -echo ' - - - - - - -'; - - } -?> -
Overview
VillageAttacksBuildingTroopsMerchants
'.$vdata['name'].''.$att.''.$bui.''.$tro.''.($totalmerchants>0?'':'').$availmerchants.'/'.$totalmerchants.'
diff --git a/Templates/dorf3/2.tpl b/Templates/dorf3/2.tpl deleted file mode 100644 index a00c5a44..00000000 --- a/Templates/dorf3/2.tpl +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - -getProfileVillages($session->uid); -$woodSUM = 0; -$claySUM = 0; -$ironSUM = 0; -$cropSUM = 0; -foreach($varray as $vil){ - $vid = $vil['wref']; - $vdata = $database->getVillage($vid); - $totalmerchants = $building->getTypeLevel(17,$vid); - $availmerchants = $totalmerchants - $database->totalMerchantUsed($vid); - if($vdata['wood'] > $vdata['maxstore']) { $wood = $vdata['maxstore']; } else { $wood = $vdata['wood']; } - if($vdata['clay'] > $vdata['maxstore']) { $clay = $vdata['maxstore']; } else { $clay = $vdata['clay']; } - if($vdata['iron'] > $vdata['maxstore']) { $iron = $vdata['maxstore']; } else { $iron = $vdata['iron']; } - if($vdata['crop'] > $vdata['maxcrop'] ) { $crop = $vdata['maxcrop']; } else { $crop = $vdata['crop']; } - if($vid == $village->wid){$class = 'hl';}else{$class = '';} - echo ' - - - - - - - - - '; - $woodSUM += $wood; - $claySUM += $clay; - $ironSUM += $iron; - $cropSUM += $crop; -} -?> - - - - - - - -
Resources
VillageMerchants
'.$vdata['name'].''.number_format(round($wood)).''.number_format(round($clay)).''.number_format(round($iron)).''.number_format(round($crop)).''.($totalmerchants>0?'':'').$availmerchants.'/'.$totalmerchants.'
Sum - 
diff --git a/Templates/dorf3/3.tpl b/Templates/dorf3/3.tpl deleted file mode 100644 index 4f2ffca8..00000000 --- a/Templates/dorf3/3.tpl +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - -getProfileVillages($session->uid); -foreach($varray as $vil){ - $vid = $vil['wref']; - $vdata = $database->getVillage($vid); - $pop = $vdata['pop']; - $wood = floor($vdata['wood']); - $clay = floor($vdata['clay']); - $iron = floor($vdata['iron']); - $crop = floor($vdata['crop']); - $maxs = $vdata['maxstore']; - $maxc = $vdata['maxcrop']; - - $vresarray = $database->getResourceLevel($vid); - $prod_wood = $sawmill = $prod_clay = $claypit = $prod_iron = $foundry = $prod_crop = $grainmill = $bakery = 0; - $woodholder = $clayholder = $ironholder = $cropholder = []; - - for($i = 1; $i <= 38; $i++){ - if($vresarray['f'.$i.'t'] == 1) array_push($woodholder, 'f'.$i); - elseif($vresarray['f'.$i.'t'] == 5) $sawmill = $vresarray['f'.$i]; - elseif($vresarray['f'.$i.'t'] == 2) array_push($clayholder, 'f'.$i); - elseif($vresarray['f'.$i.'t'] == 6) $claypit = $vresarray['f'.$i]; - elseif($vresarray['f'.$i.'t'] == 3) array_push($ironholder, 'f'.$i); - elseif($vresarray['f'.$i.'t'] == 7) $foundry = $vresarray['f'.$i]; - elseif($vresarray['f'.$i.'t'] == 4) array_push($cropholder, 'f'.$i); - elseif($vresarray['f'.$i.'t'] == 8) $grainmill = $vresarray['f'.$i]; - elseif($vresarray['f'.$i.'t'] == 9) $bakery = $vresarray['f'.$i]; - } - for($i = 0; $i <= count($woodholder) - 1; $i++){ - $prod_wood += $bid1[$vresarray[$woodholder[$i]]]['prod']; - } - for($i = 0; $i <= count($clayholder) - 1; $i++){ - $prod_clay += $bid2[$vresarray[$clayholder[$i]]]['prod']; - } - for($i = 0; $i <= count($ironholder) - 1; $i++){ - $prod_iron += $bid3[$vresarray[$ironholder[$i]]]['prod']; - } - for($i = 0; $i <= count($cropholder) - 1; $i++){ - $prod_crop += $bid4[$vresarray[$cropholder[$i]]]['prod']; - } - - if($sawmill >= 1) $prod_wood += $prod_wood / 100 * $bid5[$sawmill]['attri']; - if($claypit >= 1) $prod_clay += $prod_clay / 100 * $bid6[$claypit]['attri']; - if($foundry >= 1) $prod_iron += $prod_iron / 100 * $bid7[$foundry]['attri']; - - - if($grainmill >= 1 || $bakery >= 1){ - $prod_crop += $prod_crop / 100 * ((isset($bid8[$grainmill]['attri']) ? $bid8[$grainmill]['attri'] : 0) + (isset($bid9[$bakery]['attri']) ? $bid9[$bakery]['attri'] : 0)); - } - - $oasisowned = $database->getOasis($vid); - // more oasis logic required - if($session->plus){ - $prod_wood *= 1.25; - $prod_clay *= 1.25; - $prod_iron *= 1.25; - $prod_crop *= 1.25; - } - - $prod_wood *= SPEED; - $prod_clay *= SPEED; - $prod_iron *= SPEED; - $prod_crop *= SPEED; - - $prod_crop -= $pop; - $prod_crop -= $technology->getUpkeep($technology->getAllUnits($vid), 0); - - $percentW = floor($wood / ($maxs / 100)); - $percentC = floor($clay / ($maxs / 100)); - $percentI = floor($iron / ($maxs / 100)); - $percentCr = floor($crop / ($maxc / 100)); - - if($vid == $village->wid) $class = 'hl'; - else $class = ''; - - $cr = 95; // warning percentage - if($percentW >= $cr) $critW = 'crit'; - else $critW = ''; - - if($percentC >= $cr) $critC = 'crit'; - else $critC = ''; - - if($percentI >= $cr) $critI = 'crit'; - else $critI = ''; - - if($percentCr >= $cr) $critCR = 'crit'; - else $critCR = ''; - - if($prod_crop < 0) $critCR = $critNCR = 'crit'; - else $critNCR = ''; - - $timerwood = floor(($maxs - $wood) / $prod_wood * 3600); - $timerclay = floor(($maxs - $clay) / $prod_clay * 3600); - $timeriron = floor(($maxs - $iron) / $prod_iron * 3600); - $timer1 = min($timerwood, $timerclay, $timeriron); - $timer2 = floor(($prod_crop >= 0 ? $maxc - $crop : $crop) / abs($prod_crop) * 3600); - - if($timer1 > 0) $session->timer++; - echo ' - - - - - '; - - if($timer2 > 0) $session->timer++; - echo ' - - '; -} -?> - -
Warehouse
VillageWoodClayIronClockCropClock
'.$vdata['name'].''.$percentW.'%'.$percentC.'%'.$percentI.'% 0 ? 'id="timer'.$session->timer.'"' : '').'>'.($timer1 >= 0 ? $generator->getTimeFormat($timer1) : 'Never').''.$percentCr.'% 0 ? 'id="timer'.$session->timer.'"' : '').'>'.($timer2 >= 0 ? $generator->getTimeFormat($timer2) : 'Never').'
diff --git a/Templates/dorf3/4.tpl b/Templates/dorf3/4.tpl deleted file mode 100644 index 4cf37597..00000000 --- a/Templates/dorf3/4.tpl +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - -getProfileVillages($session->uid); -foreach($varray as $vil){ - $vid = $vil['wref']; - $cp = $database->getVillageField($vid, 'cp'); - $exp = 0; - for($i=1;$i<=3;$i++) { - ${'slot'.$i} = $database->getVillageField($vid, 'exp'.$i); - if(${'slot'.$i} != 0) { $exp++; } - } - $lvlTH = $building->getTypeLevel(24,$vid); - $lvlRes = $building->getTypeLevel(25,$vid); - $lvlPal = $building->getTypeLevel(26,$vid); - $maxslots = ($lvlRes>=10?floor($lvlRes/10):0)+($lvlPal>=10?floor(($lvlPal-5)/5):0); - $hasCel = $database->getVillageField($vid,'celebration'); - if ($hasCel <> 0) { $timer++; } - - if($vid == $village->wid){$class = 'hl';}else{$class = '';} - - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - $gesexp = (isset($gesexp) ? $gesexp : 0) + $exp; - $gesdorf = (isset($gesdorf) ? $gesdorf : 0) + $maxslots; - $gescp = (isset($gescp) ? $gescp : 0) + $cp; - $gessied = (isset($gessied) ? $gessied : 0) + $siedler; - $gessen = (isset($gessen) ? $gessen : 0) + $senator; - echo ''; -} -?> - - - - - - - - - - -
Culture points
VillageCP/dayCelebrationsTroopsSlots
'.$vil['name'].''.$cp.''.($lvlTH>0?''.($hasCel<>0?''.$generator->getTimeFormat($hasCel-time()).'':'â—').'':' ').''; - $unit = $database->getUnit($vid); - $tribe = $session->tribe; - $siedler = $unit['u'.$tribe*10]; - $siedlerp = ''; - $senator = (isset($unit['u'.((($tribe-1)*10)+9)]) ? $unit['u'.((($tribe-1)*10)+9)] : 0); - $senatorp = ''; - $i=1; - while($i <=$siedler) { - echo $siedlerp; - $i++; - } - $s=1; - while($s <=$senator) { - echo $senatorp; - $s++; - } - - echo ''.$exp.'/'.$maxslots.'
Sum  -
diff --git a/Templates/dorf3/5.tpl b/Templates/dorf3/5.tpl deleted file mode 100644 index fdd179c7..00000000 --- a/Templates/dorf3/5.tpl +++ /dev/null @@ -1,72 +0,0 @@ - - - -getProfileVillages($session->uid); -?> - -tribe-1)*10+1; $i<=($session->tribe)*10; $i++) { - echo ''; - $unit_total['u'.$i] = 0; - } - echo ''; -?> - -wid){$class = 'hl';}else{$class = '';} - - $units = $database->getEnforceVillage($vid,1); - array_unshift($units,$database->getUnit($vid)); - - echo ''; - $movement = $database->getVillageMovement($vid); - for ($i=($session->tribe-1)*10+1; $i<=($session->tribe)*10; $i++) { - $uni['u'.$i] = 0; - foreach($units as $unit) { - $uni['u'.$i] += $unit['u'.$i]; - $unit_total['u'.$i] += $unit['u'.$i]; - } - if (isset($movement['u'.$i])) { - $uni[ 'u' . $i ] += $movement[ 'u' . $i ]; - $unit_total['u'.$i] += $movement['u'.$i]; - } - if($uni['u'.$i] !=0){$cl = '';}else{$cl = 'none';} - echo ''; - } - $uni['hero'] = 0; - if (!isset($unit_total['hero'])) { - $unit_total['hero'] = 0; - } - foreach($units as $unit) { - $uni['hero'] += $unit['hero']; - $unit_total['hero'] += $unit['hero']; - } - - if (isset($movement['hero'])) { - $uni['hero'] += $movement['hero']; - $unit_total['hero'] += $movement['hero']; - } - - if($uni['hero'] !=0){$cl = '';}else{$cl = 'none';} - echo ''; - echo ''; - } -?> - - - -tribe-1)*10+1; $i<=($session->tribe)*10; $i++) { - if($unit_total['u'.$i] !=0){$cl = '';}else{$cl = 'none';} - echo ''; - } - if($unit_total['hero'] !=0){$cl = '';}else{$cl = 'none';} - echo ''; - -?> -
Own troops
Village
'.$vil['name'].''.$uni['u'.$i].''.$uni['hero'].'
Sum'.$unit_total['u'.$i].''.$unit_total['hero'].'
diff --git a/Templates/dorf3/menu.tpl b/Templates/dorf3/menu.tpl deleted file mode 100644 index 65dbf002..00000000 --- a/Templates/dorf3/menu.tpl +++ /dev/null @@ -1,7 +0,0 @@ -
- Overview - | Resources - | Warehouse - | CP - | Troops -
\ No newline at end of file diff --git a/Templates/dorf3/noplus.tpl b/Templates/dorf3/noplus.tpl deleted file mode 100644 index 008597ad..00000000 --- a/Templates/dorf3/noplus.tpl +++ /dev/null @@ -1,37 +0,0 @@ -
- Overview - | Resources - | Warehouse - | CP - | Troops -
- - - - - - - - - - - -getProfileVillages($session->uid); -foreach($varray as $vil){ - $vid = $vil['wref']; - $vdata = $database->getVillage($vid); - if($vdata['capital'] == 1){$class = 'hl';}else{$class = '';} - echo ' - - - - - - - - '; -} -?> - -
Overview
VillageAttacksBuildingTroopsMerchants
'.$vdata['name'].'????/?
\ No newline at end of file diff --git a/Templates/field.tpl b/Templates/field.tpl deleted file mode 100644 index 2733c6da..00000000 --- a/Templates/field.tpl +++ /dev/null @@ -1,52 +0,0 @@ -"101,33,28","165,32,28","224,46,28","46,63,28","138,74,28","203,94,28","262,86,28","31,117,28","83,110,28","214,142,28","269,146,28","42,171,28","93,164,28","160,184,28","239,199,28","87,217,28","140,231,28","190,232,28"); - -//Load level & type -$arrayVillage = $village->resarray; -?> - -getJobs($village->wid); -$activeFields = []; -if (count($jobs)) { - foreach ($jobs as $job) { - if ( $job['type'] <= 4 ) { - $activeFields[ $job['field'] ] = true; - } - } -} - -for ($i=1; $i<=18; $i++) { - echo " \r\n"; -} -?> - - - -
-"; - } -} -?> - -
\ No newline at end of file diff --git a/Templates/footer.tpl b/Templates/footer.tpl deleted file mode 100644 index a90f393f..00000000 --- a/Templates/footer.tpl +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/Templates/goldClub/.htaccess b/Templates/goldClub/.htaccess deleted file mode 100644 index 85b65c30..00000000 --- a/Templates/goldClub/.htaccess +++ /dev/null @@ -1,4 +0,0 @@ - -Order allow,deny -Deny from all - \ No newline at end of file diff --git a/Templates/goldClub/farmlist.tpl b/Templates/goldClub/farmlist.tpl deleted file mode 100644 index 0139b494..00000000 --- a/Templates/goldClub/farmlist.tpl +++ /dev/null @@ -1,187 +0,0 @@ -getVillageField($_POST['did'], 'owner') == $session->uid){ - $database->createFarmList($_POST['did'], $session->uid, $_POST['name']); -}else if(isset($_GET['t']) == 99 && isset($_POST['action']) == 'addList'){ - header("Location: build.php?gid=16&t=99&action=addList"); - exit; -} - -?> -
- -dblink,"SELECT id, name, owner, wref FROM ".TB_PREFIX."farmlist WHERE owner = ".(int) $session->uid." ORDER BY wref DESC"); -$query = mysqli_num_rows($sql); -while($row = mysqli_fetch_array($sql)){ - $lid = $row["id"]; - $lname = $row["name"]; - $lowner = $row["owner"]; - $lwref = $row["wref"]; - $lvname = $database->getVillageField($row["wref"], 'name'); -?> -
- delete - - -
-
-
- -
-
- - - - - - - - - - - - - - -dblink,"SELECT * FROM ".TB_PREFIX."raidlist WHERE lid = ".(int) $lid." ORDER BY distance ASC"); -$query2 = mysqli_num_rows($sql2); -if(!$query2) echo ''; -else -{ - while($row = mysqli_fetch_array($sql2)){ - $id = $row['id']; - $lid = $row['lid']; - $towref = $row['towref']; - $x = $row['x']; - $y = $row['y']; - $distance = $row['distance']; - - for($i = 1; $i <= 6; $i++) ${'t'.$i} = $row['t'.$i]; - - $vdata = $database->getVillage($towref); -?> - - - - - - - - - - - - - -
VillagePopDistanceTroopsLast raid
'.NO_VILLAGES.'
- - - getMovement(3, $towref, 1); - if (($attacksCount = count($attacks)) > 0) { - foreach($attacks as $attack){ - if($attack['attack_type'] != 4) $attacksCount -= 1; - } - if($attacksCount > 0) echo ''; - } - ?> - - -"; }; ?> - -tribe - 1) * 10 + 1; - $end = $start + 5; - - for($i = $start; $i <= $end; $i++){ - if(${'t'.($i - $start + 1)} > 0){ - echo '
'.${'t'.($i - $start + 1)}.'
'; - } - } -?> - - - -
-dblink,"SELECT ntype, data, time, id FROM ".TB_PREFIX."ndata WHERE ntype < 4 AND toWref = ".(int) $towref." AND uid = ".(int) $session->uid." ORDER BY time DESC Limit 1"); -if(mysqli_num_rows($getnotice) > 0){ -while($row2 = mysqli_fetch_array($getnotice)){ - $dataarray = explode(",",$row2['data']); - $type2 = $row2['ntype']; - echo " "; - - $allres = $dataarray[23] + $dataarray[24] + $dataarray[25] + $dataarray[26]; - $carry = $dataarray[27]; - - echo ""; - - $date = $generator->procMtime($row2['time']); - echo "".$date[0]." ".date('H:i',$row2['time'])." "; -} -} -?> -
-
- edit -
-

-
-
-
-
- - - -getVilFarmlist($session->uid)){ ?> -
- - -

-
- - -

- - - - \ No newline at end of file diff --git a/Templates/goldClub/farmlist_add.tpl b/Templates/goldClub/farmlist_add.tpl deleted file mode 100644 index d491c4ed..00000000 --- a/Templates/goldClub/farmlist_add.tpl +++ /dev/null @@ -1,37 +0,0 @@ -
-

Create a new list

-
-
- - - - - - - - - - -
- Name: - -
- Village: - - -
- -
-
- - -
-
diff --git a/Templates/goldClub/farmlist_addraid.tpl b/Templates/goldClub/farmlist_addraid.tpl deleted file mode 100644 index 55d5507c..00000000 --- a/Templates/goldClub/farmlist_addraid.tpl +++ /dev/null @@ -1,138 +0,0 @@ -getVilFarmlist($session->uid)){ - header("Location: build.php?id=39&t=99"); - exit; -} - -if(isset($_POST['action']) && $_POST['action'] == 'addSlot' && isset($_POST['lid']) && ($FLData = $database->getFLData($_POST['lid']))['owner'] == $session->uid) { - - $troops = 0; - for($i = 1; $i <= 6; $i++){ - if(!in_array($i + ($session->tribe - 1) * 10, [4, 14, 23])) $troops += $_POST['t'.$i]; - } - - if(!empty($_POST['target_id'])){ - $Wref = $_POST['target_id']; - $WrefCoor = $database->getCoor($Wref); - $WrefX = $WrefCoor['x']; - $WrefY = $WrefCoor['y']; - $type = $database->getVillageType2($Wref); - $oasistype = $type; - $vdata = $database->getVillage($Wref); - }elseif($_POST['x'] != "" && $_POST['y'] != "" && is_numeric($_POST['x']) && is_numeric($_POST['y']) && $_POST['x'] <= WORLD_MAX && $_POST['y'] <= WORLD_MAX){ - $Wref = $database->getVilWref($_POST['x'], $_POST['y']); - $WrefX = $_POST['x']; - $WrefY = $_POST['y']; - $type = $database->getVillageType2($Wref); - $oasistype = $type; - $vdata = $database->getVillage($Wref); - } - - if($_POST['x'] == "" && $_POST['y'] == "" && empty($_POST['target_id'])) $errormsg = "Enter coordinates."; - elseif(($_POST['x'] = "" || $_POST['y'] = "") && empty($_POST['target_id'])) $errormsg = "Enter the correct coordinates."; - elseif($oasistype == 0 && $vdata == 0) $errormsg = "There is no village on those coordinates."; - elseif($troops == 0) $errormsg = "No troops has been selected."; - elseif($database->hasBeginnerProtection($Wref) == 1) $errormsg = "Player under protection."; - elseif($_POST['target_id'] == $FLData['wref'] || $vdata['wref'] == $FLData['wref']) $errormsg = "You can't attack the same village you're sending troops from."; - else - { - if(!empty($_POST['target_id'])){ - $Wref = $_POST['target_id']; - $WrefCoor = $database->getCoor($Wref); - $WrefX = $WrefCoor['x']; - $WrefY = $WrefCoor['y']; - }else{ - $Wref = $database->getVilWref($_POST['x'], $_POST['y']); - $WrefX = $_POST['x']; - $WrefY = $_POST['y']; - } - - $coor = $database->getCoor($village->wid); - $distance = $database->getDistance($coor['x'], $coor['y'], $WrefX, $WrefY); - $database->addSlotFarm($_POST['lid'], $Wref, $WrefX, $WrefY, $distance, $_POST['t1'], $_POST['t2'], $_POST['t3'], $_POST['t4'], $_POST['t5'], $_POST['t6']); - - header("Location: build.php?id=39&t=99"); - exit; -} -} -?> - -
-

Add Slot

- - - - -
-
- - - - - - - - - - -
List name: - -
Target village: - -
-
- - -
-
-
- - -
-
-
-
-
- - -
-
-
-
-
- -
- -
-
diff --git a/Templates/goldClub/farmlist_editraid.tpl b/Templates/goldClub/farmlist_editraid.tpl deleted file mode 100644 index 62994e17..00000000 --- a/Templates/goldClub/farmlist_editraid.tpl +++ /dev/null @@ -1,158 +0,0 @@ -getRaidList($_GET['eid']); - $x = $eiddata['x']; - $y = $eiddata['y']; - for($i = 1; $i <= 6; $i++) ${'t'.$i} = $eiddata['t'.$i]; - $FLData = $database->getFLData($eiddata['lid']); - - //Check if we're editing one of ours raidlists - if($FLData['owner'] != $session->uid){ - header("Location: build.php?id=39&t=99"); - exit; - } -} - -if(isset($_POST['action']) == 'editSlot' && isset($_GET['eid']) && !empty($_GET['eid']) && isset($_POST['lid']) && !empty($_POST['lid'])) { - - $FLData = $database->getFLData($_POST['lid']); - if(!empty($_POST['target_id'])){ - $Wref = $_POST['target_id']; - $WrefCoor = $database->getCoor($Wref); - $WrefX = $WrefCoor['x']; - $WrefY = $WrefCoor['y']; - $type = $database->getVillageType2($Wref); - $oasistype = $type; - $vdata = $database->getVillage($Wref); - }elseif($_POST['x'] != "" && $_POST['y'] != "" && is_numeric($_POST['x']) && is_numeric($_POST['y'])){ - $Wref = $database->getVilWref($_POST['x'], $_POST['y']); - $WrefX = $_POST['x']; - $WrefY = $_POST['y']; - $type = $database->getVillageType2($Wref); - $oasistype = $type; - $vdata = $database->getVillage($Wref); - } - - $troops = 0; - for($i = 1; $i <= 6; $i++){ - if(!in_array($i + ($session->tribe - 1) * 10, [4, 14, 23])) $troops += $_POST['t'.$i]; - } - - if($_POST['x'] == "" && $_POST['y'] == "" && empty($_POST['target_id'])) $errormsg = "Enter coordinates."; - elseif(($_POST['x'] == "" || $_POST['y'] == "") && empty($_POST['target_id'])) $errormsg = "Enter the correct coordinates."; - elseif($oasistype == 0 && $vdata == 0) $errormsg = "There is no village on those coordinates."; - elseif($troops == 0) $errormsg = "No troops has been selected."; - elseif($database->hasBeginnerProtection($Wref) == 1) $errormsg = "Player under protection."; - elseif($_POST['target_id'] == $FLData['wref'] || $vdata['wref'] == $FLData['wref']) $errormsg = "You can't attack the same village you're sending troops from."; - else - { - if(!empty($_POST['target_id'])){ - $Wref = $_POST['target_id']; - $WrefCoor = $database->getCoor($Wref); - $WrefX = $WrefCoor['x']; - $WrefY = $WrefCoor['y']; - }else{ - $Wref = $database->getVilWref($_POST['x'], $_POST['y']); - $WrefX = $_POST['x']; - $WrefY = $_POST['y']; - } - - $coor = $database->getCoor($village->wid); - $distance = $database->getDistance($coor['x'], $coor['y'], $WrefX, $WrefY); - $database->editSlotFarm($_GET['eid'], $_POST['lid'], $database->getRaidList($_GET['eid'])['lid'], $session->uid, $Wref, $WrefX, $WrefY, $distance, $_POST['t1'], $_POST['t2'], $_POST['t3'], $_POST['t4'], $_POST['t5'], $_POST['t6']); - - header("Location: build.php?id=39&t=99"); - exit; -} -} -?> - -
-

Edit Slot

- - - - -
-
- -getRaidList($database->escape($_GET["eid"])); -$lid2 = $getlid['lid']; -?> - - - - - - - - - - -
List name: - -
Target village: - -
-
- - -
-
-
- - -
-
-
-

- - -
-
-
-
-
- - -
-  - -
-
\ No newline at end of file diff --git a/Templates/goldClub/trooplist.tpl b/Templates/goldClub/trooplist.tpl deleted file mode 100644 index 88758d0a..00000000 --- a/Templates/goldClub/trooplist.tpl +++ /dev/null @@ -1,30 +0,0 @@ -tribe - 1) * 10 + 1; -$end = $start + 5; -?> - - - - - - - - - - - -
- -
- -
diff --git a/Templates/header.tpl b/Templates/header.tpl deleted file mode 100644 index da090686..00000000 --- a/Templates/header.tpl +++ /dev/null @@ -1,104 +0,0 @@ - - - diff --git a/Templates/indexnews.tpl b/Templates/indexnews.tpl deleted file mode 100644 index bc52064b..00000000 --- a/Templates/indexnews.tpl +++ /dev/null @@ -1,20 +0,0 @@ - -

[Release by: TravianZ]

-

Thank you for using our version!

diff --git a/Templates/links.tpl b/Templates/links.tpl deleted file mode 100644 index 3135a809..00000000 --- a/Templates/links.tpl +++ /dev/null @@ -1,39 +0,0 @@ - ## -## License: TravianX Project ## -## Copyright: TravianX (c) 2010-2011. All rights reserved. ## -## ## -################################################################################# - -// Fetch all links -$query = $database->getLinks($session->uid); -if (mysqli_num_rows($query) > 0){ -$links = array(); -while($data = mysqli_fetch_assoc($query)) { - $links[] = $data; -} - -print ''; -foreach($links as $link) { - // Check, if the url is extern - if(substr($link['url'], -1, 1) == '*') { - $target = ' target="_blank"'; - $external = ''; - $link['url'] = str_replace('*', '', $link['url']); - } else { - $target = ''; - $external = ''; - } - - echo ''; -} -} -print '
Links:
â—
'; -} -?> diff --git a/Templates/menu.tpl b/Templates/menu.tpl deleted file mode 100644 index 29ca87bf..00000000 --- a/Templates/menu.tpl +++ /dev/null @@ -1,139 +0,0 @@ -pageLoadTimeStart(); - -/** --------------------------------------------------- **\ -| ********* DO NOT REMOVE THIS COPYRIGHT NOTICE ********* | -+---------------------------------------------------------+ -| Credits: All the developers including the leaders: | -| Advocaite & Dzoki & Donnchadh | -| | -| Copyright: TravianX Project All rights reserved | -\** --------------------------------------------------- **/ - -?>logged_in) { -?> - - - - - - - - - -
- - -

-
- -
- - - -

access == MULTIHUNTER) { - - echo "Multihunter Panel"; - } ?> access == ADMIN) { - echo "".ADMIN_PANEL.""; - echo "".MASS_MESSAGE.""; - echo "".SYSTEM_MESSAGE.""; - } ?>

- -

- Plus -

- -

- - - - - -

- isDeleting($session->uid); - if($timestamp){ - echo "
"; - - if($timestamp > time() + 172800){ - echo "uid . "&a=1&e=4\">\"Cancel "; - } - - $time = $generator->getTimeFormat(($timestamp - time())); - echo " The account will be deleted in timer . "\">" . $time . " .
"; - } - ?> -
- -
-

-
-

Hi username; ?>,

- -
-
-

»

-
-
- -



- -
- -
- - - -
- -
-
-
- pageLoadTimeEnd()-$start_timer)*1000); -?> ms - -
-
-
-
- -
- - diff --git a/Templates/movement.tpl b/Templates/movement.tpl deleted file mode 100644 index bb3269a1..00000000 --- a/Templates/movement.tpl +++ /dev/null @@ -1,178 +0,0 @@ -getOasis($village->wid); -foreach($array as $conqured){ -$oases += count($database->getMovement(6,$conqured['wref'],0)); -} -$aantal = (count($database->getMovement(4,$village->wid,1))+count($database->getMovement(3,$village->wid,1))+count($database->getMovement(3,$village->wid,0))+count($database->getMovement(7,$village->wid,1))+count($database->getMovement(5,$village->wid,0))+$oases-count($database->getMovement(8,$village->wid,1))-count($database->getMovement(9,$village->wid,0))); - -if($aantal > 0){ - echo ''; -} - -$NextArrival = $NextArrival1 = $NextArrival2 = $NextArrival3 = $NextArrival4 = $NextArrival5 = $NextArrival6 = []; - -/* Units coming back from Reinf,attack,raid,evasion or reinf to my town */ -$aantal = count($database->getMovement(4,$village->wid,1))+count($database->getMovement(7,$village->wid,1)); -$aantal2 = $database->getMovement(4,$village->wid,1); -$aantal3 = $database->getMovement(7,$village->wid,1); -$aantal4 = count($database->getMovement(3,$village->wid,1)); -$lala = $aantal4; -$aantal5 = $database->getMovement(3,$village->wid,1); -for($i=0;$i<$aantal4;$i++){ - if(($aantal5[$i]['attack_type']==1) or ($aantal5[$i]['attack_type']==3) or ($aantal5[$i]['attack_type']==4)) { $lala -= 1; } -} -$aantal = $aantal+$lala; -if($aantal > 0){ - foreach($aantal2 as $receive) { - $action = 'def1'; - $aclass = 'd1'; - $title = ''.ARRIVING_REINF_TROOPS.''; - $short = ''.ARRIVING_REINF_TROOPS_SHORT.''; - $NextArrival[] = $receive['endtime']; - } - foreach($aantal3 as $receive) { - $action = 'def1'; - $aclass = 'd1'; - $title = ''.ARRIVING_REINF_TROOPS.''; - $short = ''.ARRIVING_REINF_TROOPS_SHORT.''; - $NextArrival[] = $receive['endtime']; - } - foreach($aantal5 as $receive) { - if ($receive['attack_type'] == 2) { - $action = 'def1'; - $aclass = 'd1'; - $title = ''.ARRIVING_REINF_TROOPS.''; - $short = ''.ARRIVING_REINF_TROOPS_SHORT.''; - $NextArrival[] = $receive['endtime']; - } - } - echo ' - '; -} - -/* attack/raid on you! */ -$aantal = count($database->getMovement(3,$village->wid,1)); -$aantal1 = count($database->getMovement(3,$village->wid,1)); -$aantal2 = $database->getMovement(3,$village->wid,1); -for($i=0;$i<$aantal1;$i++){ - if($aantal2[$i]['attack_type'] == 2) { $aantal -= 1; } - if($aantal2[$i]['attack_type'] == 1) { $aantal -= 1; } -} - -if($aantal > 0){ - if(!empty($NextArrival1)) { reset($NextArrival1); } - foreach($aantal2 as $receive) { - if ($receive['attack_type'] != 2 && $receive['attack_type'] != 1) { - $action = 'att1'; - $aclass = 'a1'; - $title = ''.UNDERATTACK.''; - $short = ''.ATTACK.''; - $NextArrival1[] = $receive['endtime']; - } - } - echo ' - '; -} - -/* on attack, raid */ -$aantal = count($database->getMovement(3,$village->wid,0)); -$aantal1 = count($database->getMovement(3,$village->wid,0)); -$aantal2 = $database->getMovement(3,$village->wid,0); -for($i=0;$i<$aantal1;$i++){ - if($aantal2[$i]['attack_type'] == 2) { $aantal -= 1; } -} -if($aantal > 0){ - if(!empty($NextArrival2)) { reset($NextArrival2); } - foreach($aantal2 as $receive) { - if ($receive['attack_type'] != 2) { - $action = 'att2'; - $aclass = 'a2'; - $title = ''.OWN_ATTACKING_TROOPS.''; - $short = ''.ATTACK.''; - $NextArrival2[] = $receive['endtime']; - } - } - echo ' - '; -} - -/* Units send to reinf. (to other town) */ -$aantal = count($database->getMovement(3,$village->wid,0)); -$lala=$aantal; -$aantal2 = $database->getMovement(3,$village->wid,0); -for($i=0;$i<$aantal;$i++){ - if(($aantal2[$i]['attack_type']==1) or ($aantal2[$i]['attack_type']==3) or ($aantal2[$i]['attack_type']==4)) { $lala -= 1; } -} -if($lala > 0){ - if(!empty($NextArrival3)) { reset($NextArrival3); } - foreach($aantal2 as $receive) { - if ($receive['attack_type'] == 2) { - $action = 'def2'; - $aclass = 'd2'; - $title = ''.OWN_REINFORCING_TROOPS.''; - $short = ''.ARRIVING_REINF_TROOPS_SHORT.''; - $NextArrival3[] = $receive['endtime']; - } - } - echo ' - '; -} - -/* Found NEW VILLAGE by Shadow */ - -$aantal = count($database->getMovement(5,$village->wid,0)); -$aantal2 = $database->getMovement(5,$village->wid,0); -if($aantal > 0){ - if(!empty($NextArrival5)) { reset($NextArrival5); } - foreach($aantal2 as $receive) { - $action = 'att3'; - $aclass = 'a3'; - $title = ''.FOUNDNEWVILLAGE.''; - $short = ''.NEWVILLAGE.''; - $NextArrival5[] = $receive['endtime']; - } - - echo ' - '; -} - -/* Attacks on Oasis (to my oasis) by Shadow */ - -$aantal = 0; -$aantal2 = array(); -$array = $database->getOasis($village->wid); -foreach($array as $conqured){ -$aantal += count($database->getMovement(6,$conqured['wref'],0)); -$aantal2 = array_merge($database->getMovement(6,$conqured['wref'],0), $aantal2); -} -if($aantal > 0){ - if(!empty($NextArrival6)) { reset($NextArrival6); } - foreach($aantal2 as $receive) { - if($receive['attack_type'] == 2){ - $action = 'def3'; - $aclass = 'd3'; - $title = ''.ARRIVING_REINF_TROOPS.''; - $short = ''.ARRIVING_REINF_TROOPS_SHORT.''; - }else{ - $action = 'att3'; - $aclass = 'a3'; - $title = ''.OASISATTACK.''; - $short = ''.OASISATTACKS.''; - } - $NextArrival6[] = $receive['endtime']; - } - - echo ' - '; -} \ No newline at end of file diff --git a/Templates/multivillage.tpl b/Templates/multivillage.tpl deleted file mode 100644 index f251e627..00000000 --- a/Templates/multivillage.tpl +++ /dev/null @@ -1,127 +0,0 @@ -villages) > 1){ -?> -
'.TROOP_MOVEMENTS.'
'.$title.'»
'.$aantal.' '.$short.'
in '.$generator->getTimeFormat(min($NextArrival)-time()).' '.HOURS.'
'.$title.'»
'.$aantal.' '.$short.'
in '.$generator->getTimeFormat(min($NextArrival1)-time()).' '.HOURS.'
'.$title.'»
'.$aantal.' '.$short.'
in '.$generator->getTimeFormat(min($NextArrival2)-time()).' '.HOURS.'
'.$title.'»
'.$lala.' '.$short.'
in '.$generator->getTimeFormat(min($NextArrival3)-time()).' '.HOURS.'
'.$title.'»
'.$aantal.' '.$short.'
in '.$generator->getTimeFormat(min($NextArrival5)-time()).' '.HOURS.'
'.$title.'»
'.$aantal.' '.$short.'
in '.$generator->getTimeFormat(min($NextArrival6)-time()).' '.HOURS.'
- - getArrayMemberVillage($session->uid); -if(isset($_GET['w'])) { - for($i=1;$i<=count($session->villages);++$i){echo' - - - - '; - } -} -else if(isset($_GET['r'])) { - for($i=1;$i<=count($session->villages);++$i){echo' - - - - '; - } -} -else if(isset($_GET['z'])) { - for($i=1;$i<=count($session->villages);++$i){echo' - - - - '; - } -} -else if(isset($_GET['o'])) { - for($i=1;$i<=count($session->villages);++$i){echo' - - - - '; - } -} -else if(isset($_GET['s'])) { - for($i=1;$i<=count($session->villages);++$i){echo' - - - - '; - } -} -else if(isset($_GET['c'])) { - for($i=1;$i<=count($session->villages);++$i){echo' - - - - '; - } -} -else if(isset($_GET['t'])) { - for($i=1;$i<=count($session->villages);++$i){echo' - - - - '; - } -} -else if(isset($_GET['d'])) { - for($i=1;$i<=count($session->villages);++$i){echo' - - - - '; - } -} -else if(isset($_GET['aid'])) { - for($i=1;$i<=count($session->villages);++$i){echo' - - - - '; - } -} -else if(isset($_GET['uid'])) { - for($i=1;$i<=count($session->villages);++$i){echo' - - - - '; - } -} -else if(isset($_GET['vill']) && isset($_GET['id'])) { - for($i=1;$i<=count($session->villages);++$i){echo' - - - - '; - } -} -else if(isset($_GET['t']) && isset($_GET['id'])) { - for($i=1;$i<=count($session->villages);++$i){echo' - - - - '; - }}else{ - for($i=1;$i<=count($session->villages);++$i){echo' - - - - '; - }}?> - -
:
â—
('.$returnVillageArray[$i-1]['x'].'
|
'.$returnVillageArray[$i-1]['y'].')
â—
('.$returnVillageArray[$i-1]['x'].'
|
'.$returnVillageArray[$i-1]['y'].')
â—
('.$returnVillageArray[$i-1]['x'].'
|
'.$returnVillageArray[$i-1]['y'].')
â—
('.$returnVillageArray[$i-1]['x'].'
|
'.$returnVillageArray[$i-1]['y'].')
â—
('.$returnVillageArray[$i-1]['x'].'
|
'.$returnVillageArray[$i-1]['y'].')
â—
('.$returnVillageArray[$i-1]['x'].'
|
'.$returnVillageArray[$i-1]['y'].')
â—
('.$returnVillageArray[$i-1]['x'].'
|
'.$returnVillageArray[$i-1]['y'].')
â—
('.$returnVillageArray[$i-1]['x'].'
|
'.$returnVillageArray[$i-1]['y'].')
â—
('.$returnVillageArray[$i-1]['x'].'
|
'.$returnVillageArray[$i-1]['y'].')
â—
('.$returnVillageArray[$i-1]['x'].'
|
'.$returnVillageArray[$i-1]['y'].')
â—
('.$returnVillageArray[$i-1]['x'].'
|
'.$returnVillageArray[$i-1]['y'].')
â—
('.$returnVillageArray[$i-1]['x'].'
|
'.$returnVillageArray[$i-1]['y'].')
â—
('.$returnVillageArray[$i-1]['x'].'
|
'.$returnVillageArray[$i-1]['y'].')
- diff --git a/Templates/natars.tpl b/Templates/natars.tpl deleted file mode 100644 index e60133d7..00000000 --- a/Templates/natars.tpl +++ /dev/null @@ -1,17 +0,0 @@ - ($startDate + NATARS_SPAWN_TIME * 86400) - $time, - "WW villages" => ($startDate + NATARS_WW_SPAWN_TIME * 86400) - $time, - "WW building plans" => ($startDate + NATARS_WW_BUILDING_PLAN_SPAWN_TIME * 86400) - $time]; - -foreach($spawnTimeArray as $text => $spawnTime){ - if($spawnTime <= $daysToDisplay && $spawnTime > 0){ -?> -

-
- will spawn in: - getTimeFormat($spawnTime); ?> -
- \ No newline at end of file diff --git a/Templates/news.tpl b/Templates/news.tpl deleted file mode 100644 index bf6cbd13..00000000 --- a/Templates/news.tpl +++ /dev/null @@ -1,22 +0,0 @@ - - \ No newline at end of file diff --git a/Templates/production.tpl b/Templates/production.tpl deleted file mode 100644 index 1af2974e..00000000 --- a/Templates/production.tpl +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
:
<?php echo LUMBER; ?>:getProd("wood"); ?>
<?php echo CLAY; ?>:getProd("clay"); ?>
<?php echo IRON; ?>:getProd("iron"); ?>
<?php echo CROP; ?>:getProd("crop"); ?>
\ No newline at end of file diff --git a/Templates/res.tpl b/Templates/res.tpl deleted file mode 100644 index 61c0759a..00000000 --- a/Templates/res.tpl +++ /dev/null @@ -1,70 +0,0 @@ - - -getProd( "wood" ) ); - $clay = round( $village->getProd( "clay" ) ); - $iron = round( $village->getProd( "iron" ) ); - $crop = round( $village->getProd( "crop" ) ); - $totalproduction = $village->allcrop; // all crops + bakery + grain mill -?> - -
-
- - - - - - - - - - - acrop > 0){ ?> - - - - - - - -
<?php echo LUMBER; ?>awood)."/".$village->maxstore; ?><?php echo CLAY; ?>aclay)."/".$village->maxstore; ?><?php echo IRON; ?>airon)."/".$village->maxstore; ?><?php echo CROP; ?>acrop)."/".$village->maxcrop; ?>maxcrop; ?><?php echo CROP_COM; ?>pop+$technology->getUpkeep($village->unitall,0))."/".$totalproduction.""; ?>
- - - - - - - - - - - - - - -
                                                                    gold <= 1){ - echo 'Remaining gold '.$session->gold.' Gold'; - } - else if($session->gold >=2){ - echo 'Remaining gold '.$session->gold.' Gold'; - } - ?> -
-
-
-World Wonder Construction Plans

\n\n\nMany moons ago the tribes of Travian were surprised by the unforeseen return of the Natars. This tribe from immemorial times surpassing all in wisdom, might and glory was about to trouble the free ones again. Thus they put all their efforts in preparing a last war against the Natars and vanquishing them forever. Many thought about the so-called \'Wonders of the World\', a construction of many legends, as the only solution. It was told that it would render anyone invincible once completed. Ultimately making the constructors the rulers and conquerors of all known Travian. \n\nHowever, it was also told that one would need construction plans to construct such a building. Due to this fact, the architects devised cunning plans about how to store these safely. After a while, one could see temple-like buildings in many a city and metropolis - the Treasure Chambers (Treasuries). \n\nSadly, no one - not even the wise and well versed - knew where to find these construction plans. The harder people tried to locate them, the more it seemed as if they where only legends. \n\nToday, however, this last secret will be revealed. Deprivations and endeavors of the past will not have been in vain, as today scouts of several tribes have successfully obtained the whereabouts of the construction plans. Well guarded by the Natars, they lie hidden in several oases to be found all over Travian. Only the most valiant heroes will be able to secure such a plan and bring it home safely so that the construction can begin. \n\nIn the end, we will see whether the free tribes of Travian can once again outwit the Natars and vanquish them once and for all. Do not be so foolish as to assume that the Natars will leave without a fight, though!\n\n\"Ancient\n\nTo steal a set of Construction Plans from the Natars, the following things must happen:\n- You must Attack the village (NOT Raid!)\n- You must WIN the Attack\n- You must DESTROY the Treasure Chamber (Treasury)\n- Your Hero MUST be in that attack, as he is the only one who may carry the Construction Plans\n- An empty level 10 Treasure Chamber (Treasury) MUST be in the village where that attack came from\nNOTE: If the above criteria is not met during the attack, the next attack on that village which does meet the above criteria will take the Construction Plans.\n\n\n\nTo build a Treasure Chamber (Treasury), you will need a Main Building level 10 and the village MUST NOT be contain a World Wonder.\n\nTo build a World Wonder, you must own the Construction Plans yourself (you = the World Wonder Village Owner) from level 0 to 50, and then from level 51 to 100 you will need an additional set of Construction Plans in your Alliance! Two sets of Construction Plans in the World Wonder Village Account will not work!"; - -//bbcode = html code -$txt = preg_replace("/\[b\]/is",'', $txt); -$txt = preg_replace("/\[\/b\]/is",'', $txt); -$txt = preg_replace("/\[i\]/is",'', $txt); -$txt = preg_replace("/\[\/i\]/is",'', $txt); -$txt = preg_replace("/\[u\]/is",'', $txt); -$txt = preg_replace("/\[\/u\]/is",'', $txt); - -//nl2br = enter -echo nl2br($txt); - -?> \ No newline at end of file diff --git a/Templates/troops.tpl b/Templates/troops.tpl deleted file mode 100644 index bb419396..00000000 --- a/Templates/troops.tpl +++ /dev/null @@ -1,37 +0,0 @@ - - - - - -getAllUnits($village->wid,True,1); -$TroopsPresent = False; -for($i=1;$i<=50;$i++) { - if($troops['u'.$i] > 0) { - echo ""; - echo ""; - $TroopsPresent = True; - } -} -if($troops['hero'] > 0) { - echo ""; - echo ""; - $TroopsPresent = True; -} -$units = $technology->getUnitList($village->wid); -if(!$TroopsPresent) { - echo ""; -} -?> -
\"".$technology-getUnitName($i)."\" title=\"".$technology->getUnitName($i)."\" />".$troops['u'.$i]."".$technology->getUnitName($i)."
\"Hero\"".$troops['hero']."Hero
none
- diff --git a/Templates/version.tpl b/Templates/version.tpl deleted file mode 100644 index 8bb1762e..00000000 --- a/Templates/version.tpl +++ /dev/null @@ -1,5 +0,0 @@ -
-

TravianZ VERSION CREDITS

-
- -
diff --git a/a2b.php b/a2b.php index a240f590..700772eb 100644 --- a/a2b.php +++ b/a2b.php @@ -12,7 +12,7 @@ $start_timer = $generator->pageLoadTimeStart(); // # ## // ################################################################################ -use App\Utils\AccessLogger; +use TravianZ\Utils\AccessLogger; include_once ("GameEngine/Village.php"); AccessLogger::logRequest(); @@ -123,29 +123,29 @@ echo GP_LOCATE;
getEnforceArray($w, 0); if($enforce['vref'] == $village->wid){ $to = $database->getVillage($enforce['from']); $ckey = $w; - include("Templates/a2b/sendback.tpl"); + include("templates/sendUnits/sendBack.tpl"); }else{ include("Templates/a2b/units_".$session->tribe.".tpl"); - include("Templates/a2b/search.tpl"); + include("templates/sendUnits/search.tpl"); } }else if(isset($r)){ $enforce = $database->getEnforceArray($r, 0); @@ -153,19 +153,19 @@ if(!empty($id)){ if($enforce['from'] == $village->wid || $enforceoasis['conqured'] == $village->wid){ $to = $database->getVillage($enforce['from']); $ckey = $r; - include("Templates/a2b/sendback.tpl"); + include("templates/sendUnits/sendBack.tpl"); }else{ include ("Templates/a2b/units_".$session->tribe.".tpl"); - include("Templates/a2b/search.tpl"); + include("templates/sendUnits/search.tpl"); } }else if(isset($delprisoners) && !empty($delprisoners)) $units->deletePrisoners($delprisoners); else{ if(isset($process['0'])){ $coor = $database->getCoor($process['0']); - include("Templates/a2b/attack.tpl"); + include("templates/sendUnits/attack.tpl"); }else{ include("Templates/a2b/units_".$session->tribe.".tpl"); - include("Templates/a2b/search.tpl"); + include("templates/sendUnits/search.tpl"); } } ?> @@ -176,9 +176,9 @@ else{
@@ -187,8 +187,8 @@ include("Templates/news.tpl");
diff --git a/a2b2.php b/a2b2.php index be03ee18..684b1a9a 100644 --- a/a2b2.php +++ b/a2b2.php @@ -62,10 +62,10 @@ else $building->procBuild($_GET);
- +
- - + +

Account transactions





@@ -353,8 +353,8 @@ include("Templates/news.tpl");
diff --git a/activate.php b/activate.php index 637bdc02..1258da52 100644 --- a/activate.php +++ b/activate.php @@ -1,86 +1,2 @@ - - - - <?php echo SERVER_NAME . ' - Account Activation'; ?> - - - - - - - - - - - - - - - - - -
-
-
- -
- -
-getActivateField($_GET['id'],"email",0); - if($_GET['c'] == $generator->encodeStr($c,5)){ - include("Templates/activate/delete.tpl"); - } else { include("Templates/activate/activate.tpl"); } - } else { - include("Templates/activate/activate.tpl"); - } - -?> -
-
-
- -
-
- - -
- - -
- - \ No newline at end of file +require 'index.php'; diff --git a/ajax.php b/ajax.php index d337d54e..358a0458 100644 --- a/ajax.php +++ b/ajax.php @@ -41,10 +41,10 @@ switch($_GET['f']) { $yy = preg_replace("/[^a-zA-Z0-9_-]/","",$_GET['yy']); $howmany = $x - $xx; if($howmany == 12 || $howmany == -12) { - include("Templates/Ajax/mapscroll2.tpl"); + include("templates/Ajax/mapscroll2.tpl"); } else { - include("Templates/Ajax/mapscroll.tpl"); + include("templates/Ajax/mapscroll.tpl"); } break; case 'kp': @@ -72,9 +72,9 @@ switch($_GET['f']) { session_start(); } if (isset($_SESSION['qtyp']) && $_SESSION['qtyp']==37) { - include("Templates/Ajax/quest_core.tpl"); + include("templates/Ajax/quest_core.tpl"); }else{ - include("Templates/Ajax/quest_core25.tpl"); + include("templates/Ajax/quest_core25.tpl"); } break; } diff --git a/allianz.php b/allianz.php index 79e05ce7..96b68611 100644 --- a/allianz.php +++ b/allianz.php @@ -174,13 +174,13 @@ if(isset($_GET['aid']) || isset($_GET['fid']) || isset($_GET['fid2']) ||
getAlliPermissions($session->uid, $session->alliance, 0); - include ("Templates/menu.tpl"); + include ("templates/menu.tpl"); if(isset($_GET['s']) && $_GET['s'] == 2) echo '
'; else echo '
'; @@ -190,23 +190,23 @@ $userPermissions = $database->getAlliPermissions($session->uid, $session->allian switch($_GET['s']){ case 2 : if(isset($_POST['vote'])) $alliance->Vote($_POST); - include("Templates/Alliance/forum.tpl"); + include("templates/Alliance/forum.tpl"); break; case 3: - include("Templates/Alliance/attacks.tpl"); + include("templates/Alliance/attacks.tpl"); break; case 4: - include("Templates/Alliance/news.tpl"); + include("templates/Alliance/news.tpl"); break; case 5: - include("Templates/Alliance/option.tpl"); + include("templates/Alliance/option.tpl"); break; case 6: - include("Templates/Alliance/chat.tpl"); + include("templates/Alliance/chat.tpl"); break; case 1: default: - include("Templates/Alliance/overview.tpl"); + include("templates/Alliance/overview.tpl"); break; } // Options @@ -216,84 +216,84 @@ $userPermissions = $database->getAlliPermissions($session->uid, $session->allian } }else if(isset($_GET['delinvite'])){ if($userPermissions['opt4'] == 0) $alliance->redirect(); - include ("Templates/Alliance/invite.tpl"); + include ("templates/Alliance/invite.tpl"); }elseif(isset($_POST['o'])){ switch($_POST['o']){ case 1 : if($userPermissions['opt1'] == 0) $alliance->redirect(); if(isset($_POST['s']) == 5 && isset($_POST['a_user'])){ $alliance->procAlliForm($_POST); - include("Templates/Alliance/changepos.tpl"); + include("templates/Alliance/changepos.tpl"); } - else include("Templates/Alliance/assignpos.tpl"); + else include("templates/Alliance/assignpos.tpl"); break; case 2 : if($userPermissions['opt2'] == 0) $alliance->redirect(); if(isset($_POST['s']) == 5 && isset($_POST['a']) == 2) $alliance->procAlliForm($_POST); - include("Templates/Alliance/kick.tpl"); + include("templates/Alliance/kick.tpl"); break; case 3 : if($userPermissions['opt3'] == 0) $alliance->redirect(); if(isset($_POST['s']) == 5 && isset($_POST['a']) == 3) $alliance->procAlliForm($_POST); - include("Templates/Alliance/allidesc.tpl"); + include("templates/Alliance/allidesc.tpl"); break; case 4 : if($userPermissions['opt4'] == 0) $alliance->redirect(); if(isset($_POST['s']) == 5 && isset($_POST['a']) == 4) $alliance->procAlliForm($_POST); - include("Templates/Alliance/invite.tpl"); + include("templates/Alliance/invite.tpl"); break; case 5 : if($userPermissions['opt5'] == 0) $alliance->redirect(); if(isset($_POST['f_link'])) $alliance->setForumLink($_POST); - include("Templates/Alliance/linkforum.tpl"); + include("templates/Alliance/linkforum.tpl"); break; case 6 : if($userPermissions['opt6'] == 0) $alliance->redirect(); if(isset($_POST['dipl']) && isset($_POST['a_name'])) $alliance->procAlliForm($_POST); - include("Templates/Alliance/chgdiplo.tpl"); + include("templates/Alliance/chgdiplo.tpl"); break; case 11 : if(isset($_POST['s']) == 5 && isset($_POST['a']) == 11) $alliance->procAlliForm($_POST); - include("Templates/Alliance/quitalli.tpl"); + include("templates/Alliance/quitalli.tpl"); break; case 100 : if($userPermissions['opt3'] == 0) $alliance->redirect(); if(isset($_POST['s']) == 5 && isset($_POST['a']) == 100) $alliance->procAlliForm($_POST); - include("Templates/Alliance/changename.tpl"); + include("templates/Alliance/changename.tpl"); break; case 101 : if($userPermissions['opt6'] == 0) $alliance->redirect(); if(isset($_POST['id'])) $database->diplomacyCancelOffer($_POST['id'], $session->alliance); - include("Templates/Alliance/chgdiplo.tpl"); + include("templates/Alliance/chgdiplo.tpl"); break; case 102 : if($userPermissions['opt6'] == 0) $alliance->redirect(); if(isset($_POST['id'])) $database->diplomacyInviteDenied($_POST['id'], $session->alliance); - include("Templates/Alliance/chgdiplo.tpl"); + include("templates/Alliance/chgdiplo.tpl"); break; case 103 : if($userPermissions['opt6'] == 0) $alliance->redirect(); if(isset($_POST['id'])) $database->diplomacyInviteAccept($_POST['id'], $session->alliance); - include("Templates/Alliance/chgdiplo.tpl"); + include("templates/Alliance/chgdiplo.tpl"); break; case 104 : if($userPermissions['opt6'] == 0) $alliance->redirect(); if(isset($_POST['id'])) $database->diplomacyCancelExistingRelationship($_POST['id'], $session->alliance); - include("Templates/Alliance/chgdiplo.tpl"); + include("templates/Alliance/chgdiplo.tpl"); break; default : - include("Templates/Alliance/option.tpl"); + include("templates/Alliance/option.tpl"); break; } } - else include("Templates/Alliance/overview.tpl"); + else include("templates/Alliance/overview.tpl"); ?>




@@ -302,8 +302,8 @@ include("Templates/news.tpl");
diff --git a/anleitung.php b/anleitung.php index b0fbcabb..7c86174e 100644 --- a/anleitung.php +++ b/anleitung.php @@ -97,13 +97,13 @@ AccessLogger::logRequest(); if(!isset($_GET['s'])) { $_GET['s'] = ""; } if ($_GET['s'] == "") { -include("Templates/Anleitung/0.tpl"); } +include("templates/Anleitung/0.tpl"); } if ($_GET['s'] == "1") { -include("Templates/Anleitung/1.tpl"); } +include("templates/Anleitung/1.tpl"); } if ($_GET['s'] == "3") { -include("Templates/Anleitung/3.tpl"); } +include("templates/Anleitung/3.tpl"); } if ($_GET['s'] == "4") { -include("Templates/Anleitung/4.tpl"); } +include("templates/Anleitung/4.tpl"); } ?> diff --git a/anmelden.php b/anmelden.php index df0cb374..5d9feea6 100644 --- a/anmelden.php +++ b/anmelden.php @@ -1,156 +1,2 @@ getError('invt'); -?> - - - - <?php echo SERVER_NAME; ?> - Registration - - - - - - - - - - - - - - - - - -
-
-
- -
- - - - - -
- -
- -
-
- - -
- - -
- - +require 'index.php'; \ No newline at end of file diff --git a/gpack/download/travian_default.zip b/assets/gpack/download/travian_default.zip similarity index 100% rename from gpack/download/travian_default.zip rename to assets/gpack/download/travian_default.zip diff --git a/GameEngine/Data/index.php b/assets/gpack/index.php old mode 100755 new mode 100644 similarity index 100% rename from GameEngine/Data/index.php rename to assets/gpack/index.php diff --git a/gpack/travian/elements/country_sprite.gif b/assets/gpack/travian/elements/country_sprite.gif similarity index 100% rename from gpack/travian/elements/country_sprite.gif rename to assets/gpack/travian/elements/country_sprite.gif diff --git a/gpack/travian/flaggs.css b/assets/gpack/travian/flaggs.css similarity index 100% rename from gpack/travian/flaggs.css rename to assets/gpack/travian/flaggs.css diff --git a/gpack/travian/images/anleitung_background.gif b/assets/gpack/travian/images/anleitung_background.gif similarity index 100% rename from gpack/travian/images/anleitung_background.gif rename to assets/gpack/travian/images/anleitung_background.gif diff --git a/gpack/travian/images/anleitung_footer.gif b/assets/gpack/travian/images/anleitung_footer.gif similarity index 100% rename from gpack/travian/images/anleitung_footer.gif rename to assets/gpack/travian/images/anleitung_footer.gif diff --git a/gpack/travian/images/anleitung_header.gif b/assets/gpack/travian/images/anleitung_header.gif similarity index 100% rename from gpack/travian/images/anleitung_header.gif rename to assets/gpack/travian/images/anleitung_header.gif diff --git a/gpack/travian/images/artwork-ltr.jpg b/assets/gpack/travian/images/artwork-ltr.jpg similarity index 100% rename from gpack/travian/images/artwork-ltr.jpg rename to assets/gpack/travian/images/artwork-ltr.jpg diff --git a/gpack/travian/images/artwork.jpg b/assets/gpack/travian/images/artwork.jpg similarity index 100% rename from gpack/travian/images/artwork.jpg rename to assets/gpack/travian/images/artwork.jpg diff --git a/gpack/travian/images/buttons_screenshots-left.gif b/assets/gpack/travian/images/buttons_screenshots-left.gif similarity index 100% rename from gpack/travian/images/buttons_screenshots-left.gif rename to assets/gpack/travian/images/buttons_screenshots-left.gif diff --git a/gpack/travian/images/buttons_screenshots-right.gif b/assets/gpack/travian/images/buttons_screenshots-right.gif similarity index 100% rename from gpack/travian/images/buttons_screenshots-right.gif rename to assets/gpack/travian/images/buttons_screenshots-right.gif diff --git a/gpack/travian/images/buttons_screenshots_next.gif b/assets/gpack/travian/images/buttons_screenshots_next.gif similarity index 100% rename from gpack/travian/images/buttons_screenshots_next.gif rename to assets/gpack/travian/images/buttons_screenshots_next.gif diff --git a/gpack/travian/images/buttons_screenshots_prev.gif b/assets/gpack/travian/images/buttons_screenshots_prev.gif similarity index 100% rename from gpack/travian/images/buttons_screenshots_prev.gif rename to assets/gpack/travian/images/buttons_screenshots_prev.gif diff --git a/gpack/travian/images/content_background.jpg b/assets/gpack/travian/images/content_background.jpg similarity index 100% rename from gpack/travian/images/content_background.jpg rename to assets/gpack/travian/images/content_background.jpg diff --git a/gpack/travian/images/count_background-ltr.jpg b/assets/gpack/travian/images/count_background-ltr.jpg similarity index 100% rename from gpack/travian/images/count_background-ltr.jpg rename to assets/gpack/travian/images/count_background-ltr.jpg diff --git a/gpack/travian/images/count_background.jpg b/assets/gpack/travian/images/count_background.jpg similarity index 100% rename from gpack/travian/images/count_background.jpg rename to assets/gpack/travian/images/count_background.jpg diff --git a/gpack/travian/images/country_background.jpg b/assets/gpack/travian/images/country_background.jpg similarity index 100% rename from gpack/travian/images/country_background.jpg rename to assets/gpack/travian/images/country_background.jpg diff --git a/gpack/travian/images/footer_background.jpg b/assets/gpack/travian/images/footer_background.jpg similarity index 100% rename from gpack/travian/images/footer_background.jpg rename to assets/gpack/travian/images/footer_background.jpg diff --git a/gpack/travian/images/gameworld_background.jpg b/assets/gpack/travian/images/gameworld_background.jpg similarity index 100% rename from gpack/travian/images/gameworld_background.jpg rename to assets/gpack/travian/images/gameworld_background.jpg diff --git a/gpack/travian/images/gameworld_footer.jpg b/assets/gpack/travian/images/gameworld_footer.jpg similarity index 100% rename from gpack/travian/images/gameworld_footer.jpg rename to assets/gpack/travian/images/gameworld_footer.jpg diff --git a/gpack/travian/images/gameworld_header.jpg b/assets/gpack/travian/images/gameworld_header.jpg similarity index 100% rename from gpack/travian/images/gameworld_header.jpg rename to assets/gpack/travian/images/gameworld_header.jpg diff --git a/gpack/travian/images/info_background-ltr.jpg b/assets/gpack/travian/images/info_background-ltr.jpg similarity index 100% rename from gpack/travian/images/info_background-ltr.jpg rename to assets/gpack/travian/images/info_background-ltr.jpg diff --git a/gpack/travian/images/info_background.jpg b/assets/gpack/travian/images/info_background.jpg similarity index 100% rename from gpack/travian/images/info_background.jpg rename to assets/gpack/travian/images/info_background.jpg diff --git a/gpack/travian/images/logo_background-ltr.jpg b/assets/gpack/travian/images/logo_background-ltr.jpg similarity index 100% rename from gpack/travian/images/logo_background-ltr.jpg rename to assets/gpack/travian/images/logo_background-ltr.jpg diff --git a/gpack/travian/images/logo_background.jpg b/assets/gpack/travian/images/logo_background.jpg similarity index 100% rename from gpack/travian/images/logo_background.jpg rename to assets/gpack/travian/images/logo_background.jpg diff --git a/gpack/travian/images/logo_traviangames.jpg b/assets/gpack/travian/images/logo_traviangames.jpg similarity index 100% rename from gpack/travian/images/logo_traviangames.jpg rename to assets/gpack/travian/images/logo_traviangames.jpg diff --git a/gpack/travian/images/main_background_content.jpg b/assets/gpack/travian/images/main_background_content.jpg similarity index 100% rename from gpack/travian/images/main_background_content.jpg rename to assets/gpack/travian/images/main_background_content.jpg diff --git a/gpack/travian/images/main_background_front.jpg b/assets/gpack/travian/images/main_background_front.jpg similarity index 100% rename from gpack/travian/images/main_background_front.jpg rename to assets/gpack/travian/images/main_background_front.jpg diff --git a/gpack/travian/images/nav_left.gif b/assets/gpack/travian/images/nav_left.gif similarity index 100% rename from gpack/travian/images/nav_left.gif rename to assets/gpack/travian/images/nav_left.gif diff --git a/gpack/travian/images/nav_right.gif b/assets/gpack/travian/images/nav_right.gif similarity index 100% rename from gpack/travian/images/nav_right.gif rename to assets/gpack/travian/images/nav_right.gif diff --git a/gpack/travian/images/news_background.jpg b/assets/gpack/travian/images/news_background.jpg similarity index 100% rename from gpack/travian/images/news_background.jpg rename to assets/gpack/travian/images/news_background.jpg diff --git a/gpack/travian/images/news_footer.jpg b/assets/gpack/travian/images/news_footer.jpg similarity index 100% rename from gpack/travian/images/news_footer.jpg rename to assets/gpack/travian/images/news_footer.jpg diff --git a/gpack/travian/images/news_header.jpg b/assets/gpack/travian/images/news_header.jpg similarity index 100% rename from gpack/travian/images/news_header.jpg rename to assets/gpack/travian/images/news_header.jpg diff --git a/gpack/travian/images/news_spacer.jpg b/assets/gpack/travian/images/news_spacer.jpg similarity index 100% rename from gpack/travian/images/news_spacer.jpg rename to assets/gpack/travian/images/news_spacer.jpg diff --git a/gpack/travian/images/popup-left.gif b/assets/gpack/travian/images/popup-left.gif similarity index 100% rename from gpack/travian/images/popup-left.gif rename to assets/gpack/travian/images/popup-left.gif diff --git a/gpack/travian/images/popup-next.gif b/assets/gpack/travian/images/popup-next.gif similarity index 100% rename from gpack/travian/images/popup-next.gif rename to assets/gpack/travian/images/popup-next.gif diff --git a/gpack/travian/images/popup-prev.gif b/assets/gpack/travian/images/popup-prev.gif similarity index 100% rename from gpack/travian/images/popup-prev.gif rename to assets/gpack/travian/images/popup-prev.gif diff --git a/gpack/travian/images/popup-right.gif b/assets/gpack/travian/images/popup-right.gif similarity index 100% rename from gpack/travian/images/popup-right.gif rename to assets/gpack/travian/images/popup-right.gif diff --git a/gpack/travian/images/popup_close.gif b/assets/gpack/travian/images/popup_close.gif similarity index 100% rename from gpack/travian/images/popup_close.gif rename to assets/gpack/travian/images/popup_close.gif diff --git a/gpack/travian/images/screenshot_footer.gif b/assets/gpack/travian/images/screenshot_footer.gif similarity index 100% rename from gpack/travian/images/screenshot_footer.gif rename to assets/gpack/travian/images/screenshot_footer.gif diff --git a/gpack/travian/images/screenshot_header.jpg b/assets/gpack/travian/images/screenshot_header.jpg similarity index 100% rename from gpack/travian/images/screenshot_header.jpg rename to assets/gpack/travian/images/screenshot_header.jpg diff --git a/gpack/travian/images/screenshots_background.jpg b/assets/gpack/travian/images/screenshots_background.jpg similarity index 100% rename from gpack/travian/images/screenshots_background.jpg rename to assets/gpack/travian/images/screenshots_background.jpg diff --git a/gpack/travian/images/social_abstand.jpg b/assets/gpack/travian/images/social_abstand.jpg similarity index 100% rename from gpack/travian/images/social_abstand.jpg rename to assets/gpack/travian/images/social_abstand.jpg diff --git a/gpack/travian/images/social_box1-ltr.jpg b/assets/gpack/travian/images/social_box1-ltr.jpg similarity index 100% rename from gpack/travian/images/social_box1-ltr.jpg rename to assets/gpack/travian/images/social_box1-ltr.jpg diff --git a/gpack/travian/images/social_box2-ltr.jpg b/assets/gpack/travian/images/social_box2-ltr.jpg similarity index 100% rename from gpack/travian/images/social_box2-ltr.jpg rename to assets/gpack/travian/images/social_box2-ltr.jpg diff --git a/gpack/travian/images/social_button1.gif b/assets/gpack/travian/images/social_button1.gif similarity index 100% rename from gpack/travian/images/social_button1.gif rename to assets/gpack/travian/images/social_button1.gif diff --git a/gpack/travian/images/social_button2.gif b/assets/gpack/travian/images/social_button2.gif similarity index 100% rename from gpack/travian/images/social_button2.gif rename to assets/gpack/travian/images/social_button2.gif diff --git a/gpack/travian/images/social_landing_hg-ltr.jpg b/assets/gpack/travian/images/social_landing_hg-ltr.jpg similarity index 100% rename from gpack/travian/images/social_landing_hg-ltr.jpg rename to assets/gpack/travian/images/social_landing_hg-ltr.jpg diff --git a/gpack/travian/main.css b/assets/gpack/travian/main.css similarity index 100% rename from gpack/travian/main.css rename to assets/gpack/travian/main.css diff --git a/gpack/travian/main_en.css b/assets/gpack/travian/main_en.css similarity index 100% rename from gpack/travian/main_en.css rename to assets/gpack/travian/main_en.css diff --git a/gpack/travian_default/images/artwork1-ltr.jpg b/assets/gpack/travian_default/images/artwork1-ltr.jpg similarity index 100% rename from gpack/travian_default/images/artwork1-ltr.jpg rename to assets/gpack/travian_default/images/artwork1-ltr.jpg diff --git a/gpack/travian_default/images/artwork2-ltr.jpg b/assets/gpack/travian_default/images/artwork2-ltr.jpg similarity index 100% rename from gpack/travian_default/images/artwork2-ltr.jpg rename to assets/gpack/travian_default/images/artwork2-ltr.jpg diff --git a/gpack/travian_default/images/banner-zravianx.png b/assets/gpack/travian_default/images/banner-zravianx.png similarity index 100% rename from gpack/travian_default/images/banner-zravianx.png rename to assets/gpack/travian_default/images/banner-zravianx.png diff --git a/gpack/travian_default/images/footer_background.gif b/assets/gpack/travian_default/images/footer_background.gif similarity index 100% rename from gpack/travian_default/images/footer_background.gif rename to assets/gpack/travian_default/images/footer_background.gif diff --git a/gpack/travian_default/images/footer_logo.gif b/assets/gpack/travian_default/images/footer_logo.gif similarity index 100% rename from gpack/travian_default/images/footer_logo.gif rename to assets/gpack/travian_default/images/footer_logo.gif diff --git a/gpack/travian_default/images/footer_logo.png b/assets/gpack/travian_default/images/footer_logo.png similarity index 100% rename from gpack/travian_default/images/footer_logo.png rename to assets/gpack/travian_default/images/footer_logo.png diff --git a/gpack/travian_default/images/footer_logo.psd b/assets/gpack/travian_default/images/footer_logo.psd similarity index 100% rename from gpack/travian_default/images/footer_logo.psd rename to assets/gpack/travian_default/images/footer_logo.psd diff --git a/gpack/travian_default/images/footer_logo_zravianx.gif b/assets/gpack/travian_default/images/footer_logo_zravianx.gif similarity index 100% rename from gpack/travian_default/images/footer_logo_zravianx.gif rename to assets/gpack/travian_default/images/footer_logo_zravianx.gif diff --git a/gpack/travian_default/images/header_background.jpg b/assets/gpack/travian_default/images/header_background.jpg similarity index 100% rename from gpack/travian_default/images/header_background.jpg rename to assets/gpack/travian_default/images/header_background.jpg diff --git a/GameEngine/Game/index.php b/assets/gpack/travian_default/images/index.php old mode 100755 new mode 100644 similarity index 100% rename from GameEngine/Game/index.php rename to assets/gpack/travian_default/images/index.php diff --git a/gpack/travian_default/images/m1-ltr.gif b/assets/gpack/travian_default/images/m1-ltr.gif similarity index 100% rename from gpack/travian_default/images/m1-ltr.gif rename to assets/gpack/travian_default/images/m1-ltr.gif diff --git a/gpack/travian_default/images/m2-ltr.gif b/assets/gpack/travian_default/images/m2-ltr.gif similarity index 100% rename from gpack/travian_default/images/m2-ltr.gif rename to assets/gpack/travian_default/images/m2-ltr.gif diff --git a/gpack/travian_default/images/m3-ltr.gif b/assets/gpack/travian_default/images/m3-ltr.gif similarity index 100% rename from gpack/travian_default/images/m3-ltr.gif rename to assets/gpack/travian_default/images/m3-ltr.gif diff --git a/gpack/travian_default/images/m4-ltr.gif b/assets/gpack/travian_default/images/m4-ltr.gif similarity index 100% rename from gpack/travian_default/images/m4-ltr.gif rename to assets/gpack/travian_default/images/m4-ltr.gif diff --git a/gpack/travian_default/images/menu-bg-ltr.gif b/assets/gpack/travian_default/images/menu-bg-ltr.gif similarity index 100% rename from gpack/travian_default/images/menu-bg-ltr.gif rename to assets/gpack/travian_default/images/menu-bg-ltr.gif diff --git a/gpack/travian_default/images/n1-ltr.gif b/assets/gpack/travian_default/images/n1-ltr.gif similarity index 100% rename from gpack/travian_default/images/n1-ltr.gif rename to assets/gpack/travian_default/images/n1-ltr.gif diff --git a/gpack/travian_default/images/n2-ltr.gif b/assets/gpack/travian_default/images/n2-ltr.gif similarity index 100% rename from gpack/travian_default/images/n2-ltr.gif rename to assets/gpack/travian_default/images/n2-ltr.gif diff --git a/gpack/travian_default/images/n3-ltr.gif b/assets/gpack/travian_default/images/n3-ltr.gif similarity index 100% rename from gpack/travian_default/images/n3-ltr.gif rename to assets/gpack/travian_default/images/n3-ltr.gif diff --git a/gpack/travian_default/images/n4-ltr.gif b/assets/gpack/travian_default/images/n4-ltr.gif similarity index 100% rename from gpack/travian_default/images/n4-ltr.gif rename to assets/gpack/travian_default/images/n4-ltr.gif diff --git a/gpack/travian_default/images/plus_active-ltr.gif b/assets/gpack/travian_default/images/plus_active-ltr.gif similarity index 100% rename from gpack/travian_default/images/plus_active-ltr.gif rename to assets/gpack/travian_default/images/plus_active-ltr.gif diff --git a/gpack/travian_default/images/plus_bg.gif b/assets/gpack/travian_default/images/plus_bg.gif similarity index 100% rename from gpack/travian_default/images/plus_bg.gif rename to assets/gpack/travian_default/images/plus_bg.gif diff --git a/gpack/travian_default/images/plus_inactive-ltr.gif b/assets/gpack/travian_default/images/plus_inactive-ltr.gif similarity index 100% rename from gpack/travian_default/images/plus_inactive-ltr.gif rename to assets/gpack/travian_default/images/plus_inactive-ltr.gif diff --git a/gpack/travian_default/images/plus_start-ltr.gif b/assets/gpack/travian_default/images/plus_start-ltr.gif similarity index 100% rename from gpack/travian_default/images/plus_start-ltr.gif rename to assets/gpack/travian_default/images/plus_start-ltr.gif diff --git a/gpack/travian_default/images/shadow-a-ltr.png b/assets/gpack/travian_default/images/shadow-a-ltr.png similarity index 100% rename from gpack/travian_default/images/shadow-a-ltr.png rename to assets/gpack/travian_default/images/shadow-a-ltr.png diff --git a/gpack/travian_default/images/shadow-b-ltr.png b/assets/gpack/travian_default/images/shadow-b-ltr.png similarity index 100% rename from gpack/travian_default/images/shadow-b-ltr.png rename to assets/gpack/travian_default/images/shadow-b-ltr.png diff --git a/gpack/travian_default/img/a/acc.gif b/assets/gpack/travian_default/img/a/acc.gif similarity index 100% rename from gpack/travian_default/img/a/acc.gif rename to assets/gpack/travian_default/img/a/acc.gif diff --git a/gpack/travian_default/img/a/adr.gif b/assets/gpack/travian_default/img/a/adr.gif similarity index 100% rename from gpack/travian_default/img/a/adr.gif rename to assets/gpack/travian_default/img/a/adr.gif diff --git a/gpack/travian_default/img/a/adr_rtl.gif b/assets/gpack/travian_default/img/a/adr_rtl.gif similarity index 100% rename from gpack/travian_default/img/a/adr_rtl.gif rename to assets/gpack/travian_default/img/a/adr_rtl.gif diff --git a/gpack/travian_default/img/a/anl.gif b/assets/gpack/travian_default/img/a/anl.gif similarity index 100% rename from gpack/travian_default/img/a/anl.gif rename to assets/gpack/travian_default/img/a/anl.gif diff --git a/gpack/travian_default/img/a/anl_rtl.gif b/assets/gpack/travian_default/img/a/anl_rtl.gif similarity index 100% rename from gpack/travian_default/img/a/anl_rtl.gif rename to assets/gpack/travian_default/img/a/anl_rtl.gif diff --git a/gpack/travian_default/img/a/att1.gif b/assets/gpack/travian_default/img/a/att1.gif similarity index 100% rename from gpack/travian_default/img/a/att1.gif rename to assets/gpack/travian_default/img/a/att1.gif diff --git a/gpack/travian_default/img/a/att2.gif b/assets/gpack/travian_default/img/a/att2.gif similarity index 100% rename from gpack/travian_default/img/a/att2.gif rename to assets/gpack/travian_default/img/a/att2.gif diff --git a/gpack/travian_default/img/a/att3.gif b/assets/gpack/travian_default/img/a/att3.gif similarity index 100% rename from gpack/travian_default/img/a/att3.gif rename to assets/gpack/travian_default/img/a/att3.gif diff --git a/gpack/travian_default/img/a/att_all.gif b/assets/gpack/travian_default/img/a/att_all.gif similarity index 100% rename from gpack/travian_default/img/a/att_all.gif rename to assets/gpack/travian_default/img/a/att_all.gif diff --git a/gpack/travian_default/img/a/attack_symbol.gif b/assets/gpack/travian_default/img/a/attack_symbol.gif similarity index 100% rename from gpack/travian_default/img/a/attack_symbol.gif rename to assets/gpack/travian_default/img/a/attack_symbol.gif diff --git a/gpack/travian_default/img/a/b6.gif b/assets/gpack/travian_default/img/a/b6.gif similarity index 100% rename from gpack/travian_default/img/a/b6.gif rename to assets/gpack/travian_default/img/a/b6.gif diff --git a/gpack/travian_default/img/a/bau.gif b/assets/gpack/travian_default/img/a/bau.gif similarity index 100% rename from gpack/travian_default/img/a/bau.gif rename to assets/gpack/travian_default/img/a/bau.gif diff --git a/gpack/travian_default/img/a/btm.gif b/assets/gpack/travian_default/img/a/btm.gif similarity index 100% rename from gpack/travian_default/img/a/btm.gif rename to assets/gpack/travian_default/img/a/btm.gif diff --git a/gpack/travian_default/img/a/buildings.gif b/assets/gpack/travian_default/img/a/buildings.gif similarity index 100% rename from gpack/travian_default/img/a/buildings.gif rename to assets/gpack/travian_default/img/a/buildings.gif diff --git a/gpack/travian_default/img/a/c2.gif b/assets/gpack/travian_default/img/a/c2.gif similarity index 100% rename from gpack/travian_default/img/a/c2.gif rename to assets/gpack/travian_default/img/a/c2.gif diff --git a/gpack/travian_default/img/a/c3.gif b/assets/gpack/travian_default/img/a/c3.gif similarity index 100% rename from gpack/travian_default/img/a/c3.gif rename to assets/gpack/travian_default/img/a/c3.gif diff --git a/gpack/travian_default/img/a/car.gif b/assets/gpack/travian_default/img/a/car.gif similarity index 100% rename from gpack/travian_default/img/a/car.gif rename to assets/gpack/travian_default/img/a/car.gif diff --git a/gpack/travian_default/img/a/clock-inactive.gif b/assets/gpack/travian_default/img/a/clock-inactive.gif similarity index 100% rename from gpack/travian_default/img/a/clock-inactive.gif rename to assets/gpack/travian_default/img/a/clock-inactive.gif diff --git a/gpack/travian_default/img/a/clock.gif b/assets/gpack/travian_default/img/a/clock.gif similarity index 100% rename from gpack/travian_default/img/a/clock.gif rename to assets/gpack/travian_default/img/a/clock.gif diff --git a/gpack/travian_default/img/a/close.gif b/assets/gpack/travian_default/img/a/close.gif similarity index 100% rename from gpack/travian_default/img/a/close.gif rename to assets/gpack/travian_default/img/a/close.gif diff --git a/gpack/travian_default/img/a/closed.gif b/assets/gpack/travian_default/img/a/closed.gif similarity index 100% rename from gpack/travian_default/img/a/closed.gif rename to assets/gpack/travian_default/img/a/closed.gif diff --git a/gpack/travian_default/img/a/def1.gif b/assets/gpack/travian_default/img/a/def1.gif similarity index 100% rename from gpack/travian_default/img/a/def1.gif rename to assets/gpack/travian_default/img/a/def1.gif diff --git a/gpack/travian_default/img/a/def2.gif b/assets/gpack/travian_default/img/a/def2.gif similarity index 100% rename from gpack/travian_default/img/a/def2.gif rename to assets/gpack/travian_default/img/a/def2.gif diff --git a/gpack/travian_default/img/a/def3.gif b/assets/gpack/travian_default/img/a/def3.gif similarity index 100% rename from gpack/travian_default/img/a/def3.gif rename to assets/gpack/travian_default/img/a/def3.gif diff --git a/gpack/travian_default/img/a/def_all.gif b/assets/gpack/travian_default/img/a/def_all.gif similarity index 100% rename from gpack/travian_default/img/a/def_all.gif rename to assets/gpack/travian_default/img/a/def_all.gif diff --git a/gpack/travian_default/img/a/def_c.gif b/assets/gpack/travian_default/img/a/def_c.gif similarity index 100% rename from gpack/travian_default/img/a/def_c.gif rename to assets/gpack/travian_default/img/a/def_c.gif diff --git a/gpack/travian_default/img/a/def_i.gif b/assets/gpack/travian_default/img/a/def_i.gif similarity index 100% rename from gpack/travian_default/img/a/def_i.gif rename to assets/gpack/travian_default/img/a/def_i.gif diff --git a/gpack/travian_default/img/a/del.gif b/assets/gpack/travian_default/img/a/del.gif similarity index 100% rename from gpack/travian_default/img/a/del.gif rename to assets/gpack/travian_default/img/a/del.gif diff --git a/gpack/travian_default/img/a/del_g.gif b/assets/gpack/travian_default/img/a/del_g.gif similarity index 100% rename from gpack/travian_default/img/a/del_g.gif rename to assets/gpack/travian_default/img/a/del_g.gif diff --git a/gpack/travian_default/img/a/external.gif b/assets/gpack/travian_default/img/a/external.gif similarity index 100% rename from gpack/travian_default/img/a/external.gif rename to assets/gpack/travian_default/img/a/external.gif diff --git a/gpack/travian_default/img/a/f1 Kopie.jpg b/assets/gpack/travian_default/img/a/f1 Kopie.jpg similarity index 100% rename from gpack/travian_default/img/a/f1 Kopie.jpg rename to assets/gpack/travian_default/img/a/f1 Kopie.jpg diff --git a/gpack/travian_default/img/a/firefox.gif b/assets/gpack/travian_default/img/a/firefox.gif similarity index 100% rename from gpack/travian_default/img/a/firefox.gif rename to assets/gpack/travian_default/img/a/firefox.gif diff --git a/gpack/travian_default/img/a/friends.gif b/assets/gpack/travian_default/img/a/friends.gif similarity index 100% rename from gpack/travian_default/img/a/friends.gif rename to assets/gpack/travian_default/img/a/friends.gif diff --git a/gpack/travian_default/img/a/gold.gif b/assets/gpack/travian_default/img/a/gold.gif similarity index 100% rename from gpack/travian_default/img/a/gold.gif rename to assets/gpack/travian_default/img/a/gold.gif diff --git a/gpack/travian_default/img/a/gold_g.gif b/assets/gpack/travian_default/img/a/gold_g.gif similarity index 100% rename from gpack/travian_default/img/a/gold_g.gif rename to assets/gpack/travian_default/img/a/gold_g.gif diff --git a/gpack/travian_default/img/a/gp.gif b/assets/gpack/travian_default/img/a/gp.gif similarity index 100% rename from gpack/travian_default/img/a/gp.gif rename to assets/gpack/travian_default/img/a/gp.gif diff --git a/gpack/travian_default/img/a/help.gif b/assets/gpack/travian_default/img/a/help.gif similarity index 100% rename from gpack/travian_default/img/a/help.gif rename to assets/gpack/travian_default/img/a/help.gif diff --git a/gpack/travian_default/img/a/ie.gif b/assets/gpack/travian_default/img/a/ie.gif similarity index 100% rename from gpack/travian_default/img/a/ie.gif rename to assets/gpack/travian_default/img/a/ie.gif diff --git a/GameEngine/Lang/index.php b/assets/gpack/travian_default/img/a/index.php old mode 100755 new mode 100644 similarity index 100% rename from GameEngine/Lang/index.php rename to assets/gpack/travian_default/img/a/index.php diff --git a/gpack/travian_default/img/a/minus.gif b/assets/gpack/travian_default/img/a/minus.gif similarity index 100% rename from gpack/travian_default/img/a/minus.gif rename to assets/gpack/travian_default/img/a/minus.gif diff --git a/gpack/travian_default/img/a/n.gif b/assets/gpack/travian_default/img/a/n.gif similarity index 100% rename from gpack/travian_default/img/a/n.gif rename to assets/gpack/travian_default/img/a/n.gif diff --git a/gpack/travian_default/img/a/n12.gif b/assets/gpack/travian_default/img/a/n12.gif similarity index 100% rename from gpack/travian_default/img/a/n12.gif rename to assets/gpack/travian_default/img/a/n12.gif diff --git a/gpack/travian_default/img/a/n_rtl.gif b/assets/gpack/travian_default/img/a/n_rtl.gif similarity index 100% rename from gpack/travian_default/img/a/n_rtl.gif rename to assets/gpack/travian_default/img/a/n_rtl.gif diff --git a/gpack/travian_default/img/a/navi.gif b/assets/gpack/travian_default/img/a/navi.gif similarity index 100% rename from gpack/travian_default/img/a/navi.gif rename to assets/gpack/travian_default/img/a/navi.gif diff --git a/gpack/travian_default/img/a/npc.gif b/assets/gpack/travian_default/img/a/npc.gif similarity index 100% rename from gpack/travian_default/img/a/npc.gif rename to assets/gpack/travian_default/img/a/npc.gif diff --git a/gpack/travian_default/img/a/online.gif b/assets/gpack/travian_default/img/a/online.gif similarity index 100% rename from gpack/travian_default/img/a/online.gif rename to assets/gpack/travian_default/img/a/online.gif diff --git a/gpack/travian_default/img/a/online1.gif b/assets/gpack/travian_default/img/a/online1.gif similarity index 100% rename from gpack/travian_default/img/a/online1.gif rename to assets/gpack/travian_default/img/a/online1.gif diff --git a/gpack/travian_default/img/a/online2.gif b/assets/gpack/travian_default/img/a/online2.gif similarity index 100% rename from gpack/travian_default/img/a/online2.gif rename to assets/gpack/travian_default/img/a/online2.gif diff --git a/gpack/travian_default/img/a/online3.gif b/assets/gpack/travian_default/img/a/online3.gif similarity index 100% rename from gpack/travian_default/img/a/online3.gif rename to assets/gpack/travian_default/img/a/online3.gif diff --git a/gpack/travian_default/img/a/online4.gif b/assets/gpack/travian_default/img/a/online4.gif similarity index 100% rename from gpack/travian_default/img/a/online4.gif rename to assets/gpack/travian_default/img/a/online4.gif diff --git a/gpack/travian_default/img/a/online5.gif b/assets/gpack/travian_default/img/a/online5.gif similarity index 100% rename from gpack/travian_default/img/a/online5.gif rename to assets/gpack/travian_default/img/a/online5.gif diff --git a/gpack/travian_default/img/a/online6.gif b/assets/gpack/travian_default/img/a/online6.gif similarity index 100% rename from gpack/travian_default/img/a/online6.gif rename to assets/gpack/travian_default/img/a/online6.gif diff --git a/gpack/travian_default/img/a/opened.gif b/assets/gpack/travian_default/img/a/opened.gif similarity index 100% rename from gpack/travian_default/img/a/opened.gif rename to assets/gpack/travian_default/img/a/opened.gif diff --git a/gpack/travian_default/img/a/opera.gif b/assets/gpack/travian_default/img/a/opera.gif similarity index 100% rename from gpack/travian_default/img/a/opera.gif rename to assets/gpack/travian_default/img/a/opera.gif diff --git a/gpack/travian_default/img/a/plus.gif b/assets/gpack/travian_default/img/a/plus.gif similarity index 100% rename from gpack/travian_default/img/a/plus.gif rename to assets/gpack/travian_default/img/a/plus.gif diff --git a/gpack/travian_default/img/a/rand.gif b/assets/gpack/travian_default/img/a/rand.gif similarity index 100% rename from gpack/travian_default/img/a/rand.gif rename to assets/gpack/travian_default/img/a/rand.gif diff --git a/gpack/travian_default/img/a/report_icons.gif b/assets/gpack/travian_default/img/a/report_icons.gif similarity index 100% rename from gpack/travian_default/img/a/report_icons.gif rename to assets/gpack/travian_default/img/a/report_icons.gif diff --git a/gpack/travian_default/img/a/res2.gif b/assets/gpack/travian_default/img/a/res2.gif similarity index 100% rename from gpack/travian_default/img/a/res2.gif rename to assets/gpack/travian_default/img/a/res2.gif diff --git a/gpack/travian_default/img/a/resNew2.png b/assets/gpack/travian_default/img/a/resNew2.png similarity index 100% rename from gpack/travian_default/img/a/resNew2.png rename to assets/gpack/travian_default/img/a/resNew2.png diff --git a/gpack/travian_default/img/a/s.gif b/assets/gpack/travian_default/img/a/s.gif similarity index 100% rename from gpack/travian_default/img/a/s.gif rename to assets/gpack/travian_default/img/a/s.gif diff --git a/gpack/travian_default/img/a/troops.gif b/assets/gpack/travian_default/img/a/troops.gif similarity index 100% rename from gpack/travian_default/img/a/troops.gif rename to assets/gpack/travian_default/img/a/troops.gif diff --git a/gpack/travian_default/img/a/unknown.gif b/assets/gpack/travian_default/img/a/unknown.gif similarity index 100% rename from gpack/travian_default/img/a/unknown.gif rename to assets/gpack/travian_default/img/a/unknown.gif diff --git a/gpack/travian_default/img/a/w.gif b/assets/gpack/travian_default/img/a/w.gif similarity index 100% rename from gpack/travian_default/img/a/w.gif rename to assets/gpack/travian_default/img/a/w.gif diff --git a/gpack/travian_default/img/a/x.gif b/assets/gpack/travian_default/img/a/x.gif similarity index 100% rename from gpack/travian_default/img/a/x.gif rename to assets/gpack/travian_default/img/a/x.gif diff --git a/gpack/travian_default/img/artefact/ArtifactsAnnouncement.gif b/assets/gpack/travian_default/img/artefact/ArtifactsAnnouncement.gif similarity index 100% rename from gpack/travian_default/img/artefact/ArtifactsAnnouncement.gif rename to assets/gpack/travian_default/img/artefact/ArtifactsAnnouncement.gif diff --git a/gpack/travian_default/img/artefact/WWVillagesAnnouncement.gif b/assets/gpack/travian_default/img/artefact/WWVillagesAnnouncement.gif similarity index 100% rename from gpack/travian_default/img/artefact/WWVillagesAnnouncement.gif rename to assets/gpack/travian_default/img/artefact/WWVillagesAnnouncement.gif diff --git a/GameEngine/Notes/index.php b/assets/gpack/travian_default/img/artefact/index.php old mode 100755 new mode 100644 similarity index 100% rename from GameEngine/Notes/index.php rename to assets/gpack/travian_default/img/artefact/index.php diff --git a/gpack/travian_default/img/artefact/type-1.gif b/assets/gpack/travian_default/img/artefact/type-1.gif similarity index 100% rename from gpack/travian_default/img/artefact/type-1.gif rename to assets/gpack/travian_default/img/artefact/type-1.gif diff --git a/gpack/travian_default/img/artefact/type-10.gif b/assets/gpack/travian_default/img/artefact/type-10.gif similarity index 100% rename from gpack/travian_default/img/artefact/type-10.gif rename to assets/gpack/travian_default/img/artefact/type-10.gif diff --git a/gpack/travian_default/img/artefact/type-2.gif b/assets/gpack/travian_default/img/artefact/type-2.gif similarity index 100% rename from gpack/travian_default/img/artefact/type-2.gif rename to assets/gpack/travian_default/img/artefact/type-2.gif diff --git a/gpack/travian_default/img/artefact/type-4.gif b/assets/gpack/travian_default/img/artefact/type-4.gif similarity index 100% rename from gpack/travian_default/img/artefact/type-4.gif rename to assets/gpack/travian_default/img/artefact/type-4.gif diff --git a/gpack/travian_default/img/artefact/type-5.gif b/assets/gpack/travian_default/img/artefact/type-5.gif similarity index 100% rename from gpack/travian_default/img/artefact/type-5.gif rename to assets/gpack/travian_default/img/artefact/type-5.gif diff --git a/gpack/travian_default/img/artefact/type-6.gif b/assets/gpack/travian_default/img/artefact/type-6.gif similarity index 100% rename from gpack/travian_default/img/artefact/type-6.gif rename to assets/gpack/travian_default/img/artefact/type-6.gif diff --git a/gpack/travian_default/img/artefact/type-8.gif b/assets/gpack/travian_default/img/artefact/type-8.gif similarity index 100% rename from gpack/travian_default/img/artefact/type-8.gif rename to assets/gpack/travian_default/img/artefact/type-8.gif diff --git a/gpack/travian_default/img/artefact/type-9.gif b/assets/gpack/travian_default/img/artefact/type-9.gif similarity index 100% rename from gpack/travian_default/img/artefact/type-9.gif rename to assets/gpack/travian_default/img/artefact/type-9.gif diff --git a/gpack/travian_default/img/artefact/type-fool.gif b/assets/gpack/travian_default/img/artefact/type-fool.gif similarity index 100% rename from gpack/travian_default/img/artefact/type-fool.gif rename to assets/gpack/travian_default/img/artefact/type-fool.gif diff --git a/gpack/travian_default/img/artefact/type1.gif b/assets/gpack/travian_default/img/artefact/type1.gif similarity index 100% rename from gpack/travian_default/img/artefact/type1.gif rename to assets/gpack/travian_default/img/artefact/type1.gif diff --git a/gpack/travian_default/img/artefact/type2.gif b/assets/gpack/travian_default/img/artefact/type2.gif similarity index 100% rename from gpack/travian_default/img/artefact/type2.gif rename to assets/gpack/travian_default/img/artefact/type2.gif diff --git a/gpack/travian_default/img/artefact/type3.gif b/assets/gpack/travian_default/img/artefact/type3.gif similarity index 100% rename from gpack/travian_default/img/artefact/type3.gif rename to assets/gpack/travian_default/img/artefact/type3.gif diff --git a/gpack/travian_default/img/artefact/type4.gif b/assets/gpack/travian_default/img/artefact/type4.gif similarity index 100% rename from gpack/travian_default/img/artefact/type4.gif rename to assets/gpack/travian_default/img/artefact/type4.gif diff --git a/gpack/travian_default/img/artefact/type5.gif b/assets/gpack/travian_default/img/artefact/type5.gif similarity index 100% rename from gpack/travian_default/img/artefact/type5.gif rename to assets/gpack/travian_default/img/artefact/type5.gif diff --git a/gpack/travian_default/img/artefact/type6.gif b/assets/gpack/travian_default/img/artefact/type6.gif similarity index 100% rename from gpack/travian_default/img/artefact/type6.gif rename to assets/gpack/travian_default/img/artefact/type6.gif diff --git a/gpack/travian_default/img/artefact/type7.gif b/assets/gpack/travian_default/img/artefact/type7.gif similarity index 100% rename from gpack/travian_default/img/artefact/type7.gif rename to assets/gpack/travian_default/img/artefact/type7.gif diff --git a/gpack/travian_default/img/artefact/type8.gif b/assets/gpack/travian_default/img/artefact/type8.gif similarity index 100% rename from gpack/travian_default/img/artefact/type8.gif rename to assets/gpack/travian_default/img/artefact/type8.gif diff --git a/gpack/travian_default/img/artefact/typeww.gif b/assets/gpack/travian_default/img/artefact/typeww.gif similarity index 100% rename from gpack/travian_default/img/artefact/typeww.gif rename to assets/gpack/travian_default/img/artefact/typeww.gif diff --git a/gpack/travian_default/img/f/c4.gif b/assets/gpack/travian_default/img/f/c4.gif similarity index 100% rename from gpack/travian_default/img/f/c4.gif rename to assets/gpack/travian_default/img/f/c4.gif diff --git a/gpack/travian_default/img/f/del.gif b/assets/gpack/travian_default/img/f/del.gif similarity index 100% rename from gpack/travian_default/img/f/del.gif rename to assets/gpack/travian_default/img/f/del.gif diff --git a/gpack/travian_default/img/f/down_arr.gif b/assets/gpack/travian_default/img/f/down_arr.gif similarity index 100% rename from gpack/travian_default/img/f/down_arr.gif rename to assets/gpack/travian_default/img/f/down_arr.gif diff --git a/gpack/travian_default/img/f/edit.gif b/assets/gpack/travian_default/img/f/edit.gif similarity index 100% rename from gpack/travian_default/img/f/edit.gif rename to assets/gpack/travian_default/img/f/edit.gif diff --git a/gpack/travian_default/img/f/folder.gif b/assets/gpack/travian_default/img/f/folder.gif similarity index 100% rename from gpack/travian_default/img/f/folder.gif rename to assets/gpack/travian_default/img/f/folder.gif diff --git a/gpack/travian_default/img/f/folder_lock.gif b/assets/gpack/travian_default/img/f/folder_lock.gif similarity index 100% rename from gpack/travian_default/img/f/folder_lock.gif rename to assets/gpack/travian_default/img/f/folder_lock.gif diff --git a/gpack/travian_default/img/f/folder_new.gif b/assets/gpack/travian_default/img/f/folder_new.gif similarity index 100% rename from gpack/travian_default/img/f/folder_new.gif rename to assets/gpack/travian_default/img/f/folder_new.gif diff --git a/gpack/travian_default/img/f/folder_new_lock.gif b/assets/gpack/travian_default/img/f/folder_new_lock.gif similarity index 100% rename from gpack/travian_default/img/f/folder_new_lock.gif rename to assets/gpack/travian_default/img/f/folder_new_lock.gif diff --git a/gpack/travian_default/img/f/folder_new_sticky.gif b/assets/gpack/travian_default/img/f/folder_new_sticky.gif similarity index 100% rename from gpack/travian_default/img/f/folder_new_sticky.gif rename to assets/gpack/travian_default/img/f/folder_new_sticky.gif diff --git a/gpack/travian_default/img/f/folder_new_sticky_lock.gif b/assets/gpack/travian_default/img/f/folder_new_sticky_lock.gif similarity index 100% rename from gpack/travian_default/img/f/folder_new_sticky_lock.gif rename to assets/gpack/travian_default/img/f/folder_new_sticky_lock.gif diff --git a/gpack/travian_default/img/f/folder_sticky.gif b/assets/gpack/travian_default/img/f/folder_sticky.gif similarity index 100% rename from gpack/travian_default/img/f/folder_sticky.gif rename to assets/gpack/travian_default/img/f/folder_sticky.gif diff --git a/gpack/travian_default/img/f/folder_sticky_lock.gif b/assets/gpack/travian_default/img/f/folder_sticky_lock.gif similarity index 100% rename from gpack/travian_default/img/f/folder_sticky_lock.gif rename to assets/gpack/travian_default/img/f/folder_sticky_lock.gif diff --git a/gpack/travian_default/img/f/icon_latest_reply.gif b/assets/gpack/travian_default/img/f/icon_latest_reply.gif similarity index 100% rename from gpack/travian_default/img/f/icon_latest_reply.gif rename to assets/gpack/travian_default/img/f/icon_latest_reply.gif diff --git a/GameEngine/Prevention/index.php b/assets/gpack/travian_default/img/f/index.php old mode 100755 new mode 100644 similarity index 100% rename from GameEngine/Prevention/index.php rename to assets/gpack/travian_default/img/f/index.php diff --git a/gpack/travian_default/img/f/lock.gif b/assets/gpack/travian_default/img/f/lock.gif similarity index 100% rename from gpack/travian_default/img/f/lock.gif rename to assets/gpack/travian_default/img/f/lock.gif diff --git a/gpack/travian_default/img/f/mad.gif b/assets/gpack/travian_default/img/f/mad.gif similarity index 100% rename from gpack/travian_default/img/f/mad.gif rename to assets/gpack/travian_default/img/f/mad.gif diff --git a/gpack/travian_default/img/f/pin.gif b/assets/gpack/travian_default/img/f/pin.gif similarity index 100% rename from gpack/travian_default/img/f/pin.gif rename to assets/gpack/travian_default/img/f/pin.gif diff --git a/gpack/travian_default/img/f/plus.gif b/assets/gpack/travian_default/img/f/plus.gif similarity index 100% rename from gpack/travian_default/img/f/plus.gif rename to assets/gpack/travian_default/img/f/plus.gif diff --git a/gpack/travian_default/img/f/smileys.gif b/assets/gpack/travian_default/img/f/smileys.gif similarity index 100% rename from gpack/travian_default/img/f/smileys.gif rename to assets/gpack/travian_default/img/f/smileys.gif diff --git a/gpack/travian_default/img/f/stats_left.gif b/assets/gpack/travian_default/img/f/stats_left.gif similarity index 100% rename from gpack/travian_default/img/f/stats_left.gif rename to assets/gpack/travian_default/img/f/stats_left.gif diff --git a/gpack/travian_default/img/f/stats_middle.gif b/assets/gpack/travian_default/img/f/stats_middle.gif similarity index 100% rename from gpack/travian_default/img/f/stats_middle.gif rename to assets/gpack/travian_default/img/f/stats_middle.gif diff --git a/gpack/travian_default/img/f/stats_right.gif b/assets/gpack/travian_default/img/f/stats_right.gif similarity index 100% rename from gpack/travian_default/img/f/stats_right.gif rename to assets/gpack/travian_default/img/f/stats_right.gif diff --git a/gpack/travian_default/img/f/switch_admin.gif b/assets/gpack/travian_default/img/f/switch_admin.gif similarity index 100% rename from gpack/travian_default/img/f/switch_admin.gif rename to assets/gpack/travian_default/img/f/switch_admin.gif diff --git a/gpack/travian_default/img/f/unlock.gif b/assets/gpack/travian_default/img/f/unlock.gif similarity index 100% rename from gpack/travian_default/img/f/unlock.gif rename to assets/gpack/travian_default/img/f/unlock.gif diff --git a/gpack/travian_default/img/f/unpin.gif b/assets/gpack/travian_default/img/f/unpin.gif similarity index 100% rename from gpack/travian_default/img/f/unpin.gif rename to assets/gpack/travian_default/img/f/unpin.gif diff --git a/gpack/travian_default/img/f/up_arr.gif b/assets/gpack/travian_default/img/f/up_arr.gif similarity index 100% rename from gpack/travian_default/img/f/up_arr.gif rename to assets/gpack/travian_default/img/f/up_arr.gif diff --git a/gpack/travian_default/img/f/v_folder.gif b/assets/gpack/travian_default/img/f/v_folder.gif similarity index 100% rename from gpack/travian_default/img/f/v_folder.gif rename to assets/gpack/travian_default/img/f/v_folder.gif diff --git a/gpack/travian_default/img/f/v_folder_lock.gif b/assets/gpack/travian_default/img/f/v_folder_lock.gif similarity index 100% rename from gpack/travian_default/img/f/v_folder_lock.gif rename to assets/gpack/travian_default/img/f/v_folder_lock.gif diff --git a/gpack/travian_default/img/f/v_folder_new.gif b/assets/gpack/travian_default/img/f/v_folder_new.gif similarity index 100% rename from gpack/travian_default/img/f/v_folder_new.gif rename to assets/gpack/travian_default/img/f/v_folder_new.gif diff --git a/gpack/travian_default/img/f/v_folder_new_lock.gif b/assets/gpack/travian_default/img/f/v_folder_new_lock.gif similarity index 100% rename from gpack/travian_default/img/f/v_folder_new_lock.gif rename to assets/gpack/travian_default/img/f/v_folder_new_lock.gif diff --git a/gpack/travian_default/img/f/v_folder_new_sticky.gif b/assets/gpack/travian_default/img/f/v_folder_new_sticky.gif similarity index 100% rename from gpack/travian_default/img/f/v_folder_new_sticky.gif rename to assets/gpack/travian_default/img/f/v_folder_new_sticky.gif diff --git a/gpack/travian_default/img/f/v_folder_new_sticky_lock.gif b/assets/gpack/travian_default/img/f/v_folder_new_sticky_lock.gif similarity index 100% rename from gpack/travian_default/img/f/v_folder_new_sticky_lock.gif rename to assets/gpack/travian_default/img/f/v_folder_new_sticky_lock.gif diff --git a/gpack/travian_default/img/f/v_folder_sticky.gif b/assets/gpack/travian_default/img/f/v_folder_sticky.gif similarity index 100% rename from gpack/travian_default/img/f/v_folder_sticky.gif rename to assets/gpack/travian_default/img/f/v_folder_sticky.gif diff --git a/gpack/travian_default/img/f/v_folder_sticky_lock.gif b/assets/gpack/travian_default/img/f/v_folder_sticky_lock.gif similarity index 100% rename from gpack/travian_default/img/f/v_folder_sticky_lock.gif rename to assets/gpack/travian_default/img/f/v_folder_sticky_lock.gif diff --git a/gpack/travian_default/img/g/bg0.jpg b/assets/gpack/travian_default/img/g/bg0.jpg similarity index 100% rename from gpack/travian_default/img/g/bg0.jpg rename to assets/gpack/travian_default/img/g/bg0.jpg diff --git a/gpack/travian_default/img/g/bg1.jpg b/assets/gpack/travian_default/img/g/bg1.jpg similarity index 100% rename from gpack/travian_default/img/g/bg1.jpg rename to assets/gpack/travian_default/img/g/bg1.jpg diff --git a/gpack/travian_default/img/g/bg11.jpg b/assets/gpack/travian_default/img/g/bg11.jpg similarity index 100% rename from gpack/travian_default/img/g/bg11.jpg rename to assets/gpack/travian_default/img/g/bg11.jpg diff --git a/gpack/travian_default/img/g/bg12.jpg b/assets/gpack/travian_default/img/g/bg12.jpg similarity index 100% rename from gpack/travian_default/img/g/bg12.jpg rename to assets/gpack/travian_default/img/g/bg12.jpg diff --git a/gpack/travian_default/img/g/bg13.jpg b/assets/gpack/travian_default/img/g/bg13.jpg similarity index 100% rename from gpack/travian_default/img/g/bg13.jpg rename to assets/gpack/travian_default/img/g/bg13.jpg diff --git a/gpack/travian_default/img/g/f1.jpg b/assets/gpack/travian_default/img/g/f1.jpg similarity index 100% rename from gpack/travian_default/img/g/f1.jpg rename to assets/gpack/travian_default/img/g/f1.jpg diff --git a/gpack/travian_default/img/g/f10.jpg b/assets/gpack/travian_default/img/g/f10.jpg similarity index 100% rename from gpack/travian_default/img/g/f10.jpg rename to assets/gpack/travian_default/img/g/f10.jpg diff --git a/gpack/travian_default/img/g/f11.jpg b/assets/gpack/travian_default/img/g/f11.jpg similarity index 100% rename from gpack/travian_default/img/g/f11.jpg rename to assets/gpack/travian_default/img/g/f11.jpg diff --git a/gpack/travian_default/img/g/f12.jpg b/assets/gpack/travian_default/img/g/f12.jpg similarity index 100% rename from gpack/travian_default/img/g/f12.jpg rename to assets/gpack/travian_default/img/g/f12.jpg diff --git a/gpack/travian_default/img/g/f2.jpg b/assets/gpack/travian_default/img/g/f2.jpg similarity index 100% rename from gpack/travian_default/img/g/f2.jpg rename to assets/gpack/travian_default/img/g/f2.jpg diff --git a/gpack/travian_default/img/g/f3.jpg b/assets/gpack/travian_default/img/g/f3.jpg similarity index 100% rename from gpack/travian_default/img/g/f3.jpg rename to assets/gpack/travian_default/img/g/f3.jpg diff --git a/gpack/travian_default/img/g/f4.jpg b/assets/gpack/travian_default/img/g/f4.jpg similarity index 100% rename from gpack/travian_default/img/g/f4.jpg rename to assets/gpack/travian_default/img/g/f4.jpg diff --git a/gpack/travian_default/img/g/f5.jpg b/assets/gpack/travian_default/img/g/f5.jpg similarity index 100% rename from gpack/travian_default/img/g/f5.jpg rename to assets/gpack/travian_default/img/g/f5.jpg diff --git a/gpack/travian_default/img/g/f6.jpg b/assets/gpack/travian_default/img/g/f6.jpg similarity index 100% rename from gpack/travian_default/img/g/f6.jpg rename to assets/gpack/travian_default/img/g/f6.jpg diff --git a/gpack/travian_default/img/g/f7.jpg b/assets/gpack/travian_default/img/g/f7.jpg similarity index 100% rename from gpack/travian_default/img/g/f7.jpg rename to assets/gpack/travian_default/img/g/f7.jpg diff --git a/gpack/travian_default/img/g/f8.jpg b/assets/gpack/travian_default/img/g/f8.jpg similarity index 100% rename from gpack/travian_default/img/g/f8.jpg rename to assets/gpack/travian_default/img/g/f8.jpg diff --git a/gpack/travian_default/img/g/f9.jpg b/assets/gpack/travian_default/img/g/f9.jpg similarity index 100% rename from gpack/travian_default/img/g/f9.jpg rename to assets/gpack/travian_default/img/g/f9.jpg diff --git a/gpack/travian_default/img/g/f99.jpg b/assets/gpack/travian_default/img/g/f99.jpg similarity index 100% rename from gpack/travian_default/img/g/f99.jpg rename to assets/gpack/travian_default/img/g/f99.jpg diff --git a/gpack/travian_default/img/g/g1.gif b/assets/gpack/travian_default/img/g/g1.gif similarity index 100% rename from gpack/travian_default/img/g/g1.gif rename to assets/gpack/travian_default/img/g/g1.gif diff --git a/gpack/travian_default/img/g/g10.gif b/assets/gpack/travian_default/img/g/g10.gif similarity index 100% rename from gpack/travian_default/img/g/g10.gif rename to assets/gpack/travian_default/img/g/g10.gif diff --git a/gpack/travian_default/img/g/g10b.gif b/assets/gpack/travian_default/img/g/g10b.gif similarity index 100% rename from gpack/travian_default/img/g/g10b.gif rename to assets/gpack/travian_default/img/g/g10b.gif diff --git a/gpack/travian_default/img/g/g11.gif b/assets/gpack/travian_default/img/g/g11.gif similarity index 100% rename from gpack/travian_default/img/g/g11.gif rename to assets/gpack/travian_default/img/g/g11.gif diff --git a/gpack/travian_default/img/g/g11b.gif b/assets/gpack/travian_default/img/g/g11b.gif similarity index 100% rename from gpack/travian_default/img/g/g11b.gif rename to assets/gpack/travian_default/img/g/g11b.gif diff --git a/gpack/travian_default/img/g/g12.gif b/assets/gpack/travian_default/img/g/g12.gif similarity index 100% rename from gpack/travian_default/img/g/g12.gif rename to assets/gpack/travian_default/img/g/g12.gif diff --git a/gpack/travian_default/img/g/g12b.gif b/assets/gpack/travian_default/img/g/g12b.gif similarity index 100% rename from gpack/travian_default/img/g/g12b.gif rename to assets/gpack/travian_default/img/g/g12b.gif diff --git a/gpack/travian_default/img/g/g13.gif b/assets/gpack/travian_default/img/g/g13.gif similarity index 100% rename from gpack/travian_default/img/g/g13.gif rename to assets/gpack/travian_default/img/g/g13.gif diff --git a/gpack/travian_default/img/g/g13b.gif b/assets/gpack/travian_default/img/g/g13b.gif similarity index 100% rename from gpack/travian_default/img/g/g13b.gif rename to assets/gpack/travian_default/img/g/g13b.gif diff --git a/gpack/travian_default/img/g/g14.gif b/assets/gpack/travian_default/img/g/g14.gif similarity index 100% rename from gpack/travian_default/img/g/g14.gif rename to assets/gpack/travian_default/img/g/g14.gif diff --git a/gpack/travian_default/img/g/g14b.gif b/assets/gpack/travian_default/img/g/g14b.gif similarity index 100% rename from gpack/travian_default/img/g/g14b.gif rename to assets/gpack/travian_default/img/g/g14b.gif diff --git a/gpack/travian_default/img/g/g15.gif b/assets/gpack/travian_default/img/g/g15.gif similarity index 100% rename from gpack/travian_default/img/g/g15.gif rename to assets/gpack/travian_default/img/g/g15.gif diff --git a/gpack/travian_default/img/g/g15b.gif b/assets/gpack/travian_default/img/g/g15b.gif similarity index 100% rename from gpack/travian_default/img/g/g15b.gif rename to assets/gpack/travian_default/img/g/g15b.gif diff --git a/gpack/travian_default/img/g/g16.gif b/assets/gpack/travian_default/img/g/g16.gif similarity index 100% rename from gpack/travian_default/img/g/g16.gif rename to assets/gpack/travian_default/img/g/g16.gif diff --git a/gpack/travian_default/img/g/g16b.gif b/assets/gpack/travian_default/img/g/g16b.gif similarity index 100% rename from gpack/travian_default/img/g/g16b.gif rename to assets/gpack/travian_default/img/g/g16b.gif diff --git a/gpack/travian_default/img/g/g16e.gif b/assets/gpack/travian_default/img/g/g16e.gif similarity index 100% rename from gpack/travian_default/img/g/g16e.gif rename to assets/gpack/travian_default/img/g/g16e.gif diff --git a/gpack/travian_default/img/g/g17.gif b/assets/gpack/travian_default/img/g/g17.gif similarity index 100% rename from gpack/travian_default/img/g/g17.gif rename to assets/gpack/travian_default/img/g/g17.gif diff --git a/gpack/travian_default/img/g/g17b.gif b/assets/gpack/travian_default/img/g/g17b.gif similarity index 100% rename from gpack/travian_default/img/g/g17b.gif rename to assets/gpack/travian_default/img/g/g17b.gif diff --git a/gpack/travian_default/img/g/g18.gif b/assets/gpack/travian_default/img/g/g18.gif similarity index 100% rename from gpack/travian_default/img/g/g18.gif rename to assets/gpack/travian_default/img/g/g18.gif diff --git a/gpack/travian_default/img/g/g18b.gif b/assets/gpack/travian_default/img/g/g18b.gif similarity index 100% rename from gpack/travian_default/img/g/g18b.gif rename to assets/gpack/travian_default/img/g/g18b.gif diff --git a/gpack/travian_default/img/g/g19.gif b/assets/gpack/travian_default/img/g/g19.gif similarity index 100% rename from gpack/travian_default/img/g/g19.gif rename to assets/gpack/travian_default/img/g/g19.gif diff --git a/gpack/travian_default/img/g/g19b.gif b/assets/gpack/travian_default/img/g/g19b.gif similarity index 100% rename from gpack/travian_default/img/g/g19b.gif rename to assets/gpack/travian_default/img/g/g19b.gif diff --git a/gpack/travian_default/img/g/g2.gif b/assets/gpack/travian_default/img/g/g2.gif similarity index 100% rename from gpack/travian_default/img/g/g2.gif rename to assets/gpack/travian_default/img/g/g2.gif diff --git a/gpack/travian_default/img/g/g20.gif b/assets/gpack/travian_default/img/g/g20.gif similarity index 100% rename from gpack/travian_default/img/g/g20.gif rename to assets/gpack/travian_default/img/g/g20.gif diff --git a/gpack/travian_default/img/g/g20b.gif b/assets/gpack/travian_default/img/g/g20b.gif similarity index 100% rename from gpack/travian_default/img/g/g20b.gif rename to assets/gpack/travian_default/img/g/g20b.gif diff --git a/gpack/travian_default/img/g/g21.gif b/assets/gpack/travian_default/img/g/g21.gif similarity index 100% rename from gpack/travian_default/img/g/g21.gif rename to assets/gpack/travian_default/img/g/g21.gif diff --git a/gpack/travian_default/img/g/g21b.gif b/assets/gpack/travian_default/img/g/g21b.gif similarity index 100% rename from gpack/travian_default/img/g/g21b.gif rename to assets/gpack/travian_default/img/g/g21b.gif diff --git a/gpack/travian_default/img/g/g22.gif b/assets/gpack/travian_default/img/g/g22.gif similarity index 100% rename from gpack/travian_default/img/g/g22.gif rename to assets/gpack/travian_default/img/g/g22.gif diff --git a/gpack/travian_default/img/g/g22b.gif b/assets/gpack/travian_default/img/g/g22b.gif similarity index 100% rename from gpack/travian_default/img/g/g22b.gif rename to assets/gpack/travian_default/img/g/g22b.gif diff --git a/gpack/travian_default/img/g/g23.gif b/assets/gpack/travian_default/img/g/g23.gif similarity index 100% rename from gpack/travian_default/img/g/g23.gif rename to assets/gpack/travian_default/img/g/g23.gif diff --git a/gpack/travian_default/img/g/g23b.gif b/assets/gpack/travian_default/img/g/g23b.gif similarity index 100% rename from gpack/travian_default/img/g/g23b.gif rename to assets/gpack/travian_default/img/g/g23b.gif diff --git a/gpack/travian_default/img/g/g24.gif b/assets/gpack/travian_default/img/g/g24.gif similarity index 100% rename from gpack/travian_default/img/g/g24.gif rename to assets/gpack/travian_default/img/g/g24.gif diff --git a/gpack/travian_default/img/g/g24b.gif b/assets/gpack/travian_default/img/g/g24b.gif similarity index 100% rename from gpack/travian_default/img/g/g24b.gif rename to assets/gpack/travian_default/img/g/g24b.gif diff --git a/gpack/travian_default/img/g/g25.gif b/assets/gpack/travian_default/img/g/g25.gif similarity index 100% rename from gpack/travian_default/img/g/g25.gif rename to assets/gpack/travian_default/img/g/g25.gif diff --git a/gpack/travian_default/img/g/g25b.gif b/assets/gpack/travian_default/img/g/g25b.gif similarity index 100% rename from gpack/travian_default/img/g/g25b.gif rename to assets/gpack/travian_default/img/g/g25b.gif diff --git a/gpack/travian_default/img/g/g26.gif b/assets/gpack/travian_default/img/g/g26.gif similarity index 100% rename from gpack/travian_default/img/g/g26.gif rename to assets/gpack/travian_default/img/g/g26.gif diff --git a/gpack/travian_default/img/g/g26b.gif b/assets/gpack/travian_default/img/g/g26b.gif similarity index 100% rename from gpack/travian_default/img/g/g26b.gif rename to assets/gpack/travian_default/img/g/g26b.gif diff --git a/gpack/travian_default/img/g/g27.gif b/assets/gpack/travian_default/img/g/g27.gif similarity index 100% rename from gpack/travian_default/img/g/g27.gif rename to assets/gpack/travian_default/img/g/g27.gif diff --git a/gpack/travian_default/img/g/g27b.gif b/assets/gpack/travian_default/img/g/g27b.gif similarity index 100% rename from gpack/travian_default/img/g/g27b.gif rename to assets/gpack/travian_default/img/g/g27b.gif diff --git a/gpack/travian_default/img/g/g28.gif b/assets/gpack/travian_default/img/g/g28.gif similarity index 100% rename from gpack/travian_default/img/g/g28.gif rename to assets/gpack/travian_default/img/g/g28.gif diff --git a/gpack/travian_default/img/g/g28b.gif b/assets/gpack/travian_default/img/g/g28b.gif similarity index 100% rename from gpack/travian_default/img/g/g28b.gif rename to assets/gpack/travian_default/img/g/g28b.gif diff --git a/gpack/travian_default/img/g/g29.gif b/assets/gpack/travian_default/img/g/g29.gif similarity index 100% rename from gpack/travian_default/img/g/g29.gif rename to assets/gpack/travian_default/img/g/g29.gif diff --git a/gpack/travian_default/img/g/g29b.gif b/assets/gpack/travian_default/img/g/g29b.gif similarity index 100% rename from gpack/travian_default/img/g/g29b.gif rename to assets/gpack/travian_default/img/g/g29b.gif diff --git a/gpack/travian_default/img/g/g3.gif b/assets/gpack/travian_default/img/g/g3.gif similarity index 100% rename from gpack/travian_default/img/g/g3.gif rename to assets/gpack/travian_default/img/g/g3.gif diff --git a/gpack/travian_default/img/g/g30.gif b/assets/gpack/travian_default/img/g/g30.gif similarity index 100% rename from gpack/travian_default/img/g/g30.gif rename to assets/gpack/travian_default/img/g/g30.gif diff --git a/gpack/travian_default/img/g/g30b.gif b/assets/gpack/travian_default/img/g/g30b.gif similarity index 100% rename from gpack/travian_default/img/g/g30b.gif rename to assets/gpack/travian_default/img/g/g30b.gif diff --git a/gpack/travian_default/img/g/g31Icon.gif b/assets/gpack/travian_default/img/g/g31Icon.gif similarity index 100% rename from gpack/travian_default/img/g/g31Icon.gif rename to assets/gpack/travian_default/img/g/g31Icon.gif diff --git a/gpack/travian_default/img/g/g32Icon.gif b/assets/gpack/travian_default/img/g/g32Icon.gif similarity index 100% rename from gpack/travian_default/img/g/g32Icon.gif rename to assets/gpack/travian_default/img/g/g32Icon.gif diff --git a/gpack/travian_default/img/g/g33Icon.gif b/assets/gpack/travian_default/img/g/g33Icon.gif similarity index 100% rename from gpack/travian_default/img/g/g33Icon.gif rename to assets/gpack/travian_default/img/g/g33Icon.gif diff --git a/gpack/travian_default/img/g/g34.gif b/assets/gpack/travian_default/img/g/g34.gif similarity index 100% rename from gpack/travian_default/img/g/g34.gif rename to assets/gpack/travian_default/img/g/g34.gif diff --git a/gpack/travian_default/img/g/g34b.gif b/assets/gpack/travian_default/img/g/g34b.gif similarity index 100% rename from gpack/travian_default/img/g/g34b.gif rename to assets/gpack/travian_default/img/g/g34b.gif diff --git a/gpack/travian_default/img/g/g35.gif b/assets/gpack/travian_default/img/g/g35.gif similarity index 100% rename from gpack/travian_default/img/g/g35.gif rename to assets/gpack/travian_default/img/g/g35.gif diff --git a/gpack/travian_default/img/g/g35_tea.gif b/assets/gpack/travian_default/img/g/g35_tea.gif similarity index 100% rename from gpack/travian_default/img/g/g35_tea.gif rename to assets/gpack/travian_default/img/g/g35_tea.gif diff --git a/gpack/travian_default/img/g/g35b.gif b/assets/gpack/travian_default/img/g/g35b.gif similarity index 100% rename from gpack/travian_default/img/g/g35b.gif rename to assets/gpack/travian_default/img/g/g35b.gif diff --git a/gpack/travian_default/img/g/g35b_tea.gif b/assets/gpack/travian_default/img/g/g35b_tea.gif similarity index 100% rename from gpack/travian_default/img/g/g35b_tea.gif rename to assets/gpack/travian_default/img/g/g35b_tea.gif diff --git a/gpack/travian_default/img/g/g36.gif b/assets/gpack/travian_default/img/g/g36.gif similarity index 100% rename from gpack/travian_default/img/g/g36.gif rename to assets/gpack/travian_default/img/g/g36.gif diff --git a/gpack/travian_default/img/g/g36b.gif b/assets/gpack/travian_default/img/g/g36b.gif similarity index 100% rename from gpack/travian_default/img/g/g36b.gif rename to assets/gpack/travian_default/img/g/g36b.gif diff --git a/gpack/travian_default/img/g/g37.gif b/assets/gpack/travian_default/img/g/g37.gif similarity index 100% rename from gpack/travian_default/img/g/g37.gif rename to assets/gpack/travian_default/img/g/g37.gif diff --git a/gpack/travian_default/img/g/g37b.gif b/assets/gpack/travian_default/img/g/g37b.gif similarity index 100% rename from gpack/travian_default/img/g/g37b.gif rename to assets/gpack/travian_default/img/g/g37b.gif diff --git a/gpack/travian_default/img/g/g38.gif b/assets/gpack/travian_default/img/g/g38.gif similarity index 100% rename from gpack/travian_default/img/g/g38.gif rename to assets/gpack/travian_default/img/g/g38.gif diff --git a/gpack/travian_default/img/g/g38b.gif b/assets/gpack/travian_default/img/g/g38b.gif similarity index 100% rename from gpack/travian_default/img/g/g38b.gif rename to assets/gpack/travian_default/img/g/g38b.gif diff --git a/gpack/travian_default/img/g/g39.gif b/assets/gpack/travian_default/img/g/g39.gif similarity index 100% rename from gpack/travian_default/img/g/g39.gif rename to assets/gpack/travian_default/img/g/g39.gif diff --git a/gpack/travian_default/img/g/g39b.gif b/assets/gpack/travian_default/img/g/g39b.gif similarity index 100% rename from gpack/travian_default/img/g/g39b.gif rename to assets/gpack/travian_default/img/g/g39b.gif diff --git a/gpack/travian_default/img/g/g4.gif b/assets/gpack/travian_default/img/g/g4.gif similarity index 100% rename from gpack/travian_default/img/g/g4.gif rename to assets/gpack/travian_default/img/g/g4.gif diff --git a/gpack/travian_default/img/g/g40.gif b/assets/gpack/travian_default/img/g/g40.gif similarity index 100% rename from gpack/travian_default/img/g/g40.gif rename to assets/gpack/travian_default/img/g/g40.gif diff --git a/gpack/travian_default/img/g/g40_1.gif b/assets/gpack/travian_default/img/g/g40_1.gif similarity index 100% rename from gpack/travian_default/img/g/g40_1.gif rename to assets/gpack/travian_default/img/g/g40_1.gif diff --git a/gpack/travian_default/img/g/g40_2.gif b/assets/gpack/travian_default/img/g/g40_2.gif similarity index 100% rename from gpack/travian_default/img/g/g40_2.gif rename to assets/gpack/travian_default/img/g/g40_2.gif diff --git a/gpack/travian_default/img/g/g40_3.gif b/assets/gpack/travian_default/img/g/g40_3.gif similarity index 100% rename from gpack/travian_default/img/g/g40_3.gif rename to assets/gpack/travian_default/img/g/g40_3.gif diff --git a/gpack/travian_default/img/g/g40_4.gif b/assets/gpack/travian_default/img/g/g40_4.gif similarity index 100% rename from gpack/travian_default/img/g/g40_4.gif rename to assets/gpack/travian_default/img/g/g40_4.gif diff --git a/gpack/travian_default/img/g/g40_5.gif b/assets/gpack/travian_default/img/g/g40_5.gif similarity index 100% rename from gpack/travian_default/img/g/g40_5.gif rename to assets/gpack/travian_default/img/g/g40_5.gif diff --git a/gpack/travian_default/img/g/g41.gif b/assets/gpack/travian_default/img/g/g41.gif similarity index 100% rename from gpack/travian_default/img/g/g41.gif rename to assets/gpack/travian_default/img/g/g41.gif diff --git a/gpack/travian_default/img/g/g41b.gif b/assets/gpack/travian_default/img/g/g41b.gif similarity index 100% rename from gpack/travian_default/img/g/g41b.gif rename to assets/gpack/travian_default/img/g/g41b.gif diff --git a/gpack/travian_default/img/g/g42.gif b/assets/gpack/travian_default/img/g/g42.gif similarity index 100% rename from gpack/travian_default/img/g/g42.gif rename to assets/gpack/travian_default/img/g/g42.gif diff --git a/gpack/travian_default/img/g/g42b.gif b/assets/gpack/travian_default/img/g/g42b.gif similarity index 100% rename from gpack/travian_default/img/g/g42b.gif rename to assets/gpack/travian_default/img/g/g42b.gif diff --git a/gpack/travian_default/img/g/g43.gif b/assets/gpack/travian_default/img/g/g43.gif similarity index 100% rename from gpack/travian_default/img/g/g43.gif rename to assets/gpack/travian_default/img/g/g43.gif diff --git a/gpack/travian_default/img/g/g43b.gif b/assets/gpack/travian_default/img/g/g43b.gif similarity index 100% rename from gpack/travian_default/img/g/g43b.gif rename to assets/gpack/travian_default/img/g/g43b.gif diff --git a/gpack/travian_default/img/g/g44.gif b/assets/gpack/travian_default/img/g/g44.gif similarity index 100% rename from gpack/travian_default/img/g/g44.gif rename to assets/gpack/travian_default/img/g/g44.gif diff --git a/gpack/travian_default/img/g/g44b.gif b/assets/gpack/travian_default/img/g/g44b.gif similarity index 100% rename from gpack/travian_default/img/g/g44b.gif rename to assets/gpack/travian_default/img/g/g44b.gif diff --git a/gpack/travian_default/img/g/g5.gif b/assets/gpack/travian_default/img/g/g5.gif similarity index 100% rename from gpack/travian_default/img/g/g5.gif rename to assets/gpack/travian_default/img/g/g5.gif diff --git a/gpack/travian_default/img/g/g5b.gif b/assets/gpack/travian_default/img/g/g5b.gif similarity index 100% rename from gpack/travian_default/img/g/g5b.gif rename to assets/gpack/travian_default/img/g/g5b.gif diff --git a/gpack/travian_default/img/g/g6.gif b/assets/gpack/travian_default/img/g/g6.gif similarity index 100% rename from gpack/travian_default/img/g/g6.gif rename to assets/gpack/travian_default/img/g/g6.gif diff --git a/gpack/travian_default/img/g/g6b.gif b/assets/gpack/travian_default/img/g/g6b.gif similarity index 100% rename from gpack/travian_default/img/g/g6b.gif rename to assets/gpack/travian_default/img/g/g6b.gif diff --git a/gpack/travian_default/img/g/g7.gif b/assets/gpack/travian_default/img/g/g7.gif similarity index 100% rename from gpack/travian_default/img/g/g7.gif rename to assets/gpack/travian_default/img/g/g7.gif diff --git a/gpack/travian_default/img/g/g7b.gif b/assets/gpack/travian_default/img/g/g7b.gif similarity index 100% rename from gpack/travian_default/img/g/g7b.gif rename to assets/gpack/travian_default/img/g/g7b.gif diff --git a/gpack/travian_default/img/g/g8.gif b/assets/gpack/travian_default/img/g/g8.gif similarity index 100% rename from gpack/travian_default/img/g/g8.gif rename to assets/gpack/travian_default/img/g/g8.gif diff --git a/gpack/travian_default/img/g/g8b.gif b/assets/gpack/travian_default/img/g/g8b.gif similarity index 100% rename from gpack/travian_default/img/g/g8b.gif rename to assets/gpack/travian_default/img/g/g8b.gif diff --git a/gpack/travian_default/img/g/g9.gif b/assets/gpack/travian_default/img/g/g9.gif similarity index 100% rename from gpack/travian_default/img/g/g9.gif rename to assets/gpack/travian_default/img/g/g9.gif diff --git a/gpack/travian_default/img/g/g9b.gif b/assets/gpack/travian_default/img/g/g9b.gif similarity index 100% rename from gpack/travian_default/img/g/g9b.gif rename to assets/gpack/travian_default/img/g/g9b.gif diff --git a/GameEngine/index.php b/assets/gpack/travian_default/img/g/index.php old mode 100755 new mode 100644 similarity index 100% rename from GameEngine/index.php rename to assets/gpack/travian_default/img/g/index.php diff --git a/gpack/travian_default/img/g/iso.gif b/assets/gpack/travian_default/img/g/iso.gif similarity index 100% rename from gpack/travian_default/img/g/iso.gif rename to assets/gpack/travian_default/img/g/iso.gif diff --git a/gpack/travian_default/img/g/s/glvl.gif b/assets/gpack/travian_default/img/g/s/glvl.gif similarity index 100% rename from gpack/travian_default/img/g/s/glvl.gif rename to assets/gpack/travian_default/img/g/s/glvl.gif diff --git a/gpack/travian_default/img/g/s/glvlm.gif b/assets/gpack/travian_default/img/g/s/glvlm.gif similarity index 100% rename from gpack/travian_default/img/g/s/glvlm.gif rename to assets/gpack/travian_default/img/g/s/glvlm.gif diff --git a/gpack/travian_default/img/g/s/glvlp.gif b/assets/gpack/travian_default/img/g/s/glvlp.gif similarity index 100% rename from gpack/travian_default/img/g/s/glvlp.gif rename to assets/gpack/travian_default/img/g/s/glvlp.gif diff --git a/Templates/Ajax/index.php b/assets/gpack/travian_default/img/g/s/index.php similarity index 100% rename from Templates/Ajax/index.php rename to assets/gpack/travian_default/img/g/s/index.php diff --git a/gpack/travian_default/img/g/s/lvl11_20.gif b/assets/gpack/travian_default/img/g/s/lvl11_20.gif similarity index 100% rename from gpack/travian_default/img/g/s/lvl11_20.gif rename to assets/gpack/travian_default/img/g/s/lvl11_20.gif diff --git a/gpack/travian_default/img/g/s/lvl11_20_active.gif b/assets/gpack/travian_default/img/g/s/lvl11_20_active.gif similarity index 100% rename from gpack/travian_default/img/g/s/lvl11_20_active.gif rename to assets/gpack/travian_default/img/g/s/lvl11_20_active.gif diff --git a/gpack/travian_default/img/g/s/lvl1_10.gif b/assets/gpack/travian_default/img/g/s/lvl1_10.gif similarity index 100% rename from gpack/travian_default/img/g/s/lvl1_10.gif rename to assets/gpack/travian_default/img/g/s/lvl1_10.gif diff --git a/gpack/travian_default/img/g/s/lvl1_10_active.gif b/assets/gpack/travian_default/img/g/s/lvl1_10_active.gif similarity index 100% rename from gpack/travian_default/img/g/s/lvl1_10_active.gif rename to assets/gpack/travian_default/img/g/s/lvl1_10_active.gif diff --git a/gpack/travian_default/img/g/s/lvl21_30.gif b/assets/gpack/travian_default/img/g/s/lvl21_30.gif similarity index 100% rename from gpack/travian_default/img/g/s/lvl21_30.gif rename to assets/gpack/travian_default/img/g/s/lvl21_30.gif diff --git a/gpack/travian_default/img/g/s/lvl21_30_active.gif b/assets/gpack/travian_default/img/g/s/lvl21_30_active.gif similarity index 100% rename from gpack/travian_default/img/g/s/lvl21_30_active.gif rename to assets/gpack/travian_default/img/g/s/lvl21_30_active.gif diff --git a/gpack/travian_default/img/gloriamedals/Defensive_1.png b/assets/gpack/travian_default/img/gloriamedals/Defensive_1.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Defensive_1.png rename to assets/gpack/travian_default/img/gloriamedals/Defensive_1.png diff --git a/gpack/travian_default/img/gloriamedals/Defensive_10.png b/assets/gpack/travian_default/img/gloriamedals/Defensive_10.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Defensive_10.png rename to assets/gpack/travian_default/img/gloriamedals/Defensive_10.png diff --git a/gpack/travian_default/img/gloriamedals/Defensive_2.png b/assets/gpack/travian_default/img/gloriamedals/Defensive_2.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Defensive_2.png rename to assets/gpack/travian_default/img/gloriamedals/Defensive_2.png diff --git a/gpack/travian_default/img/gloriamedals/Defensive_3.png b/assets/gpack/travian_default/img/gloriamedals/Defensive_3.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Defensive_3.png rename to assets/gpack/travian_default/img/gloriamedals/Defensive_3.png diff --git a/gpack/travian_default/img/gloriamedals/Defensive_4.png b/assets/gpack/travian_default/img/gloriamedals/Defensive_4.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Defensive_4.png rename to assets/gpack/travian_default/img/gloriamedals/Defensive_4.png diff --git a/gpack/travian_default/img/gloriamedals/Defensive_5.png b/assets/gpack/travian_default/img/gloriamedals/Defensive_5.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Defensive_5.png rename to assets/gpack/travian_default/img/gloriamedals/Defensive_5.png diff --git a/gpack/travian_default/img/gloriamedals/Defensive_6.png b/assets/gpack/travian_default/img/gloriamedals/Defensive_6.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Defensive_6.png rename to assets/gpack/travian_default/img/gloriamedals/Defensive_6.png diff --git a/gpack/travian_default/img/gloriamedals/Defensive_7.png b/assets/gpack/travian_default/img/gloriamedals/Defensive_7.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Defensive_7.png rename to assets/gpack/travian_default/img/gloriamedals/Defensive_7.png diff --git a/gpack/travian_default/img/gloriamedals/Defensive_8.png b/assets/gpack/travian_default/img/gloriamedals/Defensive_8.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Defensive_8.png rename to assets/gpack/travian_default/img/gloriamedals/Defensive_8.png diff --git a/gpack/travian_default/img/gloriamedals/Defensive_9.png b/assets/gpack/travian_default/img/gloriamedals/Defensive_9.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Defensive_9.png rename to assets/gpack/travian_default/img/gloriamedals/Defensive_9.png diff --git a/gpack/travian_default/img/gloriamedals/Offensive_1.png b/assets/gpack/travian_default/img/gloriamedals/Offensive_1.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Offensive_1.png rename to assets/gpack/travian_default/img/gloriamedals/Offensive_1.png diff --git a/gpack/travian_default/img/gloriamedals/Offensive_10.png b/assets/gpack/travian_default/img/gloriamedals/Offensive_10.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Offensive_10.png rename to assets/gpack/travian_default/img/gloriamedals/Offensive_10.png diff --git a/gpack/travian_default/img/gloriamedals/Offensive_2.png b/assets/gpack/travian_default/img/gloriamedals/Offensive_2.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Offensive_2.png rename to assets/gpack/travian_default/img/gloriamedals/Offensive_2.png diff --git a/gpack/travian_default/img/gloriamedals/Offensive_3.png b/assets/gpack/travian_default/img/gloriamedals/Offensive_3.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Offensive_3.png rename to assets/gpack/travian_default/img/gloriamedals/Offensive_3.png diff --git a/gpack/travian_default/img/gloriamedals/Offensive_4.png b/assets/gpack/travian_default/img/gloriamedals/Offensive_4.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Offensive_4.png rename to assets/gpack/travian_default/img/gloriamedals/Offensive_4.png diff --git a/gpack/travian_default/img/gloriamedals/Offensive_5.png b/assets/gpack/travian_default/img/gloriamedals/Offensive_5.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Offensive_5.png rename to assets/gpack/travian_default/img/gloriamedals/Offensive_5.png diff --git a/gpack/travian_default/img/gloriamedals/Offensive_6.png b/assets/gpack/travian_default/img/gloriamedals/Offensive_6.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Offensive_6.png rename to assets/gpack/travian_default/img/gloriamedals/Offensive_6.png diff --git a/gpack/travian_default/img/gloriamedals/Offensive_7.png b/assets/gpack/travian_default/img/gloriamedals/Offensive_7.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Offensive_7.png rename to assets/gpack/travian_default/img/gloriamedals/Offensive_7.png diff --git a/gpack/travian_default/img/gloriamedals/Offensive_8.png b/assets/gpack/travian_default/img/gloriamedals/Offensive_8.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Offensive_8.png rename to assets/gpack/travian_default/img/gloriamedals/Offensive_8.png diff --git a/gpack/travian_default/img/gloriamedals/Offensive_9.png b/assets/gpack/travian_default/img/gloriamedals/Offensive_9.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Offensive_9.png rename to assets/gpack/travian_default/img/gloriamedals/Offensive_9.png diff --git a/gpack/travian_default/img/gloriamedals/Population_1.png b/assets/gpack/travian_default/img/gloriamedals/Population_1.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Population_1.png rename to assets/gpack/travian_default/img/gloriamedals/Population_1.png diff --git a/gpack/travian_default/img/gloriamedals/Population_10.png b/assets/gpack/travian_default/img/gloriamedals/Population_10.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Population_10.png rename to assets/gpack/travian_default/img/gloriamedals/Population_10.png diff --git a/gpack/travian_default/img/gloriamedals/Population_2.png b/assets/gpack/travian_default/img/gloriamedals/Population_2.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Population_2.png rename to assets/gpack/travian_default/img/gloriamedals/Population_2.png diff --git a/gpack/travian_default/img/gloriamedals/Population_3.png b/assets/gpack/travian_default/img/gloriamedals/Population_3.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Population_3.png rename to assets/gpack/travian_default/img/gloriamedals/Population_3.png diff --git a/gpack/travian_default/img/gloriamedals/Population_4.png b/assets/gpack/travian_default/img/gloriamedals/Population_4.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Population_4.png rename to assets/gpack/travian_default/img/gloriamedals/Population_4.png diff --git a/gpack/travian_default/img/gloriamedals/Population_5.png b/assets/gpack/travian_default/img/gloriamedals/Population_5.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Population_5.png rename to assets/gpack/travian_default/img/gloriamedals/Population_5.png diff --git a/gpack/travian_default/img/gloriamedals/Population_6.png b/assets/gpack/travian_default/img/gloriamedals/Population_6.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Population_6.png rename to assets/gpack/travian_default/img/gloriamedals/Population_6.png diff --git a/gpack/travian_default/img/gloriamedals/Population_7.png b/assets/gpack/travian_default/img/gloriamedals/Population_7.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Population_7.png rename to assets/gpack/travian_default/img/gloriamedals/Population_7.png diff --git a/gpack/travian_default/img/gloriamedals/Population_8.png b/assets/gpack/travian_default/img/gloriamedals/Population_8.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Population_8.png rename to assets/gpack/travian_default/img/gloriamedals/Population_8.png diff --git a/gpack/travian_default/img/gloriamedals/Population_9.png b/assets/gpack/travian_default/img/gloriamedals/Population_9.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Population_9.png rename to assets/gpack/travian_default/img/gloriamedals/Population_9.png diff --git a/gpack/travian_default/img/gloriamedals/Survivor_2.png b/assets/gpack/travian_default/img/gloriamedals/Survivor_2.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Survivor_2.png rename to assets/gpack/travian_default/img/gloriamedals/Survivor_2.png diff --git a/gpack/travian_default/img/gloriamedals/Wow_1.png b/assets/gpack/travian_default/img/gloriamedals/Wow_1.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Wow_1.png rename to assets/gpack/travian_default/img/gloriamedals/Wow_1.png diff --git a/gpack/travian_default/img/gloriamedals/Wow_2.png b/assets/gpack/travian_default/img/gloriamedals/Wow_2.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/Wow_2.png rename to assets/gpack/travian_default/img/gloriamedals/Wow_2.png diff --git a/gpack/travian_default/img/gloriamedals/def1.png b/assets/gpack/travian_default/img/gloriamedals/def1.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/def1.png rename to assets/gpack/travian_default/img/gloriamedals/def1.png diff --git a/gpack/travian_default/img/gloriamedals/def2.png b/assets/gpack/travian_default/img/gloriamedals/def2.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/def2.png rename to assets/gpack/travian_default/img/gloriamedals/def2.png diff --git a/gpack/travian_default/img/gloriamedals/def3.png b/assets/gpack/travian_default/img/gloriamedals/def3.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/def3.png rename to assets/gpack/travian_default/img/gloriamedals/def3.png diff --git a/gpack/travian_default/img/gloriamedals/def4.png b/assets/gpack/travian_default/img/gloriamedals/def4.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/def4.png rename to assets/gpack/travian_default/img/gloriamedals/def4.png diff --git a/gpack/travian_default/img/gloriamedals/off1.png b/assets/gpack/travian_default/img/gloriamedals/off1.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/off1.png rename to assets/gpack/travian_default/img/gloriamedals/off1.png diff --git a/gpack/travian_default/img/gloriamedals/off2.png b/assets/gpack/travian_default/img/gloriamedals/off2.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/off2.png rename to assets/gpack/travian_default/img/gloriamedals/off2.png diff --git a/gpack/travian_default/img/gloriamedals/off3.png b/assets/gpack/travian_default/img/gloriamedals/off3.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/off3.png rename to assets/gpack/travian_default/img/gloriamedals/off3.png diff --git a/gpack/travian_default/img/gloriamedals/off4.png b/assets/gpack/travian_default/img/gloriamedals/off4.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/off4.png rename to assets/gpack/travian_default/img/gloriamedals/off4.png diff --git a/gpack/travian_default/img/gloriamedals/pop1.png b/assets/gpack/travian_default/img/gloriamedals/pop1.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/pop1.png rename to assets/gpack/travian_default/img/gloriamedals/pop1.png diff --git a/gpack/travian_default/img/gloriamedals/pop2.png b/assets/gpack/travian_default/img/gloriamedals/pop2.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/pop2.png rename to assets/gpack/travian_default/img/gloriamedals/pop2.png diff --git a/gpack/travian_default/img/gloriamedals/pop3.png b/assets/gpack/travian_default/img/gloriamedals/pop3.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/pop3.png rename to assets/gpack/travian_default/img/gloriamedals/pop3.png diff --git a/gpack/travian_default/img/gloriamedals/pop4.png b/assets/gpack/travian_default/img/gloriamedals/pop4.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/pop4.png rename to assets/gpack/travian_default/img/gloriamedals/pop4.png diff --git a/gpack/travian_default/img/gloriamedals/survivor.png b/assets/gpack/travian_default/img/gloriamedals/survivor.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/survivor.png rename to assets/gpack/travian_default/img/gloriamedals/survivor.png diff --git a/gpack/travian_default/img/gloriamedals/ww-silber.png b/assets/gpack/travian_default/img/gloriamedals/ww-silber.png similarity index 100% rename from gpack/travian_default/img/gloriamedals/ww-silber.png rename to assets/gpack/travian_default/img/gloriamedals/ww-silber.png diff --git a/Templates/Alliance/Forum/index.php b/assets/gpack/travian_default/img/index.php similarity index 100% rename from Templates/Alliance/Forum/index.php rename to assets/gpack/travian_default/img/index.php diff --git a/gpack/travian_default/img/l/ad0.jpg b/assets/gpack/travian_default/img/l/ad0.jpg similarity index 100% rename from gpack/travian_default/img/l/ad0.jpg rename to assets/gpack/travian_default/img/l/ad0.jpg diff --git a/gpack/travian_default/img/l/ad1.jpg b/assets/gpack/travian_default/img/l/ad1.jpg similarity index 100% rename from gpack/travian_default/img/l/ad1.jpg rename to assets/gpack/travian_default/img/l/ad1.jpg diff --git a/gpack/travian_default/img/l/ad2.jpg b/assets/gpack/travian_default/img/l/ad2.jpg similarity index 100% rename from gpack/travian_default/img/l/ad2.jpg rename to assets/gpack/travian_default/img/l/ad2.jpg diff --git a/gpack/travian_default/img/l/bigsize_bg.jpg b/assets/gpack/travian_default/img/l/bigsize_bg.jpg similarity index 100% rename from gpack/travian_default/img/l/bigsize_bg.jpg rename to assets/gpack/travian_default/img/l/bigsize_bg.jpg diff --git a/gpack/travian_default/img/l/bigsize_bg_interia.jpg b/assets/gpack/travian_default/img/l/bigsize_bg_interia.jpg similarity index 100% rename from gpack/travian_default/img/l/bigsize_bg_interia.jpg rename to assets/gpack/travian_default/img/l/bigsize_bg_interia.jpg diff --git a/gpack/travian_default/img/l/day.gif b/assets/gpack/travian_default/img/l/day.gif similarity index 100% rename from gpack/travian_default/img/l/day.gif rename to assets/gpack/travian_default/img/l/day.gif diff --git a/gpack/travian_default/img/l/dyn_bg1.jpg b/assets/gpack/travian_default/img/l/dyn_bg1.jpg similarity index 100% rename from gpack/travian_default/img/l/dyn_bg1.jpg rename to assets/gpack/travian_default/img/l/dyn_bg1.jpg diff --git a/Templates/Alliance/index.php b/assets/gpack/travian_default/img/l/index.php similarity index 100% rename from Templates/Alliance/index.php rename to assets/gpack/travian_default/img/l/index.php diff --git a/gpack/travian_default/img/l/m1.gif b/assets/gpack/travian_default/img/l/m1.gif similarity index 100% rename from gpack/travian_default/img/l/m1.gif rename to assets/gpack/travian_default/img/l/m1.gif diff --git a/gpack/travian_default/img/l/m1_30.gif b/assets/gpack/travian_default/img/l/m1_30.gif similarity index 100% rename from gpack/travian_default/img/l/m1_30.gif rename to assets/gpack/travian_default/img/l/m1_30.gif diff --git a/gpack/travian_default/img/l/m2.gif b/assets/gpack/travian_default/img/l/m2.gif similarity index 100% rename from gpack/travian_default/img/l/m2.gif rename to assets/gpack/travian_default/img/l/m2.gif diff --git a/gpack/travian_default/img/l/m2_30.gif b/assets/gpack/travian_default/img/l/m2_30.gif similarity index 100% rename from gpack/travian_default/img/l/m2_30.gif rename to assets/gpack/travian_default/img/l/m2_30.gif diff --git a/gpack/travian_default/img/l/m3.gif b/assets/gpack/travian_default/img/l/m3.gif similarity index 100% rename from gpack/travian_default/img/l/m3.gif rename to assets/gpack/travian_default/img/l/m3.gif diff --git a/gpack/travian_default/img/l/m3_30.gif b/assets/gpack/travian_default/img/l/m3_30.gif similarity index 100% rename from gpack/travian_default/img/l/m3_30.gif rename to assets/gpack/travian_default/img/l/m3_30.gif diff --git a/gpack/travian_default/img/l/m4.gif b/assets/gpack/travian_default/img/l/m4.gif similarity index 100% rename from gpack/travian_default/img/l/m4.gif rename to assets/gpack/travian_default/img/l/m4.gif diff --git a/gpack/travian_default/img/l/m4_30.gif b/assets/gpack/travian_default/img/l/m4_30.gif similarity index 100% rename from gpack/travian_default/img/l/m4_30.gif rename to assets/gpack/travian_default/img/l/m4_30.gif diff --git a/gpack/travian_default/img/l/mp.gif b/assets/gpack/travian_default/img/l/mp.gif similarity index 100% rename from gpack/travian_default/img/l/mp.gif rename to assets/gpack/travian_default/img/l/mp.gif diff --git a/gpack/travian_default/img/l/mw.gif b/assets/gpack/travian_default/img/l/mw.gif similarity index 100% rename from gpack/travian_default/img/l/mw.gif rename to assets/gpack/travian_default/img/l/mw.gif diff --git a/gpack/travian_default/img/l/n1.gif b/assets/gpack/travian_default/img/l/n1.gif similarity index 100% rename from gpack/travian_default/img/l/n1.gif rename to assets/gpack/travian_default/img/l/n1.gif diff --git a/gpack/travian_default/img/l/n1_30.gif b/assets/gpack/travian_default/img/l/n1_30.gif similarity index 100% rename from gpack/travian_default/img/l/n1_30.gif rename to assets/gpack/travian_default/img/l/n1_30.gif diff --git a/gpack/travian_default/img/l/n2.gif b/assets/gpack/travian_default/img/l/n2.gif similarity index 100% rename from gpack/travian_default/img/l/n2.gif rename to assets/gpack/travian_default/img/l/n2.gif diff --git a/gpack/travian_default/img/l/n2_30.gif b/assets/gpack/travian_default/img/l/n2_30.gif similarity index 100% rename from gpack/travian_default/img/l/n2_30.gif rename to assets/gpack/travian_default/img/l/n2_30.gif diff --git a/gpack/travian_default/img/l/n3.gif b/assets/gpack/travian_default/img/l/n3.gif similarity index 100% rename from gpack/travian_default/img/l/n3.gif rename to assets/gpack/travian_default/img/l/n3.gif diff --git a/gpack/travian_default/img/l/n3_30.gif b/assets/gpack/travian_default/img/l/n3_30.gif similarity index 100% rename from gpack/travian_default/img/l/n3_30.gif rename to assets/gpack/travian_default/img/l/n3_30.gif diff --git a/gpack/travian_default/img/l/n4.gif b/assets/gpack/travian_default/img/l/n4.gif similarity index 100% rename from gpack/travian_default/img/l/n4.gif rename to assets/gpack/travian_default/img/l/n4.gif diff --git a/gpack/travian_default/img/l/n4_30.gif b/assets/gpack/travian_default/img/l/n4_30.gif similarity index 100% rename from gpack/travian_default/img/l/n4_30.gif rename to assets/gpack/travian_default/img/l/n4_30.gif diff --git a/gpack/travian_default/img/l/navi.gif b/assets/gpack/travian_default/img/l/navi.gif similarity index 100% rename from gpack/travian_default/img/l/navi.gif rename to assets/gpack/travian_default/img/l/navi.gif diff --git a/gpack/travian_default/img/l/night.gif b/assets/gpack/travian_default/img/l/night.gif similarity index 100% rename from gpack/travian_default/img/l/night.gif rename to assets/gpack/travian_default/img/l/night.gif diff --git a/gpack/travian_default/img/l/skyscraper_bg.gif b/assets/gpack/travian_default/img/l/skyscraper_bg.gif similarity index 100% rename from gpack/travian_default/img/l/skyscraper_bg.gif rename to assets/gpack/travian_default/img/l/skyscraper_bg.gif diff --git a/gpack/travian_default/img/m/d00.gif b/assets/gpack/travian_default/img/m/d00.gif similarity index 100% rename from gpack/travian_default/img/m/d00.gif rename to assets/gpack/travian_default/img/m/d00.gif diff --git a/gpack/travian_default/img/m/d01.gif b/assets/gpack/travian_default/img/m/d01.gif similarity index 100% rename from gpack/travian_default/img/m/d01.gif rename to assets/gpack/travian_default/img/m/d01.gif diff --git a/gpack/travian_default/img/m/d02.gif b/assets/gpack/travian_default/img/m/d02.gif similarity index 100% rename from gpack/travian_default/img/m/d02.gif rename to assets/gpack/travian_default/img/m/d02.gif diff --git a/gpack/travian_default/img/m/d03.gif b/assets/gpack/travian_default/img/m/d03.gif similarity index 100% rename from gpack/travian_default/img/m/d03.gif rename to assets/gpack/travian_default/img/m/d03.gif diff --git a/gpack/travian_default/img/m/d04.gif b/assets/gpack/travian_default/img/m/d04.gif similarity index 100% rename from gpack/travian_default/img/m/d04.gif rename to assets/gpack/travian_default/img/m/d04.gif diff --git a/gpack/travian_default/img/m/d05.gif b/assets/gpack/travian_default/img/m/d05.gif similarity index 100% rename from gpack/travian_default/img/m/d05.gif rename to assets/gpack/travian_default/img/m/d05.gif diff --git a/gpack/travian_default/img/m/d10.gif b/assets/gpack/travian_default/img/m/d10.gif similarity index 100% rename from gpack/travian_default/img/m/d10.gif rename to assets/gpack/travian_default/img/m/d10.gif diff --git a/gpack/travian_default/img/m/d11.gif b/assets/gpack/travian_default/img/m/d11.gif similarity index 100% rename from gpack/travian_default/img/m/d11.gif rename to assets/gpack/travian_default/img/m/d11.gif diff --git a/gpack/travian_default/img/m/d12.gif b/assets/gpack/travian_default/img/m/d12.gif similarity index 100% rename from gpack/travian_default/img/m/d12.gif rename to assets/gpack/travian_default/img/m/d12.gif diff --git a/gpack/travian_default/img/m/d13.gif b/assets/gpack/travian_default/img/m/d13.gif similarity index 100% rename from gpack/travian_default/img/m/d13.gif rename to assets/gpack/travian_default/img/m/d13.gif diff --git a/gpack/travian_default/img/m/d14.gif b/assets/gpack/travian_default/img/m/d14.gif similarity index 100% rename from gpack/travian_default/img/m/d14.gif rename to assets/gpack/travian_default/img/m/d14.gif diff --git a/gpack/travian_default/img/m/d15.gif b/assets/gpack/travian_default/img/m/d15.gif similarity index 100% rename from gpack/travian_default/img/m/d15.gif rename to assets/gpack/travian_default/img/m/d15.gif diff --git a/gpack/travian_default/img/m/d20.gif b/assets/gpack/travian_default/img/m/d20.gif similarity index 100% rename from gpack/travian_default/img/m/d20.gif rename to assets/gpack/travian_default/img/m/d20.gif diff --git a/gpack/travian_default/img/m/d21.gif b/assets/gpack/travian_default/img/m/d21.gif similarity index 100% rename from gpack/travian_default/img/m/d21.gif rename to assets/gpack/travian_default/img/m/d21.gif diff --git a/gpack/travian_default/img/m/d22.gif b/assets/gpack/travian_default/img/m/d22.gif similarity index 100% rename from gpack/travian_default/img/m/d22.gif rename to assets/gpack/travian_default/img/m/d22.gif diff --git a/gpack/travian_default/img/m/d23.gif b/assets/gpack/travian_default/img/m/d23.gif similarity index 100% rename from gpack/travian_default/img/m/d23.gif rename to assets/gpack/travian_default/img/m/d23.gif diff --git a/gpack/travian_default/img/m/d24.gif b/assets/gpack/travian_default/img/m/d24.gif similarity index 100% rename from gpack/travian_default/img/m/d24.gif rename to assets/gpack/travian_default/img/m/d24.gif diff --git a/gpack/travian_default/img/m/d25.gif b/assets/gpack/travian_default/img/m/d25.gif similarity index 100% rename from gpack/travian_default/img/m/d25.gif rename to assets/gpack/travian_default/img/m/d25.gif diff --git a/gpack/travian_default/img/m/d30.gif b/assets/gpack/travian_default/img/m/d30.gif similarity index 100% rename from gpack/travian_default/img/m/d30.gif rename to assets/gpack/travian_default/img/m/d30.gif diff --git a/gpack/travian_default/img/m/d31.gif b/assets/gpack/travian_default/img/m/d31.gif similarity index 100% rename from gpack/travian_default/img/m/d31.gif rename to assets/gpack/travian_default/img/m/d31.gif diff --git a/gpack/travian_default/img/m/d32.gif b/assets/gpack/travian_default/img/m/d32.gif similarity index 100% rename from gpack/travian_default/img/m/d32.gif rename to assets/gpack/travian_default/img/m/d32.gif diff --git a/gpack/travian_default/img/m/d33.gif b/assets/gpack/travian_default/img/m/d33.gif similarity index 100% rename from gpack/travian_default/img/m/d33.gif rename to assets/gpack/travian_default/img/m/d33.gif diff --git a/gpack/travian_default/img/m/d34.gif b/assets/gpack/travian_default/img/m/d34.gif similarity index 100% rename from gpack/travian_default/img/m/d34.gif rename to assets/gpack/travian_default/img/m/d34.gif diff --git a/gpack/travian_default/img/m/d35.gif b/assets/gpack/travian_default/img/m/d35.gif similarity index 100% rename from gpack/travian_default/img/m/d35.gif rename to assets/gpack/travian_default/img/m/d35.gif diff --git a/gpack/travian_default/img/m/dir.gif b/assets/gpack/travian_default/img/m/dir.gif similarity index 100% rename from gpack/travian_default/img/m/dir.gif rename to assets/gpack/travian_default/img/m/dir.gif diff --git a/Templates/Anleitung/index.php b/assets/gpack/travian_default/img/m/index.php similarity index 100% rename from Templates/Anleitung/index.php rename to assets/gpack/travian_default/img/m/index.php diff --git a/gpack/travian_default/img/m/map.gif b/assets/gpack/travian_default/img/m/map.gif similarity index 100% rename from gpack/travian_default/img/m/map.gif rename to assets/gpack/travian_default/img/m/map.gif diff --git a/gpack/travian_default/img/m/map.jpg b/assets/gpack/travian_default/img/m/map.jpg similarity index 100% rename from gpack/travian_default/img/m/map.jpg rename to assets/gpack/travian_default/img/m/map.jpg diff --git a/gpack/travian_default/img/m/mapl.gif b/assets/gpack/travian_default/img/m/mapl.gif similarity index 100% rename from gpack/travian_default/img/m/mapl.gif rename to assets/gpack/travian_default/img/m/mapl.gif diff --git a/gpack/travian_default/img/m/matt.gif b/assets/gpack/travian_default/img/m/matt.gif similarity index 100% rename from gpack/travian_default/img/m/matt.gif rename to assets/gpack/travian_default/img/m/matt.gif diff --git a/gpack/travian_default/img/m/max.gif b/assets/gpack/travian_default/img/m/max.gif similarity index 100% rename from gpack/travian_default/img/m/max.gif rename to assets/gpack/travian_default/img/m/max.gif diff --git a/gpack/travian_default/img/m/mret.gif b/assets/gpack/travian_default/img/m/mret.gif similarity index 100% rename from gpack/travian_default/img/m/mret.gif rename to assets/gpack/travian_default/img/m/mret.gif diff --git a/gpack/travian_default/img/m/mspy.gif b/assets/gpack/travian_default/img/m/mspy.gif similarity index 100% rename from gpack/travian_default/img/m/mspy.gif rename to assets/gpack/travian_default/img/m/mspy.gif diff --git a/gpack/travian_default/img/m/msup.gif b/assets/gpack/travian_default/img/m/msup.gif similarity index 100% rename from gpack/travian_default/img/m/msup.gif rename to assets/gpack/travian_default/img/m/msup.gif diff --git a/gpack/travian_default/img/m/o1.gif b/assets/gpack/travian_default/img/m/o1.gif similarity index 100% rename from gpack/travian_default/img/m/o1.gif rename to assets/gpack/travian_default/img/m/o1.gif diff --git a/gpack/travian_default/img/m/o10.gif b/assets/gpack/travian_default/img/m/o10.gif similarity index 100% rename from gpack/travian_default/img/m/o10.gif rename to assets/gpack/travian_default/img/m/o10.gif diff --git a/gpack/travian_default/img/m/o11.gif b/assets/gpack/travian_default/img/m/o11.gif similarity index 100% rename from gpack/travian_default/img/m/o11.gif rename to assets/gpack/travian_default/img/m/o11.gif diff --git a/gpack/travian_default/img/m/o12.gif b/assets/gpack/travian_default/img/m/o12.gif similarity index 100% rename from gpack/travian_default/img/m/o12.gif rename to assets/gpack/travian_default/img/m/o12.gif diff --git a/gpack/travian_default/img/m/o2.gif b/assets/gpack/travian_default/img/m/o2.gif similarity index 100% rename from gpack/travian_default/img/m/o2.gif rename to assets/gpack/travian_default/img/m/o2.gif diff --git a/gpack/travian_default/img/m/o3.gif b/assets/gpack/travian_default/img/m/o3.gif similarity index 100% rename from gpack/travian_default/img/m/o3.gif rename to assets/gpack/travian_default/img/m/o3.gif diff --git a/gpack/travian_default/img/m/o4.gif b/assets/gpack/travian_default/img/m/o4.gif similarity index 100% rename from gpack/travian_default/img/m/o4.gif rename to assets/gpack/travian_default/img/m/o4.gif diff --git a/gpack/travian_default/img/m/o5.gif b/assets/gpack/travian_default/img/m/o5.gif similarity index 100% rename from gpack/travian_default/img/m/o5.gif rename to assets/gpack/travian_default/img/m/o5.gif diff --git a/gpack/travian_default/img/m/o6.gif b/assets/gpack/travian_default/img/m/o6.gif similarity index 100% rename from gpack/travian_default/img/m/o6.gif rename to assets/gpack/travian_default/img/m/o6.gif diff --git a/gpack/travian_default/img/m/o7.gif b/assets/gpack/travian_default/img/m/o7.gif similarity index 100% rename from gpack/travian_default/img/m/o7.gif rename to assets/gpack/travian_default/img/m/o7.gif diff --git a/gpack/travian_default/img/m/o8.gif b/assets/gpack/travian_default/img/m/o8.gif similarity index 100% rename from gpack/travian_default/img/m/o8.gif rename to assets/gpack/travian_default/img/m/o8.gif diff --git a/gpack/travian_default/img/m/o9.gif b/assets/gpack/travian_default/img/m/o9.gif similarity index 100% rename from gpack/travian_default/img/m/o9.gif rename to assets/gpack/travian_default/img/m/o9.gif diff --git a/gpack/travian_default/img/m/o99.gif b/assets/gpack/travian_default/img/m/o99.gif similarity index 100% rename from gpack/travian_default/img/m/o99.gif rename to assets/gpack/travian_default/img/m/o99.gif diff --git a/gpack/travian_default/img/m/t0.gif b/assets/gpack/travian_default/img/m/t0.gif similarity index 100% rename from gpack/travian_default/img/m/t0.gif rename to assets/gpack/travian_default/img/m/t0.gif diff --git a/gpack/travian_default/img/m/t1.gif b/assets/gpack/travian_default/img/m/t1.gif similarity index 100% rename from gpack/travian_default/img/m/t1.gif rename to assets/gpack/travian_default/img/m/t1.gif diff --git a/gpack/travian_default/img/m/t2.gif b/assets/gpack/travian_default/img/m/t2.gif similarity index 100% rename from gpack/travian_default/img/m/t2.gif rename to assets/gpack/travian_default/img/m/t2.gif diff --git a/gpack/travian_default/img/m/t3.gif b/assets/gpack/travian_default/img/m/t3.gif similarity index 100% rename from gpack/travian_default/img/m/t3.gif rename to assets/gpack/travian_default/img/m/t3.gif diff --git a/gpack/travian_default/img/m/t4.gif b/assets/gpack/travian_default/img/m/t4.gif similarity index 100% rename from gpack/travian_default/img/m/t4.gif rename to assets/gpack/travian_default/img/m/t4.gif diff --git a/gpack/travian_default/img/m/t5.gif b/assets/gpack/travian_default/img/m/t5.gif similarity index 100% rename from gpack/travian_default/img/m/t5.gif rename to assets/gpack/travian_default/img/m/t5.gif diff --git a/gpack/travian_default/img/m/t6.gif b/assets/gpack/travian_default/img/m/t6.gif similarity index 100% rename from gpack/travian_default/img/m/t6.gif rename to assets/gpack/travian_default/img/m/t6.gif diff --git a/gpack/travian_default/img/m/t7.gif b/assets/gpack/travian_default/img/m/t7.gif similarity index 100% rename from gpack/travian_default/img/m/t7.gif rename to assets/gpack/travian_default/img/m/t7.gif diff --git a/gpack/travian_default/img/m/t8.gif b/assets/gpack/travian_default/img/m/t8.gif similarity index 100% rename from gpack/travian_default/img/m/t8.gif rename to assets/gpack/travian_default/img/m/t8.gif diff --git a/gpack/travian_default/img/m/t9.gif b/assets/gpack/travian_default/img/m/t9.gif similarity index 100% rename from gpack/travian_default/img/m/t9.gif rename to assets/gpack/travian_default/img/m/t9.gif diff --git a/gpack/travian_default/img/m/w1.jpg b/assets/gpack/travian_default/img/m/w1.jpg similarity index 100% rename from gpack/travian_default/img/m/w1.jpg rename to assets/gpack/travian_default/img/m/w1.jpg diff --git a/gpack/travian_default/img/m/w10.jpg b/assets/gpack/travian_default/img/m/w10.jpg similarity index 100% rename from gpack/travian_default/img/m/w10.jpg rename to assets/gpack/travian_default/img/m/w10.jpg diff --git a/gpack/travian_default/img/m/w11.jpg b/assets/gpack/travian_default/img/m/w11.jpg similarity index 100% rename from gpack/travian_default/img/m/w11.jpg rename to assets/gpack/travian_default/img/m/w11.jpg diff --git a/gpack/travian_default/img/m/w12.jpg b/assets/gpack/travian_default/img/m/w12.jpg similarity index 100% rename from gpack/travian_default/img/m/w12.jpg rename to assets/gpack/travian_default/img/m/w12.jpg diff --git a/gpack/travian_default/img/m/w2.jpg b/assets/gpack/travian_default/img/m/w2.jpg similarity index 100% rename from gpack/travian_default/img/m/w2.jpg rename to assets/gpack/travian_default/img/m/w2.jpg diff --git a/gpack/travian_default/img/m/w3.jpg b/assets/gpack/travian_default/img/m/w3.jpg similarity index 100% rename from gpack/travian_default/img/m/w3.jpg rename to assets/gpack/travian_default/img/m/w3.jpg diff --git a/gpack/travian_default/img/m/w4.jpg b/assets/gpack/travian_default/img/m/w4.jpg similarity index 100% rename from gpack/travian_default/img/m/w4.jpg rename to assets/gpack/travian_default/img/m/w4.jpg diff --git a/gpack/travian_default/img/m/w5.jpg b/assets/gpack/travian_default/img/m/w5.jpg similarity index 100% rename from gpack/travian_default/img/m/w5.jpg rename to assets/gpack/travian_default/img/m/w5.jpg diff --git a/gpack/travian_default/img/m/w6.jpg b/assets/gpack/travian_default/img/m/w6.jpg similarity index 100% rename from gpack/travian_default/img/m/w6.jpg rename to assets/gpack/travian_default/img/m/w6.jpg diff --git a/gpack/travian_default/img/m/w7.jpg b/assets/gpack/travian_default/img/m/w7.jpg similarity index 100% rename from gpack/travian_default/img/m/w7.jpg rename to assets/gpack/travian_default/img/m/w7.jpg diff --git a/gpack/travian_default/img/m/w8.jpg b/assets/gpack/travian_default/img/m/w8.jpg similarity index 100% rename from gpack/travian_default/img/m/w8.jpg rename to assets/gpack/travian_default/img/m/w8.jpg diff --git a/gpack/travian_default/img/m/w9.jpg b/assets/gpack/travian_default/img/m/w9.jpg similarity index 100% rename from gpack/travian_default/img/m/w9.jpg rename to assets/gpack/travian_default/img/m/w9.jpg diff --git a/gpack/travian_default/img/misc/403.gif b/assets/gpack/travian_default/img/misc/403.gif similarity index 100% rename from gpack/travian_default/img/misc/403.gif rename to assets/gpack/travian_default/img/misc/403.gif diff --git a/gpack/travian_default/img/misc/404.gif b/assets/gpack/travian_default/img/misc/404.gif similarity index 100% rename from gpack/travian_default/img/misc/404.gif rename to assets/gpack/travian_default/img/misc/404.gif diff --git a/gpack/travian_default/img/misc/500.gif b/assets/gpack/travian_default/img/misc/500.gif similarity index 100% rename from gpack/travian_default/img/misc/500.gif rename to assets/gpack/travian_default/img/misc/500.gif diff --git a/gpack/travian_default/img/misc/artefacts.gif b/assets/gpack/travian_default/img/misc/artefacts.gif similarity index 100% rename from gpack/travian_default/img/misc/artefacts.gif rename to assets/gpack/travian_default/img/misc/artefacts.gif diff --git a/gpack/travian_default/img/misc/cropfinder.gif b/assets/gpack/travian_default/img/misc/cropfinder.gif similarity index 100% rename from gpack/travian_default/img/misc/cropfinder.gif rename to assets/gpack/travian_default/img/misc/cropfinder.gif diff --git a/Templates/Build/index.php b/assets/gpack/travian_default/img/misc/index.php similarity index 100% rename from Templates/Build/index.php rename to assets/gpack/travian_default/img/misc/index.php diff --git a/gpack/travian_default/img/misc/vip.gif b/assets/gpack/travian_default/img/misc/vip.gif similarity index 100% rename from gpack/travian_default/img/misc/vip.gif rename to assets/gpack/travian_default/img/misc/vip.gif diff --git a/gpack/travian_default/img/misc/win.png b/assets/gpack/travian_default/img/misc/win.png similarity index 100% rename from gpack/travian_default/img/misc/win.png rename to assets/gpack/travian_default/img/misc/win.png diff --git a/gpack/travian_default/img/misc/xlo.gif b/assets/gpack/travian_default/img/misc/xlo.gif similarity index 100% rename from gpack/travian_default/img/misc/xlo.gif rename to assets/gpack/travian_default/img/misc/xlo.gif diff --git a/gpack/travian_default/img/msg/bb_buttons.png b/assets/gpack/travian_default/img/msg/bb_buttons.png similarity index 100% rename from gpack/travian_default/img/msg/bb_buttons.png rename to assets/gpack/travian_default/img/msg/bb_buttons.png diff --git a/gpack/travian_default/img/msg/block_bg.gif b/assets/gpack/travian_default/img/msg/block_bg.gif similarity index 100% rename from gpack/travian_default/img/msg/block_bg.gif rename to assets/gpack/travian_default/img/msg/block_bg.gif diff --git a/gpack/travian_default/img/msg/block_bg2.gif b/assets/gpack/travian_default/img/msg/block_bg2.gif similarity index 100% rename from gpack/travian_default/img/msg/block_bg2.gif rename to assets/gpack/travian_default/img/msg/block_bg2.gif diff --git a/gpack/travian_default/img/msg/block_bg21.gif b/assets/gpack/travian_default/img/msg/block_bg21.gif similarity index 100% rename from gpack/travian_default/img/msg/block_bg21.gif rename to assets/gpack/travian_default/img/msg/block_bg21.gif diff --git a/gpack/travian_default/img/msg/block_bg22.gif b/assets/gpack/travian_default/img/msg/block_bg22.gif similarity index 100% rename from gpack/travian_default/img/msg/block_bg22.gif rename to assets/gpack/travian_default/img/msg/block_bg22.gif diff --git a/gpack/travian_default/img/msg/block_bg23.gif b/assets/gpack/travian_default/img/msg/block_bg23.gif similarity index 100% rename from gpack/travian_default/img/msg/block_bg23.gif rename to assets/gpack/travian_default/img/msg/block_bg23.gif diff --git a/gpack/travian_default/img/msg/block_bg25.gif b/assets/gpack/travian_default/img/msg/block_bg25.gif similarity index 100% rename from gpack/travian_default/img/msg/block_bg25.gif rename to assets/gpack/travian_default/img/msg/block_bg25.gif diff --git a/Templates/Manual/index.php b/assets/gpack/travian_default/img/msg/index.php similarity index 100% rename from Templates/Manual/index.php rename to assets/gpack/travian_default/img/msg/index.php diff --git a/gpack/travian_default/img/msg/line.gif b/assets/gpack/travian_default/img/msg/line.gif similarity index 100% rename from gpack/travian_default/img/msg/line.gif rename to assets/gpack/travian_default/img/msg/line.gif diff --git a/gpack/travian_default/img/msg/underline.gif b/assets/gpack/travian_default/img/msg/underline.gif similarity index 100% rename from gpack/travian_default/img/msg/underline.gif rename to assets/gpack/travian_default/img/msg/underline.gif diff --git a/gpack/travian_default/img/new/adr.png b/assets/gpack/travian_default/img/new/adr.png similarity index 100% rename from gpack/travian_default/img/new/adr.png rename to assets/gpack/travian_default/img/new/adr.png diff --git a/gpack/travian_default/img/new/anl.png b/assets/gpack/travian_default/img/new/anl.png similarity index 100% rename from gpack/travian_default/img/new/anl.png rename to assets/gpack/travian_default/img/new/anl.png diff --git a/gpack/travian_default/img/new/background.png b/assets/gpack/travian_default/img/new/background.png similarity index 100% rename from gpack/travian_default/img/new/background.png rename to assets/gpack/travian_default/img/new/background.png diff --git a/gpack/travian_default/img/new/background_a2b.png b/assets/gpack/travian_default/img/new/background_a2b.png similarity index 100% rename from gpack/travian_default/img/new/background_a2b.png rename to assets/gpack/travian_default/img/new/background_a2b.png diff --git a/gpack/travian_default/img/new/background_alliance_name.png b/assets/gpack/travian_default/img/new/background_alliance_name.png similarity index 100% rename from gpack/travian_default/img/new/background_alliance_name.png rename to assets/gpack/travian_default/img/new/background_alliance_name.png diff --git a/gpack/travian_default/img/new/background_map.png b/assets/gpack/travian_default/img/new/background_map.png similarity index 100% rename from gpack/travian_default/img/new/background_map.png rename to assets/gpack/travian_default/img/new/background_map.png diff --git a/gpack/travian_default/img/new/background_messages.png b/assets/gpack/travian_default/img/new/background_messages.png similarity index 100% rename from gpack/travian_default/img/new/background_messages.png rename to assets/gpack/travian_default/img/new/background_messages.png diff --git a/gpack/travian_default/img/new/background_plus.png b/assets/gpack/travian_default/img/new/background_plus.png similarity index 100% rename from gpack/travian_default/img/new/background_plus.png rename to assets/gpack/travian_default/img/new/background_plus.png diff --git a/gpack/travian_default/img/new/background_reports.png b/assets/gpack/travian_default/img/new/background_reports.png similarity index 100% rename from gpack/travian_default/img/new/background_reports.png rename to assets/gpack/travian_default/img/new/background_reports.png diff --git a/gpack/travian_default/img/new/background_settings.png b/assets/gpack/travian_default/img/new/background_settings.png similarity index 100% rename from gpack/travian_default/img/new/background_settings.png rename to assets/gpack/travian_default/img/new/background_settings.png diff --git a/gpack/travian_default/img/new/background_statistics.png b/assets/gpack/travian_default/img/new/background_statistics.png similarity index 100% rename from gpack/travian_default/img/new/background_statistics.png rename to assets/gpack/travian_default/img/new/background_statistics.png diff --git a/gpack/travian_default/img/new/background_village_name.png b/assets/gpack/travian_default/img/new/background_village_name.png similarity index 100% rename from gpack/travian_default/img/new/background_village_name.png rename to assets/gpack/travian_default/img/new/background_village_name.png diff --git a/gpack/travian_default/img/new/background_warsim.png b/assets/gpack/travian_default/img/new/background_warsim.png similarity index 100% rename from gpack/travian_default/img/new/background_warsim.png rename to assets/gpack/travian_default/img/new/background_warsim.png diff --git a/gpack/travian_default/img/new/bb_buttons.png b/assets/gpack/travian_default/img/new/bb_buttons.png similarity index 100% rename from gpack/travian_default/img/new/bb_buttons.png rename to assets/gpack/travian_default/img/new/bb_buttons.png diff --git a/gpack/travian_default/img/new/building_border.png b/assets/gpack/travian_default/img/new/building_border.png similarity index 100% rename from gpack/travian_default/img/new/building_border.png rename to assets/gpack/travian_default/img/new/building_border.png diff --git a/gpack/travian_default/img/new/c2.gif b/assets/gpack/travian_default/img/new/c2.gif similarity index 100% rename from gpack/travian_default/img/new/c2.gif rename to assets/gpack/travian_default/img/new/c2.gif diff --git a/gpack/travian_default/img/new/cancel.gif b/assets/gpack/travian_default/img/new/cancel.gif similarity index 100% rename from gpack/travian_default/img/new/cancel.gif rename to assets/gpack/travian_default/img/new/cancel.gif diff --git a/gpack/travian_default/img/new/clay_border.png b/assets/gpack/travian_default/img/new/clay_border.png similarity index 100% rename from gpack/travian_default/img/new/clay_border.png rename to assets/gpack/travian_default/img/new/clay_border.png diff --git a/gpack/travian_default/img/new/clock.gif b/assets/gpack/travian_default/img/new/clock.gif similarity index 100% rename from gpack/travian_default/img/new/clock.gif rename to assets/gpack/travian_default/img/new/clock.gif diff --git a/gpack/travian_default/img/new/closed.png b/assets/gpack/travian_default/img/new/closed.png similarity index 100% rename from gpack/travian_default/img/new/closed.png rename to assets/gpack/travian_default/img/new/closed.png diff --git a/gpack/travian_default/img/new/crop_border.png b/assets/gpack/travian_default/img/new/crop_border.png similarity index 100% rename from gpack/travian_default/img/new/crop_border.png rename to assets/gpack/travian_default/img/new/crop_border.png diff --git a/gpack/travian_default/img/new/def.png b/assets/gpack/travian_default/img/new/def.png similarity index 100% rename from gpack/travian_default/img/new/def.png rename to assets/gpack/travian_default/img/new/def.png diff --git a/gpack/travian_default/img/new/ff.png b/assets/gpack/travian_default/img/new/ff.png similarity index 100% rename from gpack/travian_default/img/new/ff.png rename to assets/gpack/travian_default/img/new/ff.png diff --git a/gpack/travian_default/img/new/footer.png b/assets/gpack/travian_default/img/new/footer.png similarity index 100% rename from gpack/travian_default/img/new/footer.png rename to assets/gpack/travian_default/img/new/footer.png diff --git a/gpack/travian_default/img/new/g22.gif b/assets/gpack/travian_default/img/new/g22.gif similarity index 100% rename from gpack/travian_default/img/new/g22.gif rename to assets/gpack/travian_default/img/new/g22.gif diff --git a/gpack/travian_default/img/new/gaulwall_border.png b/assets/gpack/travian_default/img/new/gaulwall_border.png similarity index 100% rename from gpack/travian_default/img/new/gaulwall_border.png rename to assets/gpack/travian_default/img/new/gaulwall_border.png diff --git a/gpack/travian_default/img/new/glvl.gif b/assets/gpack/travian_default/img/new/glvl.gif similarity index 100% rename from gpack/travian_default/img/new/glvl.gif rename to assets/gpack/travian_default/img/new/glvl.gif diff --git a/gpack/travian_default/img/new/gold.gif b/assets/gpack/travian_default/img/new/gold.gif similarity index 100% rename from gpack/travian_default/img/new/gold.gif rename to assets/gpack/travian_default/img/new/gold.gif diff --git a/gpack/travian_default/img/new/gold_g.gif b/assets/gpack/travian_default/img/new/gold_g.gif similarity index 100% rename from gpack/travian_default/img/new/gold_g.gif rename to assets/gpack/travian_default/img/new/gold_g.gif diff --git a/gpack/travian_default/img/new/gp.png b/assets/gpack/travian_default/img/new/gp.png similarity index 100% rename from gpack/travian_default/img/new/gp.png rename to assets/gpack/travian_default/img/new/gp.png diff --git a/gpack/travian_default/img/new/header-gold-grad.png b/assets/gpack/travian_default/img/new/header-gold-grad.png similarity index 100% rename from gpack/travian_default/img/new/header-gold-grad.png rename to assets/gpack/travian_default/img/new/header-gold-grad.png diff --git a/gpack/travian_default/img/new/header-grad.gif b/assets/gpack/travian_default/img/new/header-grad.gif similarity index 100% rename from gpack/travian_default/img/new/header-grad.gif rename to assets/gpack/travian_default/img/new/header-grad.gif diff --git a/gpack/travian_default/img/new/header-line.png b/assets/gpack/travian_default/img/new/header-line.png similarity index 100% rename from gpack/travian_default/img/new/header-line.png rename to assets/gpack/travian_default/img/new/header-line.png diff --git a/gpack/travian_default/img/new/header.png b/assets/gpack/travian_default/img/new/header.png similarity index 100% rename from gpack/travian_default/img/new/header.png rename to assets/gpack/travian_default/img/new/header.png diff --git a/gpack/travian_default/img/new/ie.png b/assets/gpack/travian_default/img/new/ie.png similarity index 100% rename from gpack/travian_default/img/new/ie.png rename to assets/gpack/travian_default/img/new/ie.png diff --git a/Templates/Map/index.php b/assets/gpack/travian_default/img/new/index.php similarity index 100% rename from Templates/Map/index.php rename to assets/gpack/travian_default/img/new/index.php diff --git a/gpack/travian_default/img/new/iron_border.png b/assets/gpack/travian_default/img/new/iron_border.png similarity index 100% rename from gpack/travian_default/img/new/iron_border.png rename to assets/gpack/travian_default/img/new/iron_border.png diff --git a/gpack/travian_default/img/new/level.png b/assets/gpack/travian_default/img/new/level.png similarity index 100% rename from gpack/travian_default/img/new/level.png rename to assets/gpack/travian_default/img/new/level.png diff --git a/gpack/travian_default/img/new/menu.png b/assets/gpack/travian_default/img/new/menu.png similarity index 100% rename from gpack/travian_default/img/new/menu.png rename to assets/gpack/travian_default/img/new/menu.png diff --git a/gpack/travian_default/img/new/minus.png b/assets/gpack/travian_default/img/new/minus.png similarity index 100% rename from gpack/travian_default/img/new/minus.png rename to assets/gpack/travian_default/img/new/minus.png diff --git a/gpack/travian_default/img/new/navi1.png b/assets/gpack/travian_default/img/new/navi1.png similarity index 100% rename from gpack/travian_default/img/new/navi1.png rename to assets/gpack/travian_default/img/new/navi1.png diff --git a/gpack/travian_default/img/new/navi2.png b/assets/gpack/travian_default/img/new/navi2.png similarity index 100% rename from gpack/travian_default/img/new/navi2.png rename to assets/gpack/travian_default/img/new/navi2.png diff --git a/gpack/travian_default/img/new/navi3.png b/assets/gpack/travian_default/img/new/navi3.png similarity index 100% rename from gpack/travian_default/img/new/navi3.png rename to assets/gpack/travian_default/img/new/navi3.png diff --git a/gpack/travian_default/img/new/navi4.png b/assets/gpack/travian_default/img/new/navi4.png similarity index 100% rename from gpack/travian_default/img/new/navi4.png rename to assets/gpack/travian_default/img/new/navi4.png diff --git a/gpack/travian_default/img/new/navi5.png b/assets/gpack/travian_default/img/new/navi5.png similarity index 100% rename from gpack/travian_default/img/new/navi5.png rename to assets/gpack/travian_default/img/new/navi5.png diff --git a/gpack/travian_default/img/new/npc.png b/assets/gpack/travian_default/img/new/npc.png similarity index 100% rename from gpack/travian_default/img/new/npc.png rename to assets/gpack/travian_default/img/new/npc.png diff --git a/gpack/travian_default/img/new/off.png b/assets/gpack/travian_default/img/new/off.png similarity index 100% rename from gpack/travian_default/img/new/off.png rename to assets/gpack/travian_default/img/new/off.png diff --git a/gpack/travian_default/img/new/opened.png b/assets/gpack/travian_default/img/new/opened.png similarity index 100% rename from gpack/travian_default/img/new/opened.png rename to assets/gpack/travian_default/img/new/opened.png diff --git a/gpack/travian_default/img/new/opera.png b/assets/gpack/travian_default/img/new/opera.png similarity index 100% rename from gpack/travian_default/img/new/opera.png rename to assets/gpack/travian_default/img/new/opera.png diff --git a/gpack/travian_default/img/new/plus.png b/assets/gpack/travian_default/img/new/plus.png similarity index 100% rename from gpack/travian_default/img/new/plus.png rename to assets/gpack/travian_default/img/new/plus.png diff --git a/gpack/travian_default/img/new/rallypoint_border.png b/assets/gpack/travian_default/img/new/rallypoint_border.png similarity index 100% rename from gpack/travian_default/img/new/rallypoint_border.png rename to assets/gpack/travian_default/img/new/rallypoint_border.png diff --git a/gpack/travian_default/img/new/romanwall_border.png b/assets/gpack/travian_default/img/new/romanwall_border.png similarity index 100% rename from gpack/travian_default/img/new/romanwall_border.png rename to assets/gpack/travian_default/img/new/romanwall_border.png diff --git a/gpack/travian_default/img/new/switch_levels.png b/assets/gpack/travian_default/img/new/switch_levels.png similarity index 100% rename from gpack/travian_default/img/new/switch_levels.png rename to assets/gpack/travian_default/img/new/switch_levels.png diff --git a/gpack/travian_default/img/new/teutonwall_border.png b/assets/gpack/travian_default/img/new/teutonwall_border.png similarity index 100% rename from gpack/travian_default/img/new/teutonwall_border.png rename to assets/gpack/travian_default/img/new/teutonwall_border.png diff --git a/gpack/travian_default/img/new/textmenu.gif b/assets/gpack/travian_default/img/new/textmenu.gif similarity index 100% rename from gpack/travian_default/img/new/textmenu.gif rename to assets/gpack/travian_default/img/new/textmenu.gif diff --git a/gpack/travian_default/img/new/tick.png b/assets/gpack/travian_default/img/new/tick.png similarity index 100% rename from gpack/travian_default/img/new/tick.png rename to assets/gpack/travian_default/img/new/tick.png diff --git a/gpack/travian_default/img/new/top10.png b/assets/gpack/travian_default/img/new/top10.png similarity index 100% rename from gpack/travian_default/img/new/top10.png rename to assets/gpack/travian_default/img/new/top10.png diff --git a/gpack/travian_default/img/new/white.gif b/assets/gpack/travian_default/img/new/white.gif similarity index 100% rename from gpack/travian_default/img/new/white.gif rename to assets/gpack/travian_default/img/new/white.gif diff --git a/gpack/travian_default/img/new/wood_border.png b/assets/gpack/travian_default/img/new/wood_border.png similarity index 100% rename from gpack/travian_default/img/new/wood_border.png rename to assets/gpack/travian_default/img/new/wood_border.png diff --git a/gpack/travian_default/img/new/worldcup_background.png b/assets/gpack/travian_default/img/new/worldcup_background.png similarity index 100% rename from gpack/travian_default/img/new/worldcup_background.png rename to assets/gpack/travian_default/img/new/worldcup_background.png diff --git a/gpack/travian_default/img/p/attack_marker.gif b/assets/gpack/travian_default/img/p/attack_marker.gif similarity index 100% rename from gpack/travian_default/img/p/attack_marker.gif rename to assets/gpack/travian_default/img/p/attack_marker.gif diff --git a/gpack/travian_default/img/p/bau0.jpg b/assets/gpack/travian_default/img/p/bau0.jpg similarity index 100% rename from gpack/travian_default/img/p/bau0.jpg rename to assets/gpack/travian_default/img/p/bau0.jpg diff --git a/gpack/travian_default/img/p/def10.jpg b/assets/gpack/travian_default/img/p/def10.jpg similarity index 100% rename from gpack/travian_default/img/p/def10.jpg rename to assets/gpack/travian_default/img/p/def10.jpg diff --git a/Templates/Message/index.php b/assets/gpack/travian_default/img/p/index.php similarity index 100% rename from Templates/Message/index.php rename to assets/gpack/travian_default/img/p/index.php diff --git a/gpack/travian_default/img/p/no_ads.png b/assets/gpack/travian_default/img/p/no_ads.png similarity index 100% rename from gpack/travian_default/img/p/no_ads.png rename to assets/gpack/travian_default/img/p/no_ads.png diff --git a/gpack/travian_default/img/p/npc.jpg b/assets/gpack/travian_default/img/p/npc.jpg similarity index 100% rename from gpack/travian_default/img/p/npc.jpg rename to assets/gpack/travian_default/img/p/npc.jpg diff --git a/gpack/travian_default/img/p/off10.jpg b/assets/gpack/travian_default/img/p/off10.jpg similarity index 100% rename from gpack/travian_default/img/p/off10.jpg rename to assets/gpack/travian_default/img/p/off10.jpg diff --git a/gpack/travian_default/img/p/p1_25.jpg b/assets/gpack/travian_default/img/p/p1_25.jpg similarity index 100% rename from gpack/travian_default/img/p/p1_25.jpg rename to assets/gpack/travian_default/img/p/p1_25.jpg diff --git a/gpack/travian_default/img/p/p2_25.jpg b/assets/gpack/travian_default/img/p/p2_25.jpg similarity index 100% rename from gpack/travian_default/img/p/p2_25.jpg rename to assets/gpack/travian_default/img/p/p2_25.jpg diff --git a/gpack/travian_default/img/p/p3_25.jpg b/assets/gpack/travian_default/img/p/p3_25.jpg similarity index 100% rename from gpack/travian_default/img/p/p3_25.jpg rename to assets/gpack/travian_default/img/p/p3_25.jpg diff --git a/gpack/travian_default/img/p/p4_25.jpg b/assets/gpack/travian_default/img/p/p4_25.jpg similarity index 100% rename from gpack/travian_default/img/p/p4_25.jpg rename to assets/gpack/travian_default/img/p/p4_25.jpg diff --git a/gpack/travian_default/img/q/alliance.jpg b/assets/gpack/travian_default/img/q/alliance.jpg similarity index 100% rename from gpack/travian_default/img/q/alliance.jpg rename to assets/gpack/travian_default/img/q/alliance.jpg diff --git a/gpack/travian_default/img/q/allres.jpg b/assets/gpack/travian_default/img/q/allres.jpg similarity index 100% rename from gpack/travian_default/img/q/allres.jpg rename to assets/gpack/travian_default/img/q/allres.jpg diff --git a/gpack/travian_default/img/q/army.jpg b/assets/gpack/travian_default/img/q/army.jpg similarity index 100% rename from gpack/travian_default/img/q/army.jpg rename to assets/gpack/travian_default/img/q/army.jpg diff --git a/gpack/travian_default/img/q/barracks.jpg b/assets/gpack/travian_default/img/q/barracks.jpg similarity index 100% rename from gpack/travian_default/img/q/barracks.jpg rename to assets/gpack/travian_default/img/q/barracks.jpg diff --git a/gpack/travian_default/img/q/clay_iron.jpg b/assets/gpack/travian_default/img/q/clay_iron.jpg similarity index 100% rename from gpack/travian_default/img/q/clay_iron.jpg rename to assets/gpack/travian_default/img/q/clay_iron.jpg diff --git a/gpack/travian_default/img/q/cost.jpg b/assets/gpack/travian_default/img/q/cost.jpg similarity index 100% rename from gpack/travian_default/img/q/cost.jpg rename to assets/gpack/travian_default/img/q/cost.jpg diff --git a/gpack/travian_default/img/q/embassy.jpg b/assets/gpack/travian_default/img/q/embassy.jpg similarity index 100% rename from gpack/travian_default/img/q/embassy.jpg rename to assets/gpack/travian_default/img/q/embassy.jpg diff --git a/gpack/travian_default/img/q/farm.jpg b/assets/gpack/travian_default/img/q/farm.jpg similarity index 100% rename from gpack/travian_default/img/q/farm.jpg rename to assets/gpack/travian_default/img/q/farm.jpg diff --git a/gpack/travian_default/img/q/gold.jpg b/assets/gpack/travian_default/img/q/gold.jpg similarity index 100% rename from gpack/travian_default/img/q/gold.jpg rename to assets/gpack/travian_default/img/q/gold.jpg diff --git a/gpack/travian_default/img/q/granary.jpg b/assets/gpack/travian_default/img/q/granary.jpg similarity index 100% rename from gpack/travian_default/img/q/granary.jpg rename to assets/gpack/travian_default/img/q/granary.jpg diff --git a/gpack/travian_default/img/q/granary_rally.jpg b/assets/gpack/travian_default/img/q/granary_rally.jpg similarity index 100% rename from gpack/travian_default/img/q/granary_rally.jpg rename to assets/gpack/travian_default/img/q/granary_rally.jpg diff --git a/gpack/travian_default/img/q/hide.jpg b/assets/gpack/travian_default/img/q/hide.jpg similarity index 100% rename from gpack/travian_default/img/q/hide.jpg rename to assets/gpack/travian_default/img/q/hide.jpg diff --git a/Templates/News/home/index.php b/assets/gpack/travian_default/img/q/index.php similarity index 100% rename from Templates/News/home/index.php rename to assets/gpack/travian_default/img/q/index.php diff --git a/gpack/travian_default/img/q/intro.jpg b/assets/gpack/travian_default/img/q/intro.jpg similarity index 100% rename from gpack/travian_default/img/q/intro.jpg rename to assets/gpack/travian_default/img/q/intro.jpg diff --git a/gpack/travian_default/img/q/l0.jpg b/assets/gpack/travian_default/img/q/l0.jpg similarity index 100% rename from gpack/travian_default/img/q/l0.jpg rename to assets/gpack/travian_default/img/q/l0.jpg diff --git a/gpack/travian_default/img/q/l0g.jpg b/assets/gpack/travian_default/img/q/l0g.jpg similarity index 100% rename from gpack/travian_default/img/q/l0g.jpg rename to assets/gpack/travian_default/img/q/l0g.jpg diff --git a/gpack/travian_default/img/q/l1.jpg b/assets/gpack/travian_default/img/q/l1.jpg similarity index 100% rename from gpack/travian_default/img/q/l1.jpg rename to assets/gpack/travian_default/img/q/l1.jpg diff --git a/gpack/travian_default/img/q/l1g.jpg b/assets/gpack/travian_default/img/q/l1g.jpg similarity index 100% rename from gpack/travian_default/img/q/l1g.jpg rename to assets/gpack/travian_default/img/q/l1g.jpg diff --git a/gpack/travian_default/img/q/l2.jpg b/assets/gpack/travian_default/img/q/l2.jpg similarity index 100% rename from gpack/travian_default/img/q/l2.jpg rename to assets/gpack/travian_default/img/q/l2.jpg diff --git a/gpack/travian_default/img/q/l2g.jpg b/assets/gpack/travian_default/img/q/l2g.jpg similarity index 100% rename from gpack/travian_default/img/q/l2g.jpg rename to assets/gpack/travian_default/img/q/l2g.jpg diff --git a/gpack/travian_default/img/q/l3.jpg b/assets/gpack/travian_default/img/q/l3.jpg similarity index 100% rename from gpack/travian_default/img/q/l3.jpg rename to assets/gpack/travian_default/img/q/l3.jpg diff --git a/gpack/travian_default/img/q/l3g.jpg b/assets/gpack/travian_default/img/q/l3g.jpg similarity index 100% rename from gpack/travian_default/img/q/l3g.jpg rename to assets/gpack/travian_default/img/q/l3g.jpg diff --git a/gpack/travian_default/img/q/l4.jpg b/assets/gpack/travian_default/img/q/l4.jpg similarity index 100% rename from gpack/travian_default/img/q/l4.jpg rename to assets/gpack/travian_default/img/q/l4.jpg diff --git a/gpack/travian_default/img/q/l4g.jpg b/assets/gpack/travian_default/img/q/l4g.jpg similarity index 100% rename from gpack/travian_default/img/q/l4g.jpg rename to assets/gpack/travian_default/img/q/l4g.jpg diff --git a/gpack/travian_default/img/q/l5.jpg b/assets/gpack/travian_default/img/q/l5.jpg similarity index 100% rename from gpack/travian_default/img/q/l5.jpg rename to assets/gpack/travian_default/img/q/l5.jpg diff --git a/gpack/travian_default/img/q/l5g.jpg b/assets/gpack/travian_default/img/q/l5g.jpg similarity index 100% rename from gpack/travian_default/img/q/l5g.jpg rename to assets/gpack/travian_default/img/q/l5g.jpg diff --git a/gpack/travian_default/img/q/main.jpg b/assets/gpack/travian_default/img/q/main.jpg similarity index 100% rename from gpack/travian_default/img/q/main.jpg rename to assets/gpack/travian_default/img/q/main.jpg diff --git a/gpack/travian_default/img/q/market.jpg b/assets/gpack/travian_default/img/q/market.jpg similarity index 100% rename from gpack/travian_default/img/q/market.jpg rename to assets/gpack/travian_default/img/q/market.jpg diff --git a/gpack/travian_default/img/q/medal.jpg b/assets/gpack/travian_default/img/q/medal.jpg similarity index 100% rename from gpack/travian_default/img/q/medal.jpg rename to assets/gpack/travian_default/img/q/medal.jpg diff --git a/gpack/travian_default/img/q/msg.jpg b/assets/gpack/travian_default/img/q/msg.jpg similarity index 100% rename from gpack/travian_default/img/q/msg.jpg rename to assets/gpack/travian_default/img/q/msg.jpg diff --git a/gpack/travian_default/img/q/neighbour.jpg b/assets/gpack/travian_default/img/q/neighbour.jpg similarity index 100% rename from gpack/travian_default/img/q/neighbour.jpg rename to assets/gpack/travian_default/img/q/neighbour.jpg diff --git a/gpack/travian_default/img/q/new_village.jpg b/assets/gpack/travian_default/img/q/new_village.jpg similarity index 100% rename from gpack/travian_default/img/q/new_village.jpg rename to assets/gpack/travian_default/img/q/new_village.jpg diff --git a/gpack/travian_default/img/q/rally.jpg b/assets/gpack/travian_default/img/q/rally.jpg similarity index 100% rename from gpack/travian_default/img/q/rally.jpg rename to assets/gpack/travian_default/img/q/rally.jpg diff --git a/gpack/travian_default/img/q/rank.jpg b/assets/gpack/travian_default/img/q/rank.jpg similarity index 100% rename from gpack/travian_default/img/q/rank.jpg rename to assets/gpack/travian_default/img/q/rank.jpg diff --git a/gpack/travian_default/img/q/report.jpg b/assets/gpack/travian_default/img/q/report.jpg similarity index 100% rename from gpack/travian_default/img/q/report.jpg rename to assets/gpack/travian_default/img/q/report.jpg diff --git a/gpack/travian_default/img/q/units.jpg b/assets/gpack/travian_default/img/q/units.jpg similarity index 100% rename from gpack/travian_default/img/q/units.jpg rename to assets/gpack/travian_default/img/q/units.jpg diff --git a/gpack/travian_default/img/q/village_name.jpg b/assets/gpack/travian_default/img/q/village_name.jpg similarity index 100% rename from gpack/travian_default/img/q/village_name.jpg rename to assets/gpack/travian_default/img/q/village_name.jpg diff --git a/gpack/travian_default/img/q/warehouse.jpg b/assets/gpack/travian_default/img/q/warehouse.jpg similarity index 100% rename from gpack/travian_default/img/q/warehouse.jpg rename to assets/gpack/travian_default/img/q/warehouse.jpg diff --git a/gpack/travian_default/img/q/wood.jpg b/assets/gpack/travian_default/img/q/wood.jpg similarity index 100% rename from gpack/travian_default/img/q/wood.jpg rename to assets/gpack/travian_default/img/q/wood.jpg diff --git a/gpack/travian_default/img/r/1.gif b/assets/gpack/travian_default/img/r/1.gif similarity index 100% rename from gpack/travian_default/img/r/1.gif rename to assets/gpack/travian_default/img/r/1.gif diff --git a/gpack/travian_default/img/r/2.gif b/assets/gpack/travian_default/img/r/2.gif similarity index 100% rename from gpack/travian_default/img/r/2.gif rename to assets/gpack/travian_default/img/r/2.gif diff --git a/gpack/travian_default/img/r/3.gif b/assets/gpack/travian_default/img/r/3.gif similarity index 100% rename from gpack/travian_default/img/r/3.gif rename to assets/gpack/travian_default/img/r/3.gif diff --git a/gpack/travian_default/img/r/4.gif b/assets/gpack/travian_default/img/r/4.gif similarity index 100% rename from gpack/travian_default/img/r/4.gif rename to assets/gpack/travian_default/img/r/4.gif diff --git a/gpack/travian_default/img/r/4b.gif b/assets/gpack/travian_default/img/r/4b.gif similarity index 100% rename from gpack/travian_default/img/r/4b.gif rename to assets/gpack/travian_default/img/r/4b.gif diff --git a/gpack/travian_default/img/r/5.gif b/assets/gpack/travian_default/img/r/5.gif similarity index 100% rename from gpack/travian_default/img/r/5.gif rename to assets/gpack/travian_default/img/r/5.gif diff --git a/gpack/travian_default/img/r/5b.gif b/assets/gpack/travian_default/img/r/5b.gif similarity index 100% rename from gpack/travian_default/img/r/5b.gif rename to assets/gpack/travian_default/img/r/5b.gif diff --git a/gpack/travian_default/img/r/6.gif b/assets/gpack/travian_default/img/r/6.gif similarity index 100% rename from gpack/travian_default/img/r/6.gif rename to assets/gpack/travian_default/img/r/6.gif diff --git a/gpack/travian_default/img/r/7.gif b/assets/gpack/travian_default/img/r/7.gif similarity index 100% rename from gpack/travian_default/img/r/7.gif rename to assets/gpack/travian_default/img/r/7.gif diff --git a/gpack/travian_default/img/r/easter.gif b/assets/gpack/travian_default/img/r/easter.gif similarity index 100% rename from gpack/travian_default/img/r/easter.gif rename to assets/gpack/travian_default/img/r/easter.gif diff --git a/Templates/News/index.php b/assets/gpack/travian_default/img/r/index.php similarity index 100% rename from Templates/News/index.php rename to assets/gpack/travian_default/img/r/index.php diff --git a/gpack/travian_default/img/r/newy.gif b/assets/gpack/travian_default/img/r/newy.gif similarity index 100% rename from gpack/travian_default/img/r/newy.gif rename to assets/gpack/travian_default/img/r/newy.gif diff --git a/gpack/travian_default/img/r/peace.gif b/assets/gpack/travian_default/img/r/peace.gif similarity index 100% rename from gpack/travian_default/img/r/peace.gif rename to assets/gpack/travian_default/img/r/peace.gif diff --git a/gpack/travian_default/img/r/xmas.gif b/assets/gpack/travian_default/img/r/xmas.gif similarity index 100% rename from gpack/travian_default/img/r/xmas.gif rename to assets/gpack/travian_default/img/r/xmas.gif diff --git a/gpack/travian_default/img/s/def.gif b/assets/gpack/travian_default/img/s/def.gif similarity index 100% rename from gpack/travian_default/img/s/def.gif rename to assets/gpack/travian_default/img/s/def.gif diff --git a/Templates/Notice/index.php b/assets/gpack/travian_default/img/s/index.php similarity index 100% rename from Templates/Notice/index.php rename to assets/gpack/travian_default/img/s/index.php diff --git a/gpack/travian_default/img/s/off.gif b/assets/gpack/travian_default/img/s/off.gif similarity index 100% rename from gpack/travian_default/img/s/off.gif rename to assets/gpack/travian_default/img/s/off.gif diff --git a/gpack/travian_default/img/s/top10.gif b/assets/gpack/travian_default/img/s/top10.gif similarity index 100% rename from gpack/travian_default/img/s/top10.gif rename to assets/gpack/travian_default/img/s/top10.gif diff --git a/gpack/travian_default/img/s/v1.gif b/assets/gpack/travian_default/img/s/v1.gif similarity index 100% rename from gpack/travian_default/img/s/v1.gif rename to assets/gpack/travian_default/img/s/v1.gif diff --git a/gpack/travian_default/img/s/v2.gif b/assets/gpack/travian_default/img/s/v2.gif similarity index 100% rename from gpack/travian_default/img/s/v2.gif rename to assets/gpack/travian_default/img/s/v2.gif diff --git a/gpack/travian_default/img/s/v3.gif b/assets/gpack/travian_default/img/s/v3.gif similarity index 100% rename from gpack/travian_default/img/s/v3.gif rename to assets/gpack/travian_default/img/s/v3.gif diff --git a/gpack/travian_default/img/scouts/18.gif b/assets/gpack/travian_default/img/scouts/18.gif similarity index 100% rename from gpack/travian_default/img/scouts/18.gif rename to assets/gpack/travian_default/img/scouts/18.gif diff --git a/gpack/travian_default/img/scouts/19.gif b/assets/gpack/travian_default/img/scouts/19.gif similarity index 100% rename from gpack/travian_default/img/scouts/19.gif rename to assets/gpack/travian_default/img/scouts/19.gif diff --git a/gpack/travian_default/img/scouts/20.gif b/assets/gpack/travian_default/img/scouts/20.gif similarity index 100% rename from gpack/travian_default/img/scouts/20.gif rename to assets/gpack/travian_default/img/scouts/20.gif diff --git a/gpack/travian_default/img/scouts/21.gif b/assets/gpack/travian_default/img/scouts/21.gif similarity index 100% rename from gpack/travian_default/img/scouts/21.gif rename to assets/gpack/travian_default/img/scouts/21.gif diff --git a/gpack/travian_default/img/scouts/22.gif b/assets/gpack/travian_default/img/scouts/22.gif similarity index 100% rename from gpack/travian_default/img/scouts/22.gif rename to assets/gpack/travian_default/img/scouts/22.gif diff --git a/Templates/Plus/index.php b/assets/gpack/travian_default/img/scouts/index.php similarity index 100% rename from Templates/Plus/index.php rename to assets/gpack/travian_default/img/scouts/index.php diff --git a/gpack/travian_default/img/special/NewyearRocket_dark_1a.gif b/assets/gpack/travian_default/img/special/NewyearRocket_dark_1a.gif similarity index 100% rename from gpack/travian_default/img/special/NewyearRocket_dark_1a.gif rename to assets/gpack/travian_default/img/special/NewyearRocket_dark_1a.gif diff --git a/gpack/travian_default/img/special/NewyearRocket_green_1a.gif b/assets/gpack/travian_default/img/special/NewyearRocket_green_1a.gif similarity index 100% rename from gpack/travian_default/img/special/NewyearRocket_green_1a.gif rename to assets/gpack/travian_default/img/special/NewyearRocket_green_1a.gif diff --git a/gpack/travian_default/img/special/NewyearRocket_orange_1a.gif b/assets/gpack/travian_default/img/special/NewyearRocket_orange_1a.gif similarity index 100% rename from gpack/travian_default/img/special/NewyearRocket_orange_1a.gif rename to assets/gpack/travian_default/img/special/NewyearRocket_orange_1a.gif diff --git a/gpack/travian_default/img/special/NewyearRocket_purple_1a.gif b/assets/gpack/travian_default/img/special/NewyearRocket_purple_1a.gif similarity index 100% rename from gpack/travian_default/img/special/NewyearRocket_purple_1a.gif rename to assets/gpack/travian_default/img/special/NewyearRocket_purple_1a.gif diff --git a/gpack/travian_default/img/special/NewyearRocket_red_1a.gif b/assets/gpack/travian_default/img/special/NewyearRocket_red_1a.gif similarity index 100% rename from gpack/travian_default/img/special/NewyearRocket_red_1a.gif rename to assets/gpack/travian_default/img/special/NewyearRocket_red_1a.gif diff --git a/gpack/travian_default/img/special/NewyearRocket_turquoise_1a.gif b/assets/gpack/travian_default/img/special/NewyearRocket_turquoise_1a.gif similarity index 100% rename from gpack/travian_default/img/special/NewyearRocket_turquoise_1a.gif rename to assets/gpack/travian_default/img/special/NewyearRocket_turquoise_1a.gif diff --git a/gpack/travian_default/img/special/NewyearRocket_yellow_1a.gif b/assets/gpack/travian_default/img/special/NewyearRocket_yellow_1a.gif similarity index 100% rename from gpack/travian_default/img/special/NewyearRocket_yellow_1a.gif rename to assets/gpack/travian_default/img/special/NewyearRocket_yellow_1a.gif diff --git a/Templates/Profile/index.php b/assets/gpack/travian_default/img/special/index.php similarity index 100% rename from Templates/Profile/index.php rename to assets/gpack/travian_default/img/special/index.php diff --git a/gpack/travian_default/img/t/MH.png b/assets/gpack/travian_default/img/t/MH.png similarity index 100% rename from gpack/travian_default/img/t/MH.png rename to assets/gpack/travian_default/img/t/MH.png diff --git a/gpack/travian_default/img/t/a1_1.jpg b/assets/gpack/travian_default/img/t/a1_1.jpg similarity index 100% rename from gpack/travian_default/img/t/a1_1.jpg rename to assets/gpack/travian_default/img/t/a1_1.jpg diff --git a/gpack/travian_default/img/t/a1_10.jpg b/assets/gpack/travian_default/img/t/a1_10.jpg similarity index 100% rename from gpack/travian_default/img/t/a1_10.jpg rename to assets/gpack/travian_default/img/t/a1_10.jpg diff --git a/gpack/travian_default/img/t/a1_2.jpg b/assets/gpack/travian_default/img/t/a1_2.jpg similarity index 100% rename from gpack/travian_default/img/t/a1_2.jpg rename to assets/gpack/travian_default/img/t/a1_2.jpg diff --git a/gpack/travian_default/img/t/a1_3.jpg b/assets/gpack/travian_default/img/t/a1_3.jpg similarity index 100% rename from gpack/travian_default/img/t/a1_3.jpg rename to assets/gpack/travian_default/img/t/a1_3.jpg diff --git a/gpack/travian_default/img/t/a1_4.jpg b/assets/gpack/travian_default/img/t/a1_4.jpg similarity index 100% rename from gpack/travian_default/img/t/a1_4.jpg rename to assets/gpack/travian_default/img/t/a1_4.jpg diff --git a/gpack/travian_default/img/t/a1_5.jpg b/assets/gpack/travian_default/img/t/a1_5.jpg similarity index 100% rename from gpack/travian_default/img/t/a1_5.jpg rename to assets/gpack/travian_default/img/t/a1_5.jpg diff --git a/gpack/travian_default/img/t/a1_6.jpg b/assets/gpack/travian_default/img/t/a1_6.jpg similarity index 100% rename from gpack/travian_default/img/t/a1_6.jpg rename to assets/gpack/travian_default/img/t/a1_6.jpg diff --git a/gpack/travian_default/img/t/a1_7.jpg b/assets/gpack/travian_default/img/t/a1_7.jpg similarity index 100% rename from gpack/travian_default/img/t/a1_7.jpg rename to assets/gpack/travian_default/img/t/a1_7.jpg diff --git a/gpack/travian_default/img/t/a1_8.jpg b/assets/gpack/travian_default/img/t/a1_8.jpg similarity index 100% rename from gpack/travian_default/img/t/a1_8.jpg rename to assets/gpack/travian_default/img/t/a1_8.jpg diff --git a/gpack/travian_default/img/t/a1_9.jpg b/assets/gpack/travian_default/img/t/a1_9.jpg similarity index 100% rename from gpack/travian_default/img/t/a1_9.jpg rename to assets/gpack/travian_default/img/t/a1_9.jpg diff --git a/gpack/travian_default/img/t/a2_1.jpg b/assets/gpack/travian_default/img/t/a2_1.jpg similarity index 100% rename from gpack/travian_default/img/t/a2_1.jpg rename to assets/gpack/travian_default/img/t/a2_1.jpg diff --git a/gpack/travian_default/img/t/a2_10.jpg b/assets/gpack/travian_default/img/t/a2_10.jpg similarity index 100% rename from gpack/travian_default/img/t/a2_10.jpg rename to assets/gpack/travian_default/img/t/a2_10.jpg diff --git a/gpack/travian_default/img/t/a2_2.jpg b/assets/gpack/travian_default/img/t/a2_2.jpg similarity index 100% rename from gpack/travian_default/img/t/a2_2.jpg rename to assets/gpack/travian_default/img/t/a2_2.jpg diff --git a/gpack/travian_default/img/t/a2_3.jpg b/assets/gpack/travian_default/img/t/a2_3.jpg similarity index 100% rename from gpack/travian_default/img/t/a2_3.jpg rename to assets/gpack/travian_default/img/t/a2_3.jpg diff --git a/gpack/travian_default/img/t/a2_4.jpg b/assets/gpack/travian_default/img/t/a2_4.jpg similarity index 100% rename from gpack/travian_default/img/t/a2_4.jpg rename to assets/gpack/travian_default/img/t/a2_4.jpg diff --git a/gpack/travian_default/img/t/a2_5.jpg b/assets/gpack/travian_default/img/t/a2_5.jpg similarity index 100% rename from gpack/travian_default/img/t/a2_5.jpg rename to assets/gpack/travian_default/img/t/a2_5.jpg diff --git a/gpack/travian_default/img/t/a2_6.jpg b/assets/gpack/travian_default/img/t/a2_6.jpg similarity index 100% rename from gpack/travian_default/img/t/a2_6.jpg rename to assets/gpack/travian_default/img/t/a2_6.jpg diff --git a/gpack/travian_default/img/t/a2_7.jpg b/assets/gpack/travian_default/img/t/a2_7.jpg similarity index 100% rename from gpack/travian_default/img/t/a2_7.jpg rename to assets/gpack/travian_default/img/t/a2_7.jpg diff --git a/gpack/travian_default/img/t/a2_8.jpg b/assets/gpack/travian_default/img/t/a2_8.jpg similarity index 100% rename from gpack/travian_default/img/t/a2_8.jpg rename to assets/gpack/travian_default/img/t/a2_8.jpg diff --git a/gpack/travian_default/img/t/a2_9.jpg b/assets/gpack/travian_default/img/t/a2_9.jpg similarity index 100% rename from gpack/travian_default/img/t/a2_9.jpg rename to assets/gpack/travian_default/img/t/a2_9.jpg diff --git a/gpack/travian_default/img/t/a3_1.jpg b/assets/gpack/travian_default/img/t/a3_1.jpg similarity index 100% rename from gpack/travian_default/img/t/a3_1.jpg rename to assets/gpack/travian_default/img/t/a3_1.jpg diff --git a/gpack/travian_default/img/t/a3_10.jpg b/assets/gpack/travian_default/img/t/a3_10.jpg similarity index 100% rename from gpack/travian_default/img/t/a3_10.jpg rename to assets/gpack/travian_default/img/t/a3_10.jpg diff --git a/gpack/travian_default/img/t/a3_2.jpg b/assets/gpack/travian_default/img/t/a3_2.jpg similarity index 100% rename from gpack/travian_default/img/t/a3_2.jpg rename to assets/gpack/travian_default/img/t/a3_2.jpg diff --git a/gpack/travian_default/img/t/a3_3.jpg b/assets/gpack/travian_default/img/t/a3_3.jpg similarity index 100% rename from gpack/travian_default/img/t/a3_3.jpg rename to assets/gpack/travian_default/img/t/a3_3.jpg diff --git a/gpack/travian_default/img/t/a3_4.jpg b/assets/gpack/travian_default/img/t/a3_4.jpg similarity index 100% rename from gpack/travian_default/img/t/a3_4.jpg rename to assets/gpack/travian_default/img/t/a3_4.jpg diff --git a/gpack/travian_default/img/t/a3_5.jpg b/assets/gpack/travian_default/img/t/a3_5.jpg similarity index 100% rename from gpack/travian_default/img/t/a3_5.jpg rename to assets/gpack/travian_default/img/t/a3_5.jpg diff --git a/gpack/travian_default/img/t/a3_6.jpg b/assets/gpack/travian_default/img/t/a3_6.jpg similarity index 100% rename from gpack/travian_default/img/t/a3_6.jpg rename to assets/gpack/travian_default/img/t/a3_6.jpg diff --git a/gpack/travian_default/img/t/a3_7.jpg b/assets/gpack/travian_default/img/t/a3_7.jpg similarity index 100% rename from gpack/travian_default/img/t/a3_7.jpg rename to assets/gpack/travian_default/img/t/a3_7.jpg diff --git a/gpack/travian_default/img/t/a3_8.jpg b/assets/gpack/travian_default/img/t/a3_8.jpg similarity index 100% rename from gpack/travian_default/img/t/a3_8.jpg rename to assets/gpack/travian_default/img/t/a3_8.jpg diff --git a/gpack/travian_default/img/t/a3_9.jpg b/assets/gpack/travian_default/img/t/a3_9.jpg similarity index 100% rename from gpack/travian_default/img/t/a3_9.jpg rename to assets/gpack/travian_default/img/t/a3_9.jpg diff --git a/gpack/travian_default/img/t/a4_1.jpg b/assets/gpack/travian_default/img/t/a4_1.jpg similarity index 100% rename from gpack/travian_default/img/t/a4_1.jpg rename to assets/gpack/travian_default/img/t/a4_1.jpg diff --git a/gpack/travian_default/img/t/a4_10.jpg b/assets/gpack/travian_default/img/t/a4_10.jpg similarity index 100% rename from gpack/travian_default/img/t/a4_10.jpg rename to assets/gpack/travian_default/img/t/a4_10.jpg diff --git a/gpack/travian_default/img/t/a4_2.jpg b/assets/gpack/travian_default/img/t/a4_2.jpg similarity index 100% rename from gpack/travian_default/img/t/a4_2.jpg rename to assets/gpack/travian_default/img/t/a4_2.jpg diff --git a/gpack/travian_default/img/t/a4_3.jpg b/assets/gpack/travian_default/img/t/a4_3.jpg similarity index 100% rename from gpack/travian_default/img/t/a4_3.jpg rename to assets/gpack/travian_default/img/t/a4_3.jpg diff --git a/gpack/travian_default/img/t/a4_4.jpg b/assets/gpack/travian_default/img/t/a4_4.jpg similarity index 100% rename from gpack/travian_default/img/t/a4_4.jpg rename to assets/gpack/travian_default/img/t/a4_4.jpg diff --git a/gpack/travian_default/img/t/a4_5.jpg b/assets/gpack/travian_default/img/t/a4_5.jpg similarity index 100% rename from gpack/travian_default/img/t/a4_5.jpg rename to assets/gpack/travian_default/img/t/a4_5.jpg diff --git a/gpack/travian_default/img/t/a4_6.jpg b/assets/gpack/travian_default/img/t/a4_6.jpg similarity index 100% rename from gpack/travian_default/img/t/a4_6.jpg rename to assets/gpack/travian_default/img/t/a4_6.jpg diff --git a/gpack/travian_default/img/t/a4_7.jpg b/assets/gpack/travian_default/img/t/a4_7.jpg similarity index 100% rename from gpack/travian_default/img/t/a4_7.jpg rename to assets/gpack/travian_default/img/t/a4_7.jpg diff --git a/gpack/travian_default/img/t/a4_8.jpg b/assets/gpack/travian_default/img/t/a4_8.jpg similarity index 100% rename from gpack/travian_default/img/t/a4_8.jpg rename to assets/gpack/travian_default/img/t/a4_8.jpg diff --git a/gpack/travian_default/img/t/a4_9.jpg b/assets/gpack/travian_default/img/t/a4_9.jpg similarity index 100% rename from gpack/travian_default/img/t/a4_9.jpg rename to assets/gpack/travian_default/img/t/a4_9.jpg diff --git a/gpack/travian_default/img/t/builderWW.png b/assets/gpack/travian_default/img/t/builderWW.png similarity index 100% rename from gpack/travian_default/img/t/builderWW.png rename to assets/gpack/travian_default/img/t/builderWW.png diff --git a/gpack/travian_default/img/t/g40_11-ltr.png b/assets/gpack/travian_default/img/t/g40_11-ltr.png similarity index 100% rename from gpack/travian_default/img/t/g40_11-ltr.png rename to assets/gpack/travian_default/img/t/g40_11-ltr.png diff --git a/gpack/travian_default/img/t/gauls.gif b/assets/gpack/travian_default/img/t/gauls.gif similarity index 100% rename from gpack/travian_default/img/t/gauls.gif rename to assets/gpack/travian_default/img/t/gauls.gif diff --git a/Templates/Ranking/index.php b/assets/gpack/travian_default/img/t/index.php similarity index 100% rename from Templates/Ranking/index.php rename to assets/gpack/travian_default/img/t/index.php diff --git a/gpack/travian_default/img/t/nature.png b/assets/gpack/travian_default/img/t/nature.png similarity index 100% rename from gpack/travian_default/img/t/nature.png rename to assets/gpack/travian_default/img/t/nature.png diff --git a/gpack/travian_default/img/t/roman.gif b/assets/gpack/travian_default/img/t/roman.gif similarity index 100% rename from gpack/travian_default/img/t/roman.gif rename to assets/gpack/travian_default/img/t/roman.gif diff --git a/gpack/travian_default/img/t/shadow.png b/assets/gpack/travian_default/img/t/shadow.png similarity index 100% rename from gpack/travian_default/img/t/shadow.png rename to assets/gpack/travian_default/img/t/shadow.png diff --git a/gpack/travian_default/img/t/t100_1.jpg b/assets/gpack/travian_default/img/t/t100_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t100_1.jpg rename to assets/gpack/travian_default/img/t/t100_1.jpg diff --git a/gpack/travian_default/img/t/t101_1.jpg b/assets/gpack/travian_default/img/t/t101_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t101_1.jpg rename to assets/gpack/travian_default/img/t/t101_1.jpg diff --git a/gpack/travian_default/img/t/t102_1.jpg b/assets/gpack/travian_default/img/t/t102_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t102_1.jpg rename to assets/gpack/travian_default/img/t/t102_1.jpg diff --git a/gpack/travian_default/img/t/t10_1.jpg b/assets/gpack/travian_default/img/t/t10_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t10_1.jpg rename to assets/gpack/travian_default/img/t/t10_1.jpg diff --git a/gpack/travian_default/img/t/t10_2.jpg b/assets/gpack/travian_default/img/t/t10_2.jpg similarity index 100% rename from gpack/travian_default/img/t/t10_2.jpg rename to assets/gpack/travian_default/img/t/t10_2.jpg diff --git a/gpack/travian_default/img/t/t110_1.jpg b/assets/gpack/travian_default/img/t/t110_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t110_1.jpg rename to assets/gpack/travian_default/img/t/t110_1.jpg diff --git a/gpack/travian_default/img/t/t111_1.jpg b/assets/gpack/travian_default/img/t/t111_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t111_1.jpg rename to assets/gpack/travian_default/img/t/t111_1.jpg diff --git a/gpack/travian_default/img/t/t112_1.jpg b/assets/gpack/travian_default/img/t/t112_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t112_1.jpg rename to assets/gpack/travian_default/img/t/t112_1.jpg diff --git a/gpack/travian_default/img/t/t120_1.jpg b/assets/gpack/travian_default/img/t/t120_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t120_1.jpg rename to assets/gpack/travian_default/img/t/t120_1.jpg diff --git a/gpack/travian_default/img/t/t121_1.jpg b/assets/gpack/travian_default/img/t/t121_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t121_1.jpg rename to assets/gpack/travian_default/img/t/t121_1.jpg diff --git a/gpack/travian_default/img/t/t122_1.jpg b/assets/gpack/travian_default/img/t/t122_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t122_1.jpg rename to assets/gpack/travian_default/img/t/t122_1.jpg diff --git a/gpack/travian_default/img/t/t130_1.jpg b/assets/gpack/travian_default/img/t/t130_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t130_1.jpg rename to assets/gpack/travian_default/img/t/t130_1.jpg diff --git a/gpack/travian_default/img/t/t131_1.jpg b/assets/gpack/travian_default/img/t/t131_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t131_1.jpg rename to assets/gpack/travian_default/img/t/t131_1.jpg diff --git a/gpack/travian_default/img/t/t132_1.jpg b/assets/gpack/travian_default/img/t/t132_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t132_1.jpg rename to assets/gpack/travian_default/img/t/t132_1.jpg diff --git a/gpack/travian_default/img/t/t140_1.jpg b/assets/gpack/travian_default/img/t/t140_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t140_1.jpg rename to assets/gpack/travian_default/img/t/t140_1.jpg diff --git a/gpack/travian_default/img/t/t141_1.jpg b/assets/gpack/travian_default/img/t/t141_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t141_1.jpg rename to assets/gpack/travian_default/img/t/t141_1.jpg diff --git a/gpack/travian_default/img/t/t142_1.jpg b/assets/gpack/travian_default/img/t/t142_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t142_1.jpg rename to assets/gpack/travian_default/img/t/t142_1.jpg diff --git a/gpack/travian_default/img/t/t150_1.jpg b/assets/gpack/travian_default/img/t/t150_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t150_1.jpg rename to assets/gpack/travian_default/img/t/t150_1.jpg diff --git a/gpack/travian_default/img/t/t151_1.jpg b/assets/gpack/travian_default/img/t/t151_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t151_1.jpg rename to assets/gpack/travian_default/img/t/t151_1.jpg diff --git a/gpack/travian_default/img/t/t152_1.jpg b/assets/gpack/travian_default/img/t/t152_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t152_1.jpg rename to assets/gpack/travian_default/img/t/t152_1.jpg diff --git a/gpack/travian_default/img/t/t160_1.jpg b/assets/gpack/travian_default/img/t/t160_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t160_1.jpg rename to assets/gpack/travian_default/img/t/t160_1.jpg diff --git a/gpack/travian_default/img/t/t161_1.jpg b/assets/gpack/travian_default/img/t/t161_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t161_1.jpg rename to assets/gpack/travian_default/img/t/t161_1.jpg diff --git a/gpack/travian_default/img/t/t162_1.jpg b/assets/gpack/travian_default/img/t/t162_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t162_1.jpg rename to assets/gpack/travian_default/img/t/t162_1.jpg diff --git a/gpack/travian_default/img/t/t170_1.jpg b/assets/gpack/travian_default/img/t/t170_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t170_1.jpg rename to assets/gpack/travian_default/img/t/t170_1.jpg diff --git a/gpack/travian_default/img/t/t171_1.jpg b/assets/gpack/travian_default/img/t/t171_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t171_1.jpg rename to assets/gpack/travian_default/img/t/t171_1.jpg diff --git a/gpack/travian_default/img/t/t172_1.jpg b/assets/gpack/travian_default/img/t/t172_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t172_1.jpg rename to assets/gpack/travian_default/img/t/t172_1.jpg diff --git a/gpack/travian_default/img/t/t180_1.jpg b/assets/gpack/travian_default/img/t/t180_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t180_1.jpg rename to assets/gpack/travian_default/img/t/t180_1.jpg diff --git a/gpack/travian_default/img/t/t181_1.jpg b/assets/gpack/travian_default/img/t/t181_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t181_1.jpg rename to assets/gpack/travian_default/img/t/t181_1.jpg diff --git a/gpack/travian_default/img/t/t182_1.jpg b/assets/gpack/travian_default/img/t/t182_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t182_1.jpg rename to assets/gpack/travian_default/img/t/t182_1.jpg diff --git a/gpack/travian_default/img/t/t190_1.jpg b/assets/gpack/travian_default/img/t/t190_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t190_1.jpg rename to assets/gpack/travian_default/img/t/t190_1.jpg diff --git a/gpack/travian_default/img/t/t191_1.jpg b/assets/gpack/travian_default/img/t/t191_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t191_1.jpg rename to assets/gpack/travian_default/img/t/t191_1.jpg diff --git a/gpack/travian_default/img/t/t192_1.jpg b/assets/gpack/travian_default/img/t/t192_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t192_1.jpg rename to assets/gpack/travian_default/img/t/t192_1.jpg diff --git a/gpack/travian_default/img/t/t1_1.jpg b/assets/gpack/travian_default/img/t/t1_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t1_1.jpg rename to assets/gpack/travian_default/img/t/t1_1.jpg diff --git a/gpack/travian_default/img/t/t1_10.jpg b/assets/gpack/travian_default/img/t/t1_10.jpg similarity index 100% rename from gpack/travian_default/img/t/t1_10.jpg rename to assets/gpack/travian_default/img/t/t1_10.jpg diff --git a/gpack/travian_default/img/t/t1_2.jpg b/assets/gpack/travian_default/img/t/t1_2.jpg similarity index 100% rename from gpack/travian_default/img/t/t1_2.jpg rename to assets/gpack/travian_default/img/t/t1_2.jpg diff --git a/gpack/travian_default/img/t/t1_3.jpg b/assets/gpack/travian_default/img/t/t1_3.jpg similarity index 100% rename from gpack/travian_default/img/t/t1_3.jpg rename to assets/gpack/travian_default/img/t/t1_3.jpg diff --git a/gpack/travian_default/img/t/t1_4.jpg b/assets/gpack/travian_default/img/t/t1_4.jpg similarity index 100% rename from gpack/travian_default/img/t/t1_4.jpg rename to assets/gpack/travian_default/img/t/t1_4.jpg diff --git a/gpack/travian_default/img/t/t1_5.jpg b/assets/gpack/travian_default/img/t/t1_5.jpg similarity index 100% rename from gpack/travian_default/img/t/t1_5.jpg rename to assets/gpack/travian_default/img/t/t1_5.jpg diff --git a/gpack/travian_default/img/t/t1_6.jpg b/assets/gpack/travian_default/img/t/t1_6.jpg similarity index 100% rename from gpack/travian_default/img/t/t1_6.jpg rename to assets/gpack/travian_default/img/t/t1_6.jpg diff --git a/gpack/travian_default/img/t/t1_7.jpg b/assets/gpack/travian_default/img/t/t1_7.jpg similarity index 100% rename from gpack/travian_default/img/t/t1_7.jpg rename to assets/gpack/travian_default/img/t/t1_7.jpg diff --git a/gpack/travian_default/img/t/t1_8.jpg b/assets/gpack/travian_default/img/t/t1_8.jpg similarity index 100% rename from gpack/travian_default/img/t/t1_8.jpg rename to assets/gpack/travian_default/img/t/t1_8.jpg diff --git a/gpack/travian_default/img/t/t1_9.jpg b/assets/gpack/travian_default/img/t/t1_9.jpg similarity index 100% rename from gpack/travian_default/img/t/t1_9.jpg rename to assets/gpack/travian_default/img/t/t1_9.jpg diff --git a/gpack/travian_default/img/t/t200_1.jpg b/assets/gpack/travian_default/img/t/t200_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t200_1.jpg rename to assets/gpack/travian_default/img/t/t200_1.jpg diff --git a/gpack/travian_default/img/t/t201_1.jpg b/assets/gpack/travian_default/img/t/t201_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t201_1.jpg rename to assets/gpack/travian_default/img/t/t201_1.jpg diff --git a/gpack/travian_default/img/t/t202_1.jpg b/assets/gpack/travian_default/img/t/t202_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t202_1.jpg rename to assets/gpack/travian_default/img/t/t202_1.jpg diff --git a/gpack/travian_default/img/t/t210_1.jpg b/assets/gpack/travian_default/img/t/t210_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t210_1.jpg rename to assets/gpack/travian_default/img/t/t210_1.jpg diff --git a/gpack/travian_default/img/t/t211_1.jpg b/assets/gpack/travian_default/img/t/t211_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t211_1.jpg rename to assets/gpack/travian_default/img/t/t211_1.jpg diff --git a/gpack/travian_default/img/t/t212_1.jpg b/assets/gpack/travian_default/img/t/t212_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t212_1.jpg rename to assets/gpack/travian_default/img/t/t212_1.jpg diff --git a/gpack/travian_default/img/t/t220_1.jpg b/assets/gpack/travian_default/img/t/t220_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t220_1.jpg rename to assets/gpack/travian_default/img/t/t220_1.jpg diff --git a/gpack/travian_default/img/t/t221_1.jpg b/assets/gpack/travian_default/img/t/t221_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t221_1.jpg rename to assets/gpack/travian_default/img/t/t221_1.jpg diff --git a/gpack/travian_default/img/t/t222_1.jpg b/assets/gpack/travian_default/img/t/t222_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t222_1.jpg rename to assets/gpack/travian_default/img/t/t222_1.jpg diff --git a/gpack/travian_default/img/t/t2_1.jpg b/assets/gpack/travian_default/img/t/t2_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t2_1.jpg rename to assets/gpack/travian_default/img/t/t2_1.jpg diff --git a/gpack/travian_default/img/t/t2_10.jpg b/assets/gpack/travian_default/img/t/t2_10.jpg similarity index 100% rename from gpack/travian_default/img/t/t2_10.jpg rename to assets/gpack/travian_default/img/t/t2_10.jpg diff --git a/gpack/travian_default/img/t/t2_2.jpg b/assets/gpack/travian_default/img/t/t2_2.jpg similarity index 100% rename from gpack/travian_default/img/t/t2_2.jpg rename to assets/gpack/travian_default/img/t/t2_2.jpg diff --git a/gpack/travian_default/img/t/t2_3.jpg b/assets/gpack/travian_default/img/t/t2_3.jpg similarity index 100% rename from gpack/travian_default/img/t/t2_3.jpg rename to assets/gpack/travian_default/img/t/t2_3.jpg diff --git a/gpack/travian_default/img/t/t2_4.jpg b/assets/gpack/travian_default/img/t/t2_4.jpg similarity index 100% rename from gpack/travian_default/img/t/t2_4.jpg rename to assets/gpack/travian_default/img/t/t2_4.jpg diff --git a/gpack/travian_default/img/t/t2_5.jpg b/assets/gpack/travian_default/img/t/t2_5.jpg similarity index 100% rename from gpack/travian_default/img/t/t2_5.jpg rename to assets/gpack/travian_default/img/t/t2_5.jpg diff --git a/gpack/travian_default/img/t/t2_6.jpg b/assets/gpack/travian_default/img/t/t2_6.jpg similarity index 100% rename from gpack/travian_default/img/t/t2_6.jpg rename to assets/gpack/travian_default/img/t/t2_6.jpg diff --git a/gpack/travian_default/img/t/t2_7.jpg b/assets/gpack/travian_default/img/t/t2_7.jpg similarity index 100% rename from gpack/travian_default/img/t/t2_7.jpg rename to assets/gpack/travian_default/img/t/t2_7.jpg diff --git a/gpack/travian_default/img/t/t2_8.jpg b/assets/gpack/travian_default/img/t/t2_8.jpg similarity index 100% rename from gpack/travian_default/img/t/t2_8.jpg rename to assets/gpack/travian_default/img/t/t2_8.jpg diff --git a/gpack/travian_default/img/t/t2_9.jpg b/assets/gpack/travian_default/img/t/t2_9.jpg similarity index 100% rename from gpack/travian_default/img/t/t2_9.jpg rename to assets/gpack/travian_default/img/t/t2_9.jpg diff --git a/gpack/travian_default/img/t/t3_1.jpg b/assets/gpack/travian_default/img/t/t3_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t3_1.jpg rename to assets/gpack/travian_default/img/t/t3_1.jpg diff --git a/gpack/travian_default/img/t/t3_10.jpg b/assets/gpack/travian_default/img/t/t3_10.jpg similarity index 100% rename from gpack/travian_default/img/t/t3_10.jpg rename to assets/gpack/travian_default/img/t/t3_10.jpg diff --git a/gpack/travian_default/img/t/t3_2.jpg b/assets/gpack/travian_default/img/t/t3_2.jpg similarity index 100% rename from gpack/travian_default/img/t/t3_2.jpg rename to assets/gpack/travian_default/img/t/t3_2.jpg diff --git a/gpack/travian_default/img/t/t3_3.jpg b/assets/gpack/travian_default/img/t/t3_3.jpg similarity index 100% rename from gpack/travian_default/img/t/t3_3.jpg rename to assets/gpack/travian_default/img/t/t3_3.jpg diff --git a/gpack/travian_default/img/t/t3_4.jpg b/assets/gpack/travian_default/img/t/t3_4.jpg similarity index 100% rename from gpack/travian_default/img/t/t3_4.jpg rename to assets/gpack/travian_default/img/t/t3_4.jpg diff --git a/gpack/travian_default/img/t/t3_5.jpg b/assets/gpack/travian_default/img/t/t3_5.jpg similarity index 100% rename from gpack/travian_default/img/t/t3_5.jpg rename to assets/gpack/travian_default/img/t/t3_5.jpg diff --git a/gpack/travian_default/img/t/t3_6.jpg b/assets/gpack/travian_default/img/t/t3_6.jpg similarity index 100% rename from gpack/travian_default/img/t/t3_6.jpg rename to assets/gpack/travian_default/img/t/t3_6.jpg diff --git a/gpack/travian_default/img/t/t3_7.jpg b/assets/gpack/travian_default/img/t/t3_7.jpg similarity index 100% rename from gpack/travian_default/img/t/t3_7.jpg rename to assets/gpack/travian_default/img/t/t3_7.jpg diff --git a/gpack/travian_default/img/t/t3_8.jpg b/assets/gpack/travian_default/img/t/t3_8.jpg similarity index 100% rename from gpack/travian_default/img/t/t3_8.jpg rename to assets/gpack/travian_default/img/t/t3_8.jpg diff --git a/gpack/travian_default/img/t/t3_9.jpg b/assets/gpack/travian_default/img/t/t3_9.jpg similarity index 100% rename from gpack/travian_default/img/t/t3_9.jpg rename to assets/gpack/travian_default/img/t/t3_9.jpg diff --git a/gpack/travian_default/img/t/t4_1.jpg b/assets/gpack/travian_default/img/t/t4_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t4_1.jpg rename to assets/gpack/travian_default/img/t/t4_1.jpg diff --git a/gpack/travian_default/img/t/t4_10.jpg b/assets/gpack/travian_default/img/t/t4_10.jpg similarity index 100% rename from gpack/travian_default/img/t/t4_10.jpg rename to assets/gpack/travian_default/img/t/t4_10.jpg diff --git a/gpack/travian_default/img/t/t4_2.jpg b/assets/gpack/travian_default/img/t/t4_2.jpg similarity index 100% rename from gpack/travian_default/img/t/t4_2.jpg rename to assets/gpack/travian_default/img/t/t4_2.jpg diff --git a/gpack/travian_default/img/t/t4_3.jpg b/assets/gpack/travian_default/img/t/t4_3.jpg similarity index 100% rename from gpack/travian_default/img/t/t4_3.jpg rename to assets/gpack/travian_default/img/t/t4_3.jpg diff --git a/gpack/travian_default/img/t/t4_4.jpg b/assets/gpack/travian_default/img/t/t4_4.jpg similarity index 100% rename from gpack/travian_default/img/t/t4_4.jpg rename to assets/gpack/travian_default/img/t/t4_4.jpg diff --git a/gpack/travian_default/img/t/t4_5.jpg b/assets/gpack/travian_default/img/t/t4_5.jpg similarity index 100% rename from gpack/travian_default/img/t/t4_5.jpg rename to assets/gpack/travian_default/img/t/t4_5.jpg diff --git a/gpack/travian_default/img/t/t4_6.jpg b/assets/gpack/travian_default/img/t/t4_6.jpg similarity index 100% rename from gpack/travian_default/img/t/t4_6.jpg rename to assets/gpack/travian_default/img/t/t4_6.jpg diff --git a/gpack/travian_default/img/t/t4_7.jpg b/assets/gpack/travian_default/img/t/t4_7.jpg similarity index 100% rename from gpack/travian_default/img/t/t4_7.jpg rename to assets/gpack/travian_default/img/t/t4_7.jpg diff --git a/gpack/travian_default/img/t/t4_8.jpg b/assets/gpack/travian_default/img/t/t4_8.jpg similarity index 100% rename from gpack/travian_default/img/t/t4_8.jpg rename to assets/gpack/travian_default/img/t/t4_8.jpg diff --git a/gpack/travian_default/img/t/t4_9.jpg b/assets/gpack/travian_default/img/t/t4_9.jpg similarity index 100% rename from gpack/travian_default/img/t/t4_9.jpg rename to assets/gpack/travian_default/img/t/t4_9.jpg diff --git a/gpack/travian_default/img/t/t5_1.jpg b/assets/gpack/travian_default/img/t/t5_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t5_1.jpg rename to assets/gpack/travian_default/img/t/t5_1.jpg diff --git a/gpack/travian_default/img/t/t5_10.jpg b/assets/gpack/travian_default/img/t/t5_10.jpg similarity index 100% rename from gpack/travian_default/img/t/t5_10.jpg rename to assets/gpack/travian_default/img/t/t5_10.jpg diff --git a/gpack/travian_default/img/t/t5_2.jpg b/assets/gpack/travian_default/img/t/t5_2.jpg similarity index 100% rename from gpack/travian_default/img/t/t5_2.jpg rename to assets/gpack/travian_default/img/t/t5_2.jpg diff --git a/gpack/travian_default/img/t/t5_3.jpg b/assets/gpack/travian_default/img/t/t5_3.jpg similarity index 100% rename from gpack/travian_default/img/t/t5_3.jpg rename to assets/gpack/travian_default/img/t/t5_3.jpg diff --git a/gpack/travian_default/img/t/t5_4.jpg b/assets/gpack/travian_default/img/t/t5_4.jpg similarity index 100% rename from gpack/travian_default/img/t/t5_4.jpg rename to assets/gpack/travian_default/img/t/t5_4.jpg diff --git a/gpack/travian_default/img/t/t5_5.jpg b/assets/gpack/travian_default/img/t/t5_5.jpg similarity index 100% rename from gpack/travian_default/img/t/t5_5.jpg rename to assets/gpack/travian_default/img/t/t5_5.jpg diff --git a/gpack/travian_default/img/t/t5_6.jpg b/assets/gpack/travian_default/img/t/t5_6.jpg similarity index 100% rename from gpack/travian_default/img/t/t5_6.jpg rename to assets/gpack/travian_default/img/t/t5_6.jpg diff --git a/gpack/travian_default/img/t/t5_7.jpg b/assets/gpack/travian_default/img/t/t5_7.jpg similarity index 100% rename from gpack/travian_default/img/t/t5_7.jpg rename to assets/gpack/travian_default/img/t/t5_7.jpg diff --git a/gpack/travian_default/img/t/t5_8.jpg b/assets/gpack/travian_default/img/t/t5_8.jpg similarity index 100% rename from gpack/travian_default/img/t/t5_8.jpg rename to assets/gpack/travian_default/img/t/t5_8.jpg diff --git a/gpack/travian_default/img/t/t5_9.jpg b/assets/gpack/travian_default/img/t/t5_9.jpg similarity index 100% rename from gpack/travian_default/img/t/t5_9.jpg rename to assets/gpack/travian_default/img/t/t5_9.jpg diff --git a/gpack/travian_default/img/t/t6_1.jpg b/assets/gpack/travian_default/img/t/t6_1.jpg similarity index 100% rename from gpack/travian_default/img/t/t6_1.jpg rename to assets/gpack/travian_default/img/t/t6_1.jpg diff --git a/gpack/travian_default/img/t/t6_1.png b/assets/gpack/travian_default/img/t/t6_1.png similarity index 100% rename from gpack/travian_default/img/t/t6_1.png rename to assets/gpack/travian_default/img/t/t6_1.png diff --git a/gpack/travian_default/img/t/t6_10.jpg b/assets/gpack/travian_default/img/t/t6_10.jpg similarity index 100% rename from gpack/travian_default/img/t/t6_10.jpg rename to assets/gpack/travian_default/img/t/t6_10.jpg diff --git a/gpack/travian_default/img/t/t6_2.jpg b/assets/gpack/travian_default/img/t/t6_2.jpg similarity index 100% rename from gpack/travian_default/img/t/t6_2.jpg rename to assets/gpack/travian_default/img/t/t6_2.jpg diff --git a/gpack/travian_default/img/t/t6_3.jpg b/assets/gpack/travian_default/img/t/t6_3.jpg similarity index 100% rename from gpack/travian_default/img/t/t6_3.jpg rename to assets/gpack/travian_default/img/t/t6_3.jpg diff --git a/gpack/travian_default/img/t/t6_4.jpg b/assets/gpack/travian_default/img/t/t6_4.jpg similarity index 100% rename from gpack/travian_default/img/t/t6_4.jpg rename to assets/gpack/travian_default/img/t/t6_4.jpg diff --git a/gpack/travian_default/img/t/t6_5.jpg b/assets/gpack/travian_default/img/t/t6_5.jpg similarity index 100% rename from gpack/travian_default/img/t/t6_5.jpg rename to assets/gpack/travian_default/img/t/t6_5.jpg diff --git a/gpack/travian_default/img/t/t6_6.jpg b/assets/gpack/travian_default/img/t/t6_6.jpg similarity index 100% rename from gpack/travian_default/img/t/t6_6.jpg rename to assets/gpack/travian_default/img/t/t6_6.jpg diff --git a/gpack/travian_default/img/t/t6_7.jpg b/assets/gpack/travian_default/img/t/t6_7.jpg similarity index 100% rename from gpack/travian_default/img/t/t6_7.jpg rename to assets/gpack/travian_default/img/t/t6_7.jpg diff --git a/gpack/travian_default/img/t/t6_8.jpg b/assets/gpack/travian_default/img/t/t6_8.jpg similarity index 100% rename from gpack/travian_default/img/t/t6_8.jpg rename to assets/gpack/travian_default/img/t/t6_8.jpg diff --git a/gpack/travian_default/img/t/t6_9.jpg b/assets/gpack/travian_default/img/t/t6_9.jpg similarity index 100% rename from gpack/travian_default/img/t/t6_9.jpg rename to assets/gpack/travian_default/img/t/t6_9.jpg diff --git a/gpack/travian_default/img/t/taskmaster.png b/assets/gpack/travian_default/img/t/taskmaster.png similarity index 100% rename from gpack/travian_default/img/t/taskmaster.png rename to assets/gpack/travian_default/img/t/taskmaster.png diff --git a/gpack/travian_default/img/t/team.png b/assets/gpack/travian_default/img/t/team.png similarity index 100% rename from gpack/travian_default/img/t/team.png rename to assets/gpack/travian_default/img/t/team.png diff --git a/gpack/travian_default/img/t/teutons.gif b/assets/gpack/travian_default/img/t/teutons.gif similarity index 100% rename from gpack/travian_default/img/t/teutons.gif rename to assets/gpack/travian_default/img/t/teutons.gif diff --git a/gpack/travian_default/img/t/tn.gif b/assets/gpack/travian_default/img/t/tn.gif similarity index 100% rename from gpack/travian_default/img/t/tn.gif rename to assets/gpack/travian_default/img/t/tn.gif diff --git a/gpack/travian_default/img/t/tnd.gif b/assets/gpack/travian_default/img/t/tnd.gif similarity index 100% rename from gpack/travian_default/img/t/tnd.gif rename to assets/gpack/travian_default/img/t/tnd.gif diff --git a/gpack/travian_default/img/t/winnerww.png b/assets/gpack/travian_default/img/t/winnerww.png similarity index 100% rename from gpack/travian_default/img/t/winnerww.png rename to assets/gpack/travian_default/img/t/winnerww.png diff --git a/gpack/travian_default/img/u/1.gif b/assets/gpack/travian_default/img/u/1.gif similarity index 100% rename from gpack/travian_default/img/u/1.gif rename to assets/gpack/travian_default/img/u/1.gif diff --git a/gpack/travian_default/img/u/10.gif b/assets/gpack/travian_default/img/u/10.gif similarity index 100% rename from gpack/travian_default/img/u/10.gif rename to assets/gpack/travian_default/img/u/10.gif diff --git a/gpack/travian_default/img/u/11.gif b/assets/gpack/travian_default/img/u/11.gif similarity index 100% rename from gpack/travian_default/img/u/11.gif rename to assets/gpack/travian_default/img/u/11.gif diff --git a/gpack/travian_default/img/u/12.gif b/assets/gpack/travian_default/img/u/12.gif similarity index 100% rename from gpack/travian_default/img/u/12.gif rename to assets/gpack/travian_default/img/u/12.gif diff --git a/gpack/travian_default/img/u/13.gif b/assets/gpack/travian_default/img/u/13.gif similarity index 100% rename from gpack/travian_default/img/u/13.gif rename to assets/gpack/travian_default/img/u/13.gif diff --git a/gpack/travian_default/img/u/14.gif b/assets/gpack/travian_default/img/u/14.gif similarity index 100% rename from gpack/travian_default/img/u/14.gif rename to assets/gpack/travian_default/img/u/14.gif diff --git a/gpack/travian_default/img/u/15.gif b/assets/gpack/travian_default/img/u/15.gif similarity index 100% rename from gpack/travian_default/img/u/15.gif rename to assets/gpack/travian_default/img/u/15.gif diff --git a/gpack/travian_default/img/u/16.gif b/assets/gpack/travian_default/img/u/16.gif similarity index 100% rename from gpack/travian_default/img/u/16.gif rename to assets/gpack/travian_default/img/u/16.gif diff --git a/gpack/travian_default/img/u/17.gif b/assets/gpack/travian_default/img/u/17.gif similarity index 100% rename from gpack/travian_default/img/u/17.gif rename to assets/gpack/travian_default/img/u/17.gif diff --git a/gpack/travian_default/img/u/18.gif b/assets/gpack/travian_default/img/u/18.gif similarity index 100% rename from gpack/travian_default/img/u/18.gif rename to assets/gpack/travian_default/img/u/18.gif diff --git a/gpack/travian_default/img/u/19.gif b/assets/gpack/travian_default/img/u/19.gif similarity index 100% rename from gpack/travian_default/img/u/19.gif rename to assets/gpack/travian_default/img/u/19.gif diff --git a/gpack/travian_default/img/u/2.gif b/assets/gpack/travian_default/img/u/2.gif similarity index 100% rename from gpack/travian_default/img/u/2.gif rename to assets/gpack/travian_default/img/u/2.gif diff --git a/gpack/travian_default/img/u/20.gif b/assets/gpack/travian_default/img/u/20.gif similarity index 100% rename from gpack/travian_default/img/u/20.gif rename to assets/gpack/travian_default/img/u/20.gif diff --git a/gpack/travian_default/img/u/21.gif b/assets/gpack/travian_default/img/u/21.gif similarity index 100% rename from gpack/travian_default/img/u/21.gif rename to assets/gpack/travian_default/img/u/21.gif diff --git a/gpack/travian_default/img/u/22.gif b/assets/gpack/travian_default/img/u/22.gif similarity index 100% rename from gpack/travian_default/img/u/22.gif rename to assets/gpack/travian_default/img/u/22.gif diff --git a/gpack/travian_default/img/u/23.gif b/assets/gpack/travian_default/img/u/23.gif similarity index 100% rename from gpack/travian_default/img/u/23.gif rename to assets/gpack/travian_default/img/u/23.gif diff --git a/gpack/travian_default/img/u/24.gif b/assets/gpack/travian_default/img/u/24.gif similarity index 100% rename from gpack/travian_default/img/u/24.gif rename to assets/gpack/travian_default/img/u/24.gif diff --git a/gpack/travian_default/img/u/25.gif b/assets/gpack/travian_default/img/u/25.gif similarity index 100% rename from gpack/travian_default/img/u/25.gif rename to assets/gpack/travian_default/img/u/25.gif diff --git a/gpack/travian_default/img/u/26.gif b/assets/gpack/travian_default/img/u/26.gif similarity index 100% rename from gpack/travian_default/img/u/26.gif rename to assets/gpack/travian_default/img/u/26.gif diff --git a/gpack/travian_default/img/u/27.gif b/assets/gpack/travian_default/img/u/27.gif similarity index 100% rename from gpack/travian_default/img/u/27.gif rename to assets/gpack/travian_default/img/u/27.gif diff --git a/gpack/travian_default/img/u/28.gif b/assets/gpack/travian_default/img/u/28.gif similarity index 100% rename from gpack/travian_default/img/u/28.gif rename to assets/gpack/travian_default/img/u/28.gif diff --git a/gpack/travian_default/img/u/29.gif b/assets/gpack/travian_default/img/u/29.gif similarity index 100% rename from gpack/travian_default/img/u/29.gif rename to assets/gpack/travian_default/img/u/29.gif diff --git a/gpack/travian_default/img/u/3.gif b/assets/gpack/travian_default/img/u/3.gif similarity index 100% rename from gpack/travian_default/img/u/3.gif rename to assets/gpack/travian_default/img/u/3.gif diff --git a/gpack/travian_default/img/u/30.gif b/assets/gpack/travian_default/img/u/30.gif similarity index 100% rename from gpack/travian_default/img/u/30.gif rename to assets/gpack/travian_default/img/u/30.gif diff --git a/gpack/travian_default/img/u/31.gif b/assets/gpack/travian_default/img/u/31.gif similarity index 100% rename from gpack/travian_default/img/u/31.gif rename to assets/gpack/travian_default/img/u/31.gif diff --git a/gpack/travian_default/img/u/32.gif b/assets/gpack/travian_default/img/u/32.gif similarity index 100% rename from gpack/travian_default/img/u/32.gif rename to assets/gpack/travian_default/img/u/32.gif diff --git a/gpack/travian_default/img/u/33.gif b/assets/gpack/travian_default/img/u/33.gif similarity index 100% rename from gpack/travian_default/img/u/33.gif rename to assets/gpack/travian_default/img/u/33.gif diff --git a/gpack/travian_default/img/u/34.gif b/assets/gpack/travian_default/img/u/34.gif similarity index 100% rename from gpack/travian_default/img/u/34.gif rename to assets/gpack/travian_default/img/u/34.gif diff --git a/gpack/travian_default/img/u/35.gif b/assets/gpack/travian_default/img/u/35.gif similarity index 100% rename from gpack/travian_default/img/u/35.gif rename to assets/gpack/travian_default/img/u/35.gif diff --git a/gpack/travian_default/img/u/36.gif b/assets/gpack/travian_default/img/u/36.gif similarity index 100% rename from gpack/travian_default/img/u/36.gif rename to assets/gpack/travian_default/img/u/36.gif diff --git a/gpack/travian_default/img/u/37.gif b/assets/gpack/travian_default/img/u/37.gif similarity index 100% rename from gpack/travian_default/img/u/37.gif rename to assets/gpack/travian_default/img/u/37.gif diff --git a/gpack/travian_default/img/u/38.gif b/assets/gpack/travian_default/img/u/38.gif similarity index 100% rename from gpack/travian_default/img/u/38.gif rename to assets/gpack/travian_default/img/u/38.gif diff --git a/gpack/travian_default/img/u/39.gif b/assets/gpack/travian_default/img/u/39.gif similarity index 100% rename from gpack/travian_default/img/u/39.gif rename to assets/gpack/travian_default/img/u/39.gif diff --git a/gpack/travian_default/img/u/4.gif b/assets/gpack/travian_default/img/u/4.gif similarity index 100% rename from gpack/travian_default/img/u/4.gif rename to assets/gpack/travian_default/img/u/4.gif diff --git a/gpack/travian_default/img/u/40.gif b/assets/gpack/travian_default/img/u/40.gif similarity index 100% rename from gpack/travian_default/img/u/40.gif rename to assets/gpack/travian_default/img/u/40.gif diff --git a/gpack/travian_default/img/u/41.gif b/assets/gpack/travian_default/img/u/41.gif similarity index 100% rename from gpack/travian_default/img/u/41.gif rename to assets/gpack/travian_default/img/u/41.gif diff --git a/gpack/travian_default/img/u/42.gif b/assets/gpack/travian_default/img/u/42.gif similarity index 100% rename from gpack/travian_default/img/u/42.gif rename to assets/gpack/travian_default/img/u/42.gif diff --git a/gpack/travian_default/img/u/43.gif b/assets/gpack/travian_default/img/u/43.gif similarity index 100% rename from gpack/travian_default/img/u/43.gif rename to assets/gpack/travian_default/img/u/43.gif diff --git a/gpack/travian_default/img/u/44.gif b/assets/gpack/travian_default/img/u/44.gif similarity index 100% rename from gpack/travian_default/img/u/44.gif rename to assets/gpack/travian_default/img/u/44.gif diff --git a/gpack/travian_default/img/u/45.gif b/assets/gpack/travian_default/img/u/45.gif similarity index 100% rename from gpack/travian_default/img/u/45.gif rename to assets/gpack/travian_default/img/u/45.gif diff --git a/gpack/travian_default/img/u/46.gif b/assets/gpack/travian_default/img/u/46.gif similarity index 100% rename from gpack/travian_default/img/u/46.gif rename to assets/gpack/travian_default/img/u/46.gif diff --git a/gpack/travian_default/img/u/47.gif b/assets/gpack/travian_default/img/u/47.gif similarity index 100% rename from gpack/travian_default/img/u/47.gif rename to assets/gpack/travian_default/img/u/47.gif diff --git a/gpack/travian_default/img/u/48.gif b/assets/gpack/travian_default/img/u/48.gif similarity index 100% rename from gpack/travian_default/img/u/48.gif rename to assets/gpack/travian_default/img/u/48.gif diff --git a/gpack/travian_default/img/u/49.gif b/assets/gpack/travian_default/img/u/49.gif similarity index 100% rename from gpack/travian_default/img/u/49.gif rename to assets/gpack/travian_default/img/u/49.gif diff --git a/gpack/travian_default/img/u/5.gif b/assets/gpack/travian_default/img/u/5.gif similarity index 100% rename from gpack/travian_default/img/u/5.gif rename to assets/gpack/travian_default/img/u/5.gif diff --git a/gpack/travian_default/img/u/50.gif b/assets/gpack/travian_default/img/u/50.gif similarity index 100% rename from gpack/travian_default/img/u/50.gif rename to assets/gpack/travian_default/img/u/50.gif diff --git a/gpack/travian_default/img/u/51.gif b/assets/gpack/travian_default/img/u/51.gif similarity index 100% rename from gpack/travian_default/img/u/51.gif rename to assets/gpack/travian_default/img/u/51.gif diff --git a/gpack/travian_default/img/u/52.gif b/assets/gpack/travian_default/img/u/52.gif similarity index 100% rename from gpack/travian_default/img/u/52.gif rename to assets/gpack/travian_default/img/u/52.gif diff --git a/gpack/travian_default/img/u/53.gif b/assets/gpack/travian_default/img/u/53.gif similarity index 100% rename from gpack/travian_default/img/u/53.gif rename to assets/gpack/travian_default/img/u/53.gif diff --git a/gpack/travian_default/img/u/54.gif b/assets/gpack/travian_default/img/u/54.gif similarity index 100% rename from gpack/travian_default/img/u/54.gif rename to assets/gpack/travian_default/img/u/54.gif diff --git a/gpack/travian_default/img/u/55.gif b/assets/gpack/travian_default/img/u/55.gif similarity index 100% rename from gpack/travian_default/img/u/55.gif rename to assets/gpack/travian_default/img/u/55.gif diff --git a/gpack/travian_default/img/u/56.gif b/assets/gpack/travian_default/img/u/56.gif similarity index 100% rename from gpack/travian_default/img/u/56.gif rename to assets/gpack/travian_default/img/u/56.gif diff --git a/gpack/travian_default/img/u/57.gif b/assets/gpack/travian_default/img/u/57.gif similarity index 100% rename from gpack/travian_default/img/u/57.gif rename to assets/gpack/travian_default/img/u/57.gif diff --git a/gpack/travian_default/img/u/58.gif b/assets/gpack/travian_default/img/u/58.gif similarity index 100% rename from gpack/travian_default/img/u/58.gif rename to assets/gpack/travian_default/img/u/58.gif diff --git a/gpack/travian_default/img/u/59.gif b/assets/gpack/travian_default/img/u/59.gif similarity index 100% rename from gpack/travian_default/img/u/59.gif rename to assets/gpack/travian_default/img/u/59.gif diff --git a/gpack/travian_default/img/u/6.gif b/assets/gpack/travian_default/img/u/6.gif similarity index 100% rename from gpack/travian_default/img/u/6.gif rename to assets/gpack/travian_default/img/u/6.gif diff --git a/gpack/travian_default/img/u/60.gif b/assets/gpack/travian_default/img/u/60.gif similarity index 100% rename from gpack/travian_default/img/u/60.gif rename to assets/gpack/travian_default/img/u/60.gif diff --git a/gpack/travian_default/img/u/7.gif b/assets/gpack/travian_default/img/u/7.gif similarity index 100% rename from gpack/travian_default/img/u/7.gif rename to assets/gpack/travian_default/img/u/7.gif diff --git a/gpack/travian_default/img/u/8.gif b/assets/gpack/travian_default/img/u/8.gif similarity index 100% rename from gpack/travian_default/img/u/8.gif rename to assets/gpack/travian_default/img/u/8.gif diff --git a/gpack/travian_default/img/u/9.gif b/assets/gpack/travian_default/img/u/9.gif similarity index 100% rename from gpack/travian_default/img/u/9.gif rename to assets/gpack/travian_default/img/u/9.gif diff --git a/gpack/travian_default/img/u/98.gif b/assets/gpack/travian_default/img/u/98.gif similarity index 100% rename from gpack/travian_default/img/u/98.gif rename to assets/gpack/travian_default/img/u/98.gif diff --git a/gpack/travian_default/img/u/99.gif b/assets/gpack/travian_default/img/u/99.gif similarity index 100% rename from gpack/travian_default/img/u/99.gif rename to assets/gpack/travian_default/img/u/99.gif diff --git a/Templates/Simulator/index.php b/assets/gpack/travian_default/img/u/index.php similarity index 100% rename from Templates/Simulator/index.php rename to assets/gpack/travian_default/img/u/index.php diff --git a/gpack/travian_default/img/u/point.gif b/assets/gpack/travian_default/img/u/point.gif similarity index 100% rename from gpack/travian_default/img/u/point.gif rename to assets/gpack/travian_default/img/u/point.gif diff --git a/gpack/travian_default/img/u/specials.gif b/assets/gpack/travian_default/img/u/specials.gif similarity index 100% rename from gpack/travian_default/img/u/specials.gif rename to assets/gpack/travian_default/img/u/specials.gif diff --git a/gpack/travian_default/img/u/v1_romans2.gif b/assets/gpack/travian_default/img/u/v1_romans2.gif similarity index 100% rename from gpack/travian_default/img/u/v1_romans2.gif rename to assets/gpack/travian_default/img/u/v1_romans2.gif diff --git a/gpack/travian_default/img/u/v2_teutons2.gif b/assets/gpack/travian_default/img/u/v2_teutons2.gif similarity index 100% rename from gpack/travian_default/img/u/v2_teutons2.gif rename to assets/gpack/travian_default/img/u/v2_teutons2.gif diff --git a/gpack/travian_default/img/u/v3_gauls2.gif b/assets/gpack/travian_default/img/u/v3_gauls2.gif similarity index 100% rename from gpack/travian_default/img/u/v3_gauls2.gif rename to assets/gpack/travian_default/img/u/v3_gauls2.gif diff --git a/gpack/travian_default/img/u/v4_nature2.gif b/assets/gpack/travian_default/img/u/v4_nature2.gif similarity index 100% rename from gpack/travian_default/img/u/v4_nature2.gif rename to assets/gpack/travian_default/img/u/v4_nature2.gif diff --git a/gpack/travian_default/img/u/v5_natars2.gif b/assets/gpack/travian_default/img/u/v5_natars2.gif similarity index 100% rename from gpack/travian_default/img/u/v5_natars2.gif rename to assets/gpack/travian_default/img/u/v5_natars2.gif diff --git a/gpack/travian_default/img/u/v6_monsters2.gif b/assets/gpack/travian_default/img/u/v6_monsters2.gif similarity index 100% rename from gpack/travian_default/img/u/v6_monsters2.gif rename to assets/gpack/travian_default/img/u/v6_monsters2.gif diff --git a/Templates/Tutorial/index.php b/assets/gpack/travian_default/img/u2/index.php similarity index 100% rename from Templates/Tutorial/index.php rename to assets/gpack/travian_default/img/u2/index.php diff --git a/gpack/travian_default/img/u2/u1.gif b/assets/gpack/travian_default/img/u2/u1.gif similarity index 100% rename from gpack/travian_default/img/u2/u1.gif rename to assets/gpack/travian_default/img/u2/u1.gif diff --git a/gpack/travian_default/img/u2/u10.gif b/assets/gpack/travian_default/img/u2/u10.gif similarity index 100% rename from gpack/travian_default/img/u2/u10.gif rename to assets/gpack/travian_default/img/u2/u10.gif diff --git a/gpack/travian_default/img/u2/u11.gif b/assets/gpack/travian_default/img/u2/u11.gif similarity index 100% rename from gpack/travian_default/img/u2/u11.gif rename to assets/gpack/travian_default/img/u2/u11.gif diff --git a/gpack/travian_default/img/u2/u12.gif b/assets/gpack/travian_default/img/u2/u12.gif similarity index 100% rename from gpack/travian_default/img/u2/u12.gif rename to assets/gpack/travian_default/img/u2/u12.gif diff --git a/gpack/travian_default/img/u2/u13.gif b/assets/gpack/travian_default/img/u2/u13.gif similarity index 100% rename from gpack/travian_default/img/u2/u13.gif rename to assets/gpack/travian_default/img/u2/u13.gif diff --git a/gpack/travian_default/img/u2/u14.gif b/assets/gpack/travian_default/img/u2/u14.gif similarity index 100% rename from gpack/travian_default/img/u2/u14.gif rename to assets/gpack/travian_default/img/u2/u14.gif diff --git a/gpack/travian_default/img/u2/u15.gif b/assets/gpack/travian_default/img/u2/u15.gif similarity index 100% rename from gpack/travian_default/img/u2/u15.gif rename to assets/gpack/travian_default/img/u2/u15.gif diff --git a/gpack/travian_default/img/u2/u16.gif b/assets/gpack/travian_default/img/u2/u16.gif similarity index 100% rename from gpack/travian_default/img/u2/u16.gif rename to assets/gpack/travian_default/img/u2/u16.gif diff --git a/gpack/travian_default/img/u2/u17.gif b/assets/gpack/travian_default/img/u2/u17.gif similarity index 100% rename from gpack/travian_default/img/u2/u17.gif rename to assets/gpack/travian_default/img/u2/u17.gif diff --git a/gpack/travian_default/img/u2/u18.gif b/assets/gpack/travian_default/img/u2/u18.gif similarity index 100% rename from gpack/travian_default/img/u2/u18.gif rename to assets/gpack/travian_default/img/u2/u18.gif diff --git a/gpack/travian_default/img/u2/u19.gif b/assets/gpack/travian_default/img/u2/u19.gif similarity index 100% rename from gpack/travian_default/img/u2/u19.gif rename to assets/gpack/travian_default/img/u2/u19.gif diff --git a/gpack/travian_default/img/u2/u2.gif b/assets/gpack/travian_default/img/u2/u2.gif similarity index 100% rename from gpack/travian_default/img/u2/u2.gif rename to assets/gpack/travian_default/img/u2/u2.gif diff --git a/gpack/travian_default/img/u2/u20.gif b/assets/gpack/travian_default/img/u2/u20.gif similarity index 100% rename from gpack/travian_default/img/u2/u20.gif rename to assets/gpack/travian_default/img/u2/u20.gif diff --git a/gpack/travian_default/img/u2/u21.gif b/assets/gpack/travian_default/img/u2/u21.gif similarity index 100% rename from gpack/travian_default/img/u2/u21.gif rename to assets/gpack/travian_default/img/u2/u21.gif diff --git a/gpack/travian_default/img/u2/u22.gif b/assets/gpack/travian_default/img/u2/u22.gif similarity index 100% rename from gpack/travian_default/img/u2/u22.gif rename to assets/gpack/travian_default/img/u2/u22.gif diff --git a/gpack/travian_default/img/u2/u23.gif b/assets/gpack/travian_default/img/u2/u23.gif similarity index 100% rename from gpack/travian_default/img/u2/u23.gif rename to assets/gpack/travian_default/img/u2/u23.gif diff --git a/gpack/travian_default/img/u2/u24.gif b/assets/gpack/travian_default/img/u2/u24.gif similarity index 100% rename from gpack/travian_default/img/u2/u24.gif rename to assets/gpack/travian_default/img/u2/u24.gif diff --git a/gpack/travian_default/img/u2/u25.gif b/assets/gpack/travian_default/img/u2/u25.gif similarity index 100% rename from gpack/travian_default/img/u2/u25.gif rename to assets/gpack/travian_default/img/u2/u25.gif diff --git a/gpack/travian_default/img/u2/u26.gif b/assets/gpack/travian_default/img/u2/u26.gif similarity index 100% rename from gpack/travian_default/img/u2/u26.gif rename to assets/gpack/travian_default/img/u2/u26.gif diff --git a/gpack/travian_default/img/u2/u27.gif b/assets/gpack/travian_default/img/u2/u27.gif similarity index 100% rename from gpack/travian_default/img/u2/u27.gif rename to assets/gpack/travian_default/img/u2/u27.gif diff --git a/gpack/travian_default/img/u2/u28.gif b/assets/gpack/travian_default/img/u2/u28.gif similarity index 100% rename from gpack/travian_default/img/u2/u28.gif rename to assets/gpack/travian_default/img/u2/u28.gif diff --git a/gpack/travian_default/img/u2/u29.gif b/assets/gpack/travian_default/img/u2/u29.gif similarity index 100% rename from gpack/travian_default/img/u2/u29.gif rename to assets/gpack/travian_default/img/u2/u29.gif diff --git a/gpack/travian_default/img/u2/u3.gif b/assets/gpack/travian_default/img/u2/u3.gif similarity index 100% rename from gpack/travian_default/img/u2/u3.gif rename to assets/gpack/travian_default/img/u2/u3.gif diff --git a/gpack/travian_default/img/u2/u30.gif b/assets/gpack/travian_default/img/u2/u30.gif similarity index 100% rename from gpack/travian_default/img/u2/u30.gif rename to assets/gpack/travian_default/img/u2/u30.gif diff --git a/gpack/travian_default/img/u2/u4.gif b/assets/gpack/travian_default/img/u2/u4.gif similarity index 100% rename from gpack/travian_default/img/u2/u4.gif rename to assets/gpack/travian_default/img/u2/u4.gif diff --git a/gpack/travian_default/img/u2/u5.gif b/assets/gpack/travian_default/img/u2/u5.gif similarity index 100% rename from gpack/travian_default/img/u2/u5.gif rename to assets/gpack/travian_default/img/u2/u5.gif diff --git a/gpack/travian_default/img/u2/u6.gif b/assets/gpack/travian_default/img/u2/u6.gif similarity index 100% rename from gpack/travian_default/img/u2/u6.gif rename to assets/gpack/travian_default/img/u2/u6.gif diff --git a/gpack/travian_default/img/u2/u7.gif b/assets/gpack/travian_default/img/u2/u7.gif similarity index 100% rename from gpack/travian_default/img/u2/u7.gif rename to assets/gpack/travian_default/img/u2/u7.gif diff --git a/gpack/travian_default/img/u2/u8.gif b/assets/gpack/travian_default/img/u2/u8.gif similarity index 100% rename from gpack/travian_default/img/u2/u8.gif rename to assets/gpack/travian_default/img/u2/u8.gif diff --git a/gpack/travian_default/img/u2/u9.gif b/assets/gpack/travian_default/img/u2/u9.gif similarity index 100% rename from gpack/travian_default/img/u2/u9.gif rename to assets/gpack/travian_default/img/u2/u9.gif diff --git a/Templates/a2b/index.php b/assets/gpack/travian_default/img/u2rtl/index.php similarity index 100% rename from Templates/a2b/index.php rename to assets/gpack/travian_default/img/u2rtl/index.php diff --git a/gpack/travian_default/img/u2rtl/u1.gif b/assets/gpack/travian_default/img/u2rtl/u1.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u1.gif rename to assets/gpack/travian_default/img/u2rtl/u1.gif diff --git a/gpack/travian_default/img/u2rtl/u10.gif b/assets/gpack/travian_default/img/u2rtl/u10.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u10.gif rename to assets/gpack/travian_default/img/u2rtl/u10.gif diff --git a/gpack/travian_default/img/u2rtl/u11.gif b/assets/gpack/travian_default/img/u2rtl/u11.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u11.gif rename to assets/gpack/travian_default/img/u2rtl/u11.gif diff --git a/gpack/travian_default/img/u2rtl/u12.gif b/assets/gpack/travian_default/img/u2rtl/u12.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u12.gif rename to assets/gpack/travian_default/img/u2rtl/u12.gif diff --git a/gpack/travian_default/img/u2rtl/u13.gif b/assets/gpack/travian_default/img/u2rtl/u13.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u13.gif rename to assets/gpack/travian_default/img/u2rtl/u13.gif diff --git a/gpack/travian_default/img/u2rtl/u14.gif b/assets/gpack/travian_default/img/u2rtl/u14.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u14.gif rename to assets/gpack/travian_default/img/u2rtl/u14.gif diff --git a/gpack/travian_default/img/u2rtl/u15.gif b/assets/gpack/travian_default/img/u2rtl/u15.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u15.gif rename to assets/gpack/travian_default/img/u2rtl/u15.gif diff --git a/gpack/travian_default/img/u2rtl/u16.gif b/assets/gpack/travian_default/img/u2rtl/u16.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u16.gif rename to assets/gpack/travian_default/img/u2rtl/u16.gif diff --git a/gpack/travian_default/img/u2rtl/u17.gif b/assets/gpack/travian_default/img/u2rtl/u17.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u17.gif rename to assets/gpack/travian_default/img/u2rtl/u17.gif diff --git a/gpack/travian_default/img/u2rtl/u18.gif b/assets/gpack/travian_default/img/u2rtl/u18.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u18.gif rename to assets/gpack/travian_default/img/u2rtl/u18.gif diff --git a/gpack/travian_default/img/u2rtl/u19.gif b/assets/gpack/travian_default/img/u2rtl/u19.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u19.gif rename to assets/gpack/travian_default/img/u2rtl/u19.gif diff --git a/gpack/travian_default/img/u2rtl/u2.gif b/assets/gpack/travian_default/img/u2rtl/u2.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u2.gif rename to assets/gpack/travian_default/img/u2rtl/u2.gif diff --git a/gpack/travian_default/img/u2rtl/u20.gif b/assets/gpack/travian_default/img/u2rtl/u20.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u20.gif rename to assets/gpack/travian_default/img/u2rtl/u20.gif diff --git a/gpack/travian_default/img/u2rtl/u21.gif b/assets/gpack/travian_default/img/u2rtl/u21.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u21.gif rename to assets/gpack/travian_default/img/u2rtl/u21.gif diff --git a/gpack/travian_default/img/u2rtl/u22.gif b/assets/gpack/travian_default/img/u2rtl/u22.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u22.gif rename to assets/gpack/travian_default/img/u2rtl/u22.gif diff --git a/gpack/travian_default/img/u2rtl/u23.gif b/assets/gpack/travian_default/img/u2rtl/u23.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u23.gif rename to assets/gpack/travian_default/img/u2rtl/u23.gif diff --git a/gpack/travian_default/img/u2rtl/u24.gif b/assets/gpack/travian_default/img/u2rtl/u24.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u24.gif rename to assets/gpack/travian_default/img/u2rtl/u24.gif diff --git a/gpack/travian_default/img/u2rtl/u25.gif b/assets/gpack/travian_default/img/u2rtl/u25.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u25.gif rename to assets/gpack/travian_default/img/u2rtl/u25.gif diff --git a/gpack/travian_default/img/u2rtl/u26.gif b/assets/gpack/travian_default/img/u2rtl/u26.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u26.gif rename to assets/gpack/travian_default/img/u2rtl/u26.gif diff --git a/gpack/travian_default/img/u2rtl/u27.gif b/assets/gpack/travian_default/img/u2rtl/u27.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u27.gif rename to assets/gpack/travian_default/img/u2rtl/u27.gif diff --git a/gpack/travian_default/img/u2rtl/u28.gif b/assets/gpack/travian_default/img/u2rtl/u28.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u28.gif rename to assets/gpack/travian_default/img/u2rtl/u28.gif diff --git a/gpack/travian_default/img/u2rtl/u29.gif b/assets/gpack/travian_default/img/u2rtl/u29.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u29.gif rename to assets/gpack/travian_default/img/u2rtl/u29.gif diff --git a/gpack/travian_default/img/u2rtl/u3.gif b/assets/gpack/travian_default/img/u2rtl/u3.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u3.gif rename to assets/gpack/travian_default/img/u2rtl/u3.gif diff --git a/gpack/travian_default/img/u2rtl/u30.gif b/assets/gpack/travian_default/img/u2rtl/u30.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u30.gif rename to assets/gpack/travian_default/img/u2rtl/u30.gif diff --git a/gpack/travian_default/img/u2rtl/u4.gif b/assets/gpack/travian_default/img/u2rtl/u4.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u4.gif rename to assets/gpack/travian_default/img/u2rtl/u4.gif diff --git a/gpack/travian_default/img/u2rtl/u5.gif b/assets/gpack/travian_default/img/u2rtl/u5.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u5.gif rename to assets/gpack/travian_default/img/u2rtl/u5.gif diff --git a/gpack/travian_default/img/u2rtl/u6.gif b/assets/gpack/travian_default/img/u2rtl/u6.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u6.gif rename to assets/gpack/travian_default/img/u2rtl/u6.gif diff --git a/gpack/travian_default/img/u2rtl/u7.gif b/assets/gpack/travian_default/img/u2rtl/u7.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u7.gif rename to assets/gpack/travian_default/img/u2rtl/u7.gif diff --git a/gpack/travian_default/img/u2rtl/u8.gif b/assets/gpack/travian_default/img/u2rtl/u8.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u8.gif rename to assets/gpack/travian_default/img/u2rtl/u8.gif diff --git a/gpack/travian_default/img/u2rtl/u9.gif b/assets/gpack/travian_default/img/u2rtl/u9.gif similarity index 100% rename from gpack/travian_default/img/u2rtl/u9.gif rename to assets/gpack/travian_default/img/u2rtl/u9.gif diff --git a/Templates/activate/index.php b/assets/gpack/travian_default/img/wm/index.php similarity index 100% rename from Templates/activate/index.php rename to assets/gpack/travian_default/img/wm/index.php diff --git a/gpack/travian_default/img/wm/wm99.gif b/assets/gpack/travian_default/img/wm/wm99.gif similarity index 100% rename from gpack/travian_default/img/wm/wm99.gif rename to assets/gpack/travian_default/img/wm/wm99.gif diff --git a/Templates/dorf3/index.php b/assets/gpack/travian_default/index.php similarity index 100% rename from Templates/dorf3/index.php rename to assets/gpack/travian_default/index.php diff --git a/Templates/goldClub/index.php b/assets/gpack/travian_default/lang/en/a/index.php similarity index 100% rename from Templates/goldClub/index.php rename to assets/gpack/travian_default/lang/en/a/index.php diff --git a/gpack/travian_default/lang/en/a/plus.gif b/assets/gpack/travian_default/lang/en/a/plus.gif similarity index 100% rename from gpack/travian_default/lang/en/a/plus.gif rename to assets/gpack/travian_default/lang/en/a/plus.gif diff --git a/gpack/travian_default/lang/en/a/travian0.gif b/assets/gpack/travian_default/lang/en/a/travian0.gif similarity index 100% rename from gpack/travian_default/lang/en/a/travian0.gif rename to assets/gpack/travian_default/lang/en/a/travian0.gif diff --git a/gpack/travian_default/lang/en/a/travian1.gif b/assets/gpack/travian_default/lang/en/a/travian1.gif similarity index 100% rename from gpack/travian_default/lang/en/a/travian1.gif rename to assets/gpack/travian_default/lang/en/a/travian1.gif diff --git a/gpack/travian_default/lang/en/b/archiv.gif b/assets/gpack/travian_default/lang/en/b/archiv.gif similarity index 100% rename from gpack/travian_default/lang/en/b/archiv.gif rename to assets/gpack/travian_default/lang/en/b/archiv.gif diff --git a/gpack/travian_default/lang/en/b/back.gif b/assets/gpack/travian_default/lang/en/b/back.gif similarity index 100% rename from gpack/travian_default/lang/en/b/back.gif rename to assets/gpack/travian_default/lang/en/b/back.gif diff --git a/gpack/travian_default/lang/en/b/delete.gif b/assets/gpack/travian_default/lang/en/b/delete.gif similarity index 100% rename from gpack/travian_default/lang/en/b/delete.gif rename to assets/gpack/travian_default/lang/en/b/delete.gif diff --git a/gpack/travian_default/lang/en/b/demolish.gif b/assets/gpack/travian_default/lang/en/b/demolish.gif similarity index 100% rename from gpack/travian_default/lang/en/b/demolish.gif rename to assets/gpack/travian_default/lang/en/b/demolish.gif diff --git a/gpack/travian_default/lang/en/b/forward.gif b/assets/gpack/travian_default/lang/en/b/forward.gif similarity index 100% rename from gpack/travian_default/lang/en/b/forward.gif rename to assets/gpack/travian_default/lang/en/b/forward.gif diff --git a/Templates/index.php b/assets/gpack/travian_default/lang/en/b/index.php similarity index 100% rename from Templates/index.php rename to assets/gpack/travian_default/lang/en/b/index.php diff --git a/gpack/travian_default/lang/en/b/login.gif b/assets/gpack/travian_default/lang/en/b/login.gif similarity index 100% rename from gpack/travian_default/lang/en/b/login.gif rename to assets/gpack/travian_default/lang/en/b/login.gif diff --git a/gpack/travian_default/lang/en/b/ok.gif b/assets/gpack/travian_default/lang/en/b/ok.gif similarity index 100% rename from gpack/travian_default/lang/en/b/ok.gif rename to assets/gpack/travian_default/lang/en/b/ok.gif diff --git a/gpack/travian_default/lang/en/b/reply.gif b/assets/gpack/travian_default/lang/en/b/reply.gif similarity index 100% rename from gpack/travian_default/lang/en/b/reply.gif rename to assets/gpack/travian_default/lang/en/b/reply.gif diff --git a/gpack/travian_default/lang/en/b/save.gif b/assets/gpack/travian_default/lang/en/b/save.gif similarity index 100% rename from gpack/travian_default/lang/en/b/save.gif rename to assets/gpack/travian_default/lang/en/b/save.gif diff --git a/gpack/travian_default/lang/en/b/search.gif b/assets/gpack/travian_default/lang/en/b/search.gif similarity index 100% rename from gpack/travian_default/lang/en/b/search.gif rename to assets/gpack/travian_default/lang/en/b/search.gif diff --git a/gpack/travian_default/lang/en/b/send.gif b/assets/gpack/travian_default/lang/en/b/send.gif similarity index 100% rename from gpack/travian_default/lang/en/b/send.gif rename to assets/gpack/travian_default/lang/en/b/send.gif diff --git a/gpack/travian_default/lang/en/b/signup.gif b/assets/gpack/travian_default/lang/en/b/signup.gif similarity index 100% rename from gpack/travian_default/lang/en/b/signup.gif rename to assets/gpack/travian_default/lang/en/b/signup.gif diff --git a/gpack/travian_default/lang/en/b/train.gif b/assets/gpack/travian_default/lang/en/b/train.gif similarity index 100% rename from gpack/travian_default/lang/en/b/train.gif rename to assets/gpack/travian_default/lang/en/b/train.gif diff --git a/gpack/travian_default/lang/en/b/zurueck.html b/assets/gpack/travian_default/lang/en/b/zurueck.html similarity index 100% rename from gpack/travian_default/lang/en/b/zurueck.html rename to assets/gpack/travian_default/lang/en/b/zurueck.html diff --git a/gpack/travian_default/lang/en/compact.css b/assets/gpack/travian_default/lang/en/compact.css similarity index 99% rename from gpack/travian_default/lang/en/compact.css rename to assets/gpack/travian_default/lang/en/compact.css index dc188b75..878cdecd 100644 --- a/gpack/travian_default/lang/en/compact.css +++ b/assets/gpack/travian_default/lang/en/compact.css @@ -436,7 +436,7 @@ div#side_info div.news { margin-bottom: 25px; margin-left: 10px; padding: 6px; - width: 186px; + width: 190px; } div#side_info div.news h5 { margin-bottom: 10px; @@ -515,17 +515,19 @@ div.signup table#sign_input { margin-bottom: 15px; } div.signup div#activation { + text-align: center; float: left; margin-top: 15px; - width: 40%; + width: 85%; } div.signup div#not_yet { text-align: center; } div.signup div#no_mail { - float: right; + text-align: center; + float: none; margin-top: 15px; - width: 60%; + width: 85%; } div.signup .timer, div.signup .timer #timer1 { text-align: center; @@ -2885,20 +2887,20 @@ div.quest div#qstd input.qb2 { float: right; margin: 0 12px; } -div.a2b p.btn { +div.gid16 p.btn { text-align: left; } -div.a2b .slots { +div.gid16 .slots { margin-bottom: 10px; margin-top: 5px; } -div.a2b table#troops { +div.gid16 table#troops { margin-top: 5px; } -div.a2b table#coords { +div.gid16 table#coords { margin: 25px 0 10px 5px; } -div.a2b table.troop_details { +div.gid16 table.troop_details { margin: 15px 0; } div.cropfinder div.cropfinder_input { @@ -3213,10 +3215,12 @@ td.cbg2 { word-wrap: break-word; overflow-wrap: break-word; } -div.activation_time { +div#activation_time.timer{ padding-left: 5px; padding-top: 5px; text-align: center; + color: #FF8000; + font-size: 20px; } .facebooklink { display: block; @@ -5564,42 +5568,42 @@ div.a2b table#troops input.disabled { background-color: #EEEEEE; border-color: #AAAAAA; } -div.a2b table#coords { +div.gid16 table#coords { background-color: #FFFFFF; line-height: 18px; } -div.a2b table#coords td { +div.gid16 table#coords td { padding: 0; vertical-align: top; } -div.a2b table#coords td.sel { +div.gid16 table#coords td.sel { white-space: nowrap; width: 35%; } -div.a2b table#coords td.sel input.radio { +div.gid16 table#coords td.sel input.radio { position: relative; top: 1px; } -body.presto div.a2b table#coords td.sel input.radio { +body.presto div.gid16 table#coords td.sel input.radio { top: -1px; } -* html div.a2b table#coords td.sel input.radio { +* html div.gid16 table#coords td.sel input.radio { top: -2px; } -* + html div.a2b table#coords td.sel input.radio { +* + html div.gid16 table#coords td.sel input.radio { top: -2px; } -div.a2b table#coords td.vil *, div.a2b table#coords td.target * { +div.gid16 table#coords td.vil *, div.a2b table#coords td.target * { float: left; margin-right: 10px; } -div.a2b table#coords td.vil input.text { +div.gid16 table#coords td.vil input.text { width: 100px; } -div.a2b table#coords td.target input.text { +div.gid16 table#coords td.target input.text { width: 40px; } -div.a2b table#short_info { +div.gid16 table#short_info { background-color: #FFFFFF; } div.a2b table#short_info th { @@ -5910,9 +5914,24 @@ div#textmenu a.selected { .none { color: #C0C0C0; } +.noresources { + color: #C0C0C0; + text-decoration: line-through; +} .error { color: #FF8000; } +.errorBold { + color: #FF8000; + font-weight: bold; +} +.success { + color: #008000; +} +.successBold { + color: #008000; + font-weight: bold; +} span.plus_g { color: #71D000; font-weight: bold; @@ -6084,6 +6103,9 @@ div.village1 table#movements .a2, div.village1 table#movements .d2 { div.village1 table#movements .a3, div.village1 table#movements .d3 { color: #B500A3; } +div.village1 table#movements .a5 { + color: #0020C2; +} div.village2 div#village_map div#levels div { font-family: Arial,Helvetica; font-size: 9px; @@ -6522,17 +6544,17 @@ div.a2b table#troops td { div.a2b table#troops span.none { font-weight: bold; } -div.a2b table#coords td.or { +div.gid16 table#coords td.or { font-style: italic; } -div.a2b table#coords td.vil, div.a2b table#coords td.target { +div.gid16 table#coords td.vil, div.gid16 table#coords td.target { font-size: 18px; font-weight: bold; } -div.a2b table.troop_details thead td { +div.gid16 table.troop_details thead td { font-weight: bold; } -div.a2b table.troop_details thead td a { +div.gid16 table.troop_details thead td a { color: black; } div.plus table th, div.plus table td { @@ -6602,10 +6624,6 @@ div.warsim table.defender td.role { color: #71D000; font-weight: bold; } -div.activation_time { - color: #FF8000; - font-size: 20px; -} img, a, div { background-position: left top; background-repeat: no-repeat; diff --git a/gpack/index.php b/assets/gpack/travian_default/lang/en/f/index.php similarity index 100% rename from gpack/index.php rename to assets/gpack/travian_default/lang/en/f/index.php diff --git a/gpack/travian_default/lang/en/f/newforum.gif b/assets/gpack/travian_default/lang/en/f/newforum.gif similarity index 100% rename from gpack/travian_default/lang/en/f/newforum.gif rename to assets/gpack/travian_default/lang/en/f/newforum.gif diff --git a/gpack/travian_default/lang/en/f/post.gif b/assets/gpack/travian_default/lang/en/f/post.gif similarity index 100% rename from gpack/travian_default/lang/en/f/post.gif rename to assets/gpack/travian_default/lang/en/f/post.gif diff --git a/gpack/travian_default/lang/en/f/reply.gif b/assets/gpack/travian_default/lang/en/f/reply.gif similarity index 100% rename from gpack/travian_default/lang/en/f/reply.gif rename to assets/gpack/travian_default/lang/en/f/reply.gif diff --git a/gpack/travian_default/lang/en/f/result.gif b/assets/gpack/travian_default/lang/en/f/result.gif similarity index 100% rename from gpack/travian_default/lang/en/f/result.gif rename to assets/gpack/travian_default/lang/en/f/result.gif diff --git a/gpack/travian_default/lang/en/f/vote.gif b/assets/gpack/travian_default/lang/en/f/vote.gif similarity index 100% rename from gpack/travian_default/lang/en/f/vote.gif rename to assets/gpack/travian_default/lang/en/f/vote.gif diff --git a/gpack/travian_default/lang/en/f/voting.gif b/assets/gpack/travian_default/lang/en/f/voting.gif similarity index 100% rename from gpack/travian_default/lang/en/f/voting.gif rename to assets/gpack/travian_default/lang/en/f/voting.gif diff --git a/gpack/travian_default/lang/en/gp_check.css b/assets/gpack/travian_default/lang/en/gp_check.css similarity index 100% rename from gpack/travian_default/lang/en/gp_check.css rename to assets/gpack/travian_default/lang/en/gp_check.css diff --git a/gpack/travian_default/images/index.php b/assets/gpack/travian_default/lang/en/index.php similarity index 100% rename from gpack/travian_default/images/index.php rename to assets/gpack/travian_default/lang/en/index.php diff --git a/gpack/travian_default/lang/en/lang.css b/assets/gpack/travian_default/lang/en/lang.css similarity index 100% rename from gpack/travian_default/lang/en/lang.css rename to assets/gpack/travian_default/lang/en/lang.css diff --git a/gpack/travian_default/lang/en/msg/block_bg24a.gif b/assets/gpack/travian_default/lang/en/msg/block_bg24a.gif similarity index 100% rename from gpack/travian_default/lang/en/msg/block_bg24a.gif rename to assets/gpack/travian_default/lang/en/msg/block_bg24a.gif diff --git a/gpack/travian_default/lang/en/msg/block_bg24b.gif b/assets/gpack/travian_default/lang/en/msg/block_bg24b.gif similarity index 100% rename from gpack/travian_default/lang/en/msg/block_bg24b.gif rename to assets/gpack/travian_default/lang/en/msg/block_bg24b.gif diff --git a/gpack/travian_default/img/a/index.php b/assets/gpack/travian_default/lang/en/msg/index.php similarity index 100% rename from gpack/travian_default/img/a/index.php rename to assets/gpack/travian_default/lang/en/msg/index.php diff --git a/gpack/travian_default/lang/en/new/gp_preview.png b/assets/gpack/travian_default/lang/en/new/gp_preview.png similarity index 100% rename from gpack/travian_default/lang/en/new/gp_preview.png rename to assets/gpack/travian_default/lang/en/new/gp_preview.png diff --git a/gpack/travian_default/img/artefact/index.php b/assets/gpack/travian_default/lang/en/new/index.php similarity index 100% rename from gpack/travian_default/img/artefact/index.php rename to assets/gpack/travian_default/lang/en/new/index.php diff --git a/gpack/travian_default/lang/en/p/autovv.gif b/assets/gpack/travian_default/lang/en/p/autovv.gif similarity index 100% rename from gpack/travian_default/lang/en/p/autovv.gif rename to assets/gpack/travian_default/lang/en/p/autovv.gif diff --git a/gpack/travian_default/lang/en/p/bfilter.gif b/assets/gpack/travian_default/lang/en/p/bfilter.gif similarity index 100% rename from gpack/travian_default/lang/en/p/bfilter.gif rename to assets/gpack/travian_default/lang/en/p/bfilter.gif diff --git a/gpack/travian_default/lang/en/p/dorf3.jpg b/assets/gpack/travian_default/lang/en/p/dorf3.jpg similarity index 100% rename from gpack/travian_default/lang/en/p/dorf3.jpg rename to assets/gpack/travian_default/lang/en/p/dorf3.jpg diff --git a/gpack/travian_default/img/f/index.php b/assets/gpack/travian_default/lang/en/p/index.php similarity index 100% rename from gpack/travian_default/img/f/index.php rename to assets/gpack/travian_default/lang/en/p/index.php diff --git a/gpack/travian_default/lang/en/p/p1.gif b/assets/gpack/travian_default/lang/en/p/p1.gif similarity index 100% rename from gpack/travian_default/lang/en/p/p1.gif rename to assets/gpack/travian_default/lang/en/p/p1.gif diff --git a/gpack/travian_default/lang/en/p/p3.gif b/assets/gpack/travian_default/lang/en/p/p3.gif similarity index 100% rename from gpack/travian_default/lang/en/p/p3.gif rename to assets/gpack/travian_default/lang/en/p/p3.gif diff --git a/gpack/travian_default/lang/en/p/p4.gif b/assets/gpack/travian_default/lang/en/p/p4.gif similarity index 100% rename from gpack/travian_default/lang/en/p/p4.gif rename to assets/gpack/travian_default/lang/en/p/p4.gif diff --git a/gpack/travian_default/lang/en/p/p5.gif b/assets/gpack/travian_default/lang/en/p/p5.gif similarity index 100% rename from gpack/travian_default/lang/en/p/p5.gif rename to assets/gpack/travian_default/lang/en/p/p5.gif diff --git a/gpack/travian_default/lang/en/p/p6.gif b/assets/gpack/travian_default/lang/en/p/p6.gif similarity index 100% rename from gpack/travian_default/lang/en/p/p6.gif rename to assets/gpack/travian_default/lang/en/p/p6.gif diff --git a/gpack/travian_default/lang/en/p/p7.gif b/assets/gpack/travian_default/lang/en/p/p7.gif similarity index 100% rename from gpack/travian_default/lang/en/p/p7.gif rename to assets/gpack/travian_default/lang/en/p/p7.gif diff --git a/gpack/travian_default/lang/en/p/p8.gif b/assets/gpack/travian_default/lang/en/p/p8.gif similarity index 100% rename from gpack/travian_default/lang/en/p/p8.gif rename to assets/gpack/travian_default/lang/en/p/p8.gif diff --git a/gpack/travian_default/lang/en/p/sort.jpg b/assets/gpack/travian_default/lang/en/p/sort.jpg similarity index 100% rename from gpack/travian_default/lang/en/p/sort.jpg rename to assets/gpack/travian_default/lang/en/p/sort.jpg diff --git a/gpack/travian_default/lang/en/p/st1.gif b/assets/gpack/travian_default/lang/en/p/st1.gif similarity index 100% rename from gpack/travian_default/lang/en/p/st1.gif rename to assets/gpack/travian_default/lang/en/p/st1.gif diff --git a/gpack/travian_default/lang/en/p/xxl_map.gif b/assets/gpack/travian_default/lang/en/p/xxl_map.gif similarity index 100% rename from gpack/travian_default/lang/en/p/xxl_map.gif rename to assets/gpack/travian_default/lang/en/p/xxl_map.gif diff --git a/gpack/travian_default/lang/en/t1/anmelden.gif b/assets/gpack/travian_default/lang/en/t1/anmelden.gif similarity index 100% rename from gpack/travian_default/lang/en/t1/anmelden.gif rename to assets/gpack/travian_default/lang/en/t1/anmelden.gif diff --git a/gpack/travian_default/img/g/index.php b/assets/gpack/travian_default/lang/en/t1/index.php similarity index 100% rename from gpack/travian_default/img/g/index.php rename to assets/gpack/travian_default/lang/en/t1/index.php diff --git a/gpack/travian_default/lang/en/t1/login.gif b/assets/gpack/travian_default/lang/en/t1/login.gif similarity index 100% rename from gpack/travian_default/lang/en/t1/login.gif rename to assets/gpack/travian_default/lang/en/t1/login.gif diff --git a/gpack/travian_default/lang/en/t1/passwort.gif b/assets/gpack/travian_default/lang/en/t1/passwort.gif similarity index 100% rename from gpack/travian_default/lang/en/t1/passwort.gif rename to assets/gpack/travian_default/lang/en/t1/passwort.gif diff --git a/gpack/travian_default/img/g/s/index.php b/assets/gpack/travian_default/lang/en/t2/index.php similarity index 100% rename from gpack/travian_default/img/g/s/index.php rename to assets/gpack/travian_default/lang/en/t2/index.php diff --git a/gpack/travian_default/lang/en/t2/u04.gif b/assets/gpack/travian_default/lang/en/t2/u04.gif similarity index 100% rename from gpack/travian_default/lang/en/t2/u04.gif rename to assets/gpack/travian_default/lang/en/t2/u04.gif diff --git a/gpack/travian_default/lang/en/t2/u05.gif b/assets/gpack/travian_default/lang/en/t2/u05.gif similarity index 100% rename from gpack/travian_default/lang/en/t2/u05.gif rename to assets/gpack/travian_default/lang/en/t2/u05.gif diff --git a/gpack/travian_default/lang/en/t2/u06.gif b/assets/gpack/travian_default/lang/en/t2/u06.gif similarity index 100% rename from gpack/travian_default/lang/en/t2/u06.gif rename to assets/gpack/travian_default/lang/en/t2/u06.gif diff --git a/gpack/travian_default/lang/en/t2/u07.gif b/assets/gpack/travian_default/lang/en/t2/u07.gif similarity index 100% rename from gpack/travian_default/lang/en/t2/u07.gif rename to assets/gpack/travian_default/lang/en/t2/u07.gif diff --git a/gpack/travian_default/lang/en/t2/u22.gif b/assets/gpack/travian_default/lang/en/t2/u22.gif similarity index 100% rename from gpack/travian_default/lang/en/t2/u22.gif rename to assets/gpack/travian_default/lang/en/t2/u22.gif diff --git a/gpack/travian_default/img/index.php b/assets/gpack/travian_default/lang/index.php similarity index 100% rename from gpack/travian_default/img/index.php rename to assets/gpack/travian_default/lang/index.php diff --git a/gpack/travian_default/img/l/index.php b/assets/gpack/travian_default/modules/index.php similarity index 100% rename from gpack/travian_default/img/l/index.php rename to assets/gpack/travian_default/modules/index.php diff --git a/gpack/travian_default/modules/new_colors.css b/assets/gpack/travian_default/modules/new_colors.css similarity index 100% rename from gpack/travian_default/modules/new_colors.css rename to assets/gpack/travian_default/modules/new_colors.css diff --git a/gpack/travian_default/modules/new_images.css b/assets/gpack/travian_default/modules/new_images.css similarity index 100% rename from gpack/travian_default/modules/new_images.css rename to assets/gpack/travian_default/modules/new_images.css diff --git a/gpack/travian_default/modules/new_layout_ltr.css b/assets/gpack/travian_default/modules/new_layout_ltr.css similarity index 100% rename from gpack/travian_default/modules/new_layout_ltr.css rename to assets/gpack/travian_default/modules/new_layout_ltr.css diff --git a/gpack/travian_default/travian.css b/assets/gpack/travian_default/travian.css similarity index 100% rename from gpack/travian_default/travian.css rename to assets/gpack/travian_default/travian.css diff --git a/gpack/travian_t4/bodybg_fix.jpg b/assets/gpack/travian_t4/bodybg_fix.jpg similarity index 100% rename from gpack/travian_t4/bodybg_fix.jpg rename to assets/gpack/travian_t4/bodybg_fix.jpg diff --git a/gpack/travian_t4/images/artwork1-ltr.jpg b/assets/gpack/travian_t4/images/artwork1-ltr.jpg similarity index 100% rename from gpack/travian_t4/images/artwork1-ltr.jpg rename to assets/gpack/travian_t4/images/artwork1-ltr.jpg diff --git a/gpack/travian_t4/images/artwork2-ltr.jpg b/assets/gpack/travian_t4/images/artwork2-ltr.jpg similarity index 100% rename from gpack/travian_t4/images/artwork2-ltr.jpg rename to assets/gpack/travian_t4/images/artwork2-ltr.jpg diff --git a/gpack/travian_t4/images/banner-zravianx.png b/assets/gpack/travian_t4/images/banner-zravianx.png similarity index 100% rename from gpack/travian_t4/images/banner-zravianx.png rename to assets/gpack/travian_t4/images/banner-zravianx.png diff --git a/gpack/travian_t4/images/footer_background.gif b/assets/gpack/travian_t4/images/footer_background.gif similarity index 100% rename from gpack/travian_t4/images/footer_background.gif rename to assets/gpack/travian_t4/images/footer_background.gif diff --git a/gpack/travian_t4/images/footer_logo.gif b/assets/gpack/travian_t4/images/footer_logo.gif similarity index 100% rename from gpack/travian_t4/images/footer_logo.gif rename to assets/gpack/travian_t4/images/footer_logo.gif diff --git a/gpack/travian_t4/images/footer_logo.png b/assets/gpack/travian_t4/images/footer_logo.png similarity index 100% rename from gpack/travian_t4/images/footer_logo.png rename to assets/gpack/travian_t4/images/footer_logo.png diff --git a/gpack/travian_t4/images/footer_logo.psd b/assets/gpack/travian_t4/images/footer_logo.psd similarity index 100% rename from gpack/travian_t4/images/footer_logo.psd rename to assets/gpack/travian_t4/images/footer_logo.psd diff --git a/gpack/travian_t4/images/footer_logo_old.gif b/assets/gpack/travian_t4/images/footer_logo_old.gif similarity index 100% rename from gpack/travian_t4/images/footer_logo_old.gif rename to assets/gpack/travian_t4/images/footer_logo_old.gif diff --git a/gpack/travian_t4/images/footer_logo_zravianx.gif b/assets/gpack/travian_t4/images/footer_logo_zravianx.gif similarity index 100% rename from gpack/travian_t4/images/footer_logo_zravianx.gif rename to assets/gpack/travian_t4/images/footer_logo_zravianx.gif diff --git a/gpack/travian_t4/images/header_background.jpg b/assets/gpack/travian_t4/images/header_background.jpg similarity index 100% rename from gpack/travian_t4/images/header_background.jpg rename to assets/gpack/travian_t4/images/header_background.jpg diff --git a/gpack/travian_default/img/m/index.php b/assets/gpack/travian_t4/images/index.php similarity index 100% rename from gpack/travian_default/img/m/index.php rename to assets/gpack/travian_t4/images/index.php diff --git a/gpack/travian_t4/images/m1-ltr.gif b/assets/gpack/travian_t4/images/m1-ltr.gif similarity index 100% rename from gpack/travian_t4/images/m1-ltr.gif rename to assets/gpack/travian_t4/images/m1-ltr.gif diff --git a/gpack/travian_t4/images/m2-ltr.gif b/assets/gpack/travian_t4/images/m2-ltr.gif similarity index 100% rename from gpack/travian_t4/images/m2-ltr.gif rename to assets/gpack/travian_t4/images/m2-ltr.gif diff --git a/gpack/travian_t4/images/m3-ltr.gif b/assets/gpack/travian_t4/images/m3-ltr.gif similarity index 100% rename from gpack/travian_t4/images/m3-ltr.gif rename to assets/gpack/travian_t4/images/m3-ltr.gif diff --git a/gpack/travian_t4/images/m4-ltr.gif b/assets/gpack/travian_t4/images/m4-ltr.gif similarity index 100% rename from gpack/travian_t4/images/m4-ltr.gif rename to assets/gpack/travian_t4/images/m4-ltr.gif diff --git a/gpack/travian_t4/images/menu-bg-ltr.gif b/assets/gpack/travian_t4/images/menu-bg-ltr.gif similarity index 100% rename from gpack/travian_t4/images/menu-bg-ltr.gif rename to assets/gpack/travian_t4/images/menu-bg-ltr.gif diff --git a/gpack/travian_t4/images/n1-ltr.gif b/assets/gpack/travian_t4/images/n1-ltr.gif similarity index 100% rename from gpack/travian_t4/images/n1-ltr.gif rename to assets/gpack/travian_t4/images/n1-ltr.gif diff --git a/gpack/travian_t4/images/n2-ltr.gif b/assets/gpack/travian_t4/images/n2-ltr.gif similarity index 100% rename from gpack/travian_t4/images/n2-ltr.gif rename to assets/gpack/travian_t4/images/n2-ltr.gif diff --git a/gpack/travian_t4/images/n3-ltr.gif b/assets/gpack/travian_t4/images/n3-ltr.gif similarity index 100% rename from gpack/travian_t4/images/n3-ltr.gif rename to assets/gpack/travian_t4/images/n3-ltr.gif diff --git a/gpack/travian_t4/images/n4-ltr.gif b/assets/gpack/travian_t4/images/n4-ltr.gif similarity index 100% rename from gpack/travian_t4/images/n4-ltr.gif rename to assets/gpack/travian_t4/images/n4-ltr.gif diff --git a/gpack/travian_t4/images/plus_active-ltr.gif b/assets/gpack/travian_t4/images/plus_active-ltr.gif similarity index 100% rename from gpack/travian_t4/images/plus_active-ltr.gif rename to assets/gpack/travian_t4/images/plus_active-ltr.gif diff --git a/gpack/travian_t4/images/plus_bg.gif b/assets/gpack/travian_t4/images/plus_bg.gif similarity index 100% rename from gpack/travian_t4/images/plus_bg.gif rename to assets/gpack/travian_t4/images/plus_bg.gif diff --git a/gpack/travian_t4/images/plus_inactive-ltr.gif b/assets/gpack/travian_t4/images/plus_inactive-ltr.gif similarity index 100% rename from gpack/travian_t4/images/plus_inactive-ltr.gif rename to assets/gpack/travian_t4/images/plus_inactive-ltr.gif diff --git a/gpack/travian_t4/images/plus_start-ltr.gif b/assets/gpack/travian_t4/images/plus_start-ltr.gif similarity index 100% rename from gpack/travian_t4/images/plus_start-ltr.gif rename to assets/gpack/travian_t4/images/plus_start-ltr.gif diff --git a/gpack/travian_t4/images/shadow-a-ltr.png b/assets/gpack/travian_t4/images/shadow-a-ltr.png similarity index 100% rename from gpack/travian_t4/images/shadow-a-ltr.png rename to assets/gpack/travian_t4/images/shadow-a-ltr.png diff --git a/gpack/travian_t4/images/shadow-b-ltr.png b/assets/gpack/travian_t4/images/shadow-b-ltr.png similarity index 100% rename from gpack/travian_t4/images/shadow-b-ltr.png rename to assets/gpack/travian_t4/images/shadow-b-ltr.png diff --git a/gpack/travian_t4/img/a/acc.gif b/assets/gpack/travian_t4/img/a/acc.gif similarity index 100% rename from gpack/travian_t4/img/a/acc.gif rename to assets/gpack/travian_t4/img/a/acc.gif diff --git a/gpack/travian_t4/img/a/adr.gif b/assets/gpack/travian_t4/img/a/adr.gif similarity index 100% rename from gpack/travian_t4/img/a/adr.gif rename to assets/gpack/travian_t4/img/a/adr.gif diff --git a/gpack/travian_t4/img/a/adr_rtl.gif b/assets/gpack/travian_t4/img/a/adr_rtl.gif similarity index 100% rename from gpack/travian_t4/img/a/adr_rtl.gif rename to assets/gpack/travian_t4/img/a/adr_rtl.gif diff --git a/gpack/travian_t4/img/a/anl.gif b/assets/gpack/travian_t4/img/a/anl.gif similarity index 100% rename from gpack/travian_t4/img/a/anl.gif rename to assets/gpack/travian_t4/img/a/anl.gif diff --git a/gpack/travian_t4/img/a/anl_rtl.gif b/assets/gpack/travian_t4/img/a/anl_rtl.gif similarity index 100% rename from gpack/travian_t4/img/a/anl_rtl.gif rename to assets/gpack/travian_t4/img/a/anl_rtl.gif diff --git a/gpack/travian_t4/img/a/att1.gif b/assets/gpack/travian_t4/img/a/att1.gif similarity index 100% rename from gpack/travian_t4/img/a/att1.gif rename to assets/gpack/travian_t4/img/a/att1.gif diff --git a/gpack/travian_t4/img/a/att2.gif b/assets/gpack/travian_t4/img/a/att2.gif similarity index 100% rename from gpack/travian_t4/img/a/att2.gif rename to assets/gpack/travian_t4/img/a/att2.gif diff --git a/gpack/travian_t4/img/a/att3.gif b/assets/gpack/travian_t4/img/a/att3.gif similarity index 100% rename from gpack/travian_t4/img/a/att3.gif rename to assets/gpack/travian_t4/img/a/att3.gif diff --git a/gpack/travian_t4/img/a/att_all.gif b/assets/gpack/travian_t4/img/a/att_all.gif similarity index 100% rename from gpack/travian_t4/img/a/att_all.gif rename to assets/gpack/travian_t4/img/a/att_all.gif diff --git a/gpack/travian_t4/img/a/attack_symbol.gif b/assets/gpack/travian_t4/img/a/attack_symbol.gif similarity index 100% rename from gpack/travian_t4/img/a/attack_symbol.gif rename to assets/gpack/travian_t4/img/a/attack_symbol.gif diff --git a/gpack/travian_t4/img/a/b6.gif b/assets/gpack/travian_t4/img/a/b6.gif similarity index 100% rename from gpack/travian_t4/img/a/b6.gif rename to assets/gpack/travian_t4/img/a/b6.gif diff --git a/gpack/travian_t4/img/a/bau.gif b/assets/gpack/travian_t4/img/a/bau.gif similarity index 100% rename from gpack/travian_t4/img/a/bau.gif rename to assets/gpack/travian_t4/img/a/bau.gif diff --git a/gpack/travian_t4/img/a/btm.gif b/assets/gpack/travian_t4/img/a/btm.gif similarity index 100% rename from gpack/travian_t4/img/a/btm.gif rename to assets/gpack/travian_t4/img/a/btm.gif diff --git a/gpack/travian_t4/img/a/buildings.gif b/assets/gpack/travian_t4/img/a/buildings.gif similarity index 100% rename from gpack/travian_t4/img/a/buildings.gif rename to assets/gpack/travian_t4/img/a/buildings.gif diff --git a/gpack/travian_t4/img/a/c2.gif b/assets/gpack/travian_t4/img/a/c2.gif similarity index 100% rename from gpack/travian_t4/img/a/c2.gif rename to assets/gpack/travian_t4/img/a/c2.gif diff --git a/gpack/travian_t4/img/a/c3.gif b/assets/gpack/travian_t4/img/a/c3.gif similarity index 100% rename from gpack/travian_t4/img/a/c3.gif rename to assets/gpack/travian_t4/img/a/c3.gif diff --git a/gpack/travian_t4/img/a/car.gif b/assets/gpack/travian_t4/img/a/car.gif similarity index 100% rename from gpack/travian_t4/img/a/car.gif rename to assets/gpack/travian_t4/img/a/car.gif diff --git a/gpack/travian_t4/img/a/clock-inactive.gif b/assets/gpack/travian_t4/img/a/clock-inactive.gif similarity index 100% rename from gpack/travian_t4/img/a/clock-inactive.gif rename to assets/gpack/travian_t4/img/a/clock-inactive.gif diff --git a/gpack/travian_t4/img/a/clock.gif b/assets/gpack/travian_t4/img/a/clock.gif similarity index 100% rename from gpack/travian_t4/img/a/clock.gif rename to assets/gpack/travian_t4/img/a/clock.gif diff --git a/gpack/travian_t4/img/a/close.gif b/assets/gpack/travian_t4/img/a/close.gif similarity index 100% rename from gpack/travian_t4/img/a/close.gif rename to assets/gpack/travian_t4/img/a/close.gif diff --git a/gpack/travian_t4/img/a/closed.gif b/assets/gpack/travian_t4/img/a/closed.gif similarity index 100% rename from gpack/travian_t4/img/a/closed.gif rename to assets/gpack/travian_t4/img/a/closed.gif diff --git a/gpack/travian_t4/img/a/def1.gif b/assets/gpack/travian_t4/img/a/def1.gif similarity index 100% rename from gpack/travian_t4/img/a/def1.gif rename to assets/gpack/travian_t4/img/a/def1.gif diff --git a/gpack/travian_t4/img/a/def2.gif b/assets/gpack/travian_t4/img/a/def2.gif similarity index 100% rename from gpack/travian_t4/img/a/def2.gif rename to assets/gpack/travian_t4/img/a/def2.gif diff --git a/gpack/travian_t4/img/a/def3.gif b/assets/gpack/travian_t4/img/a/def3.gif similarity index 100% rename from gpack/travian_t4/img/a/def3.gif rename to assets/gpack/travian_t4/img/a/def3.gif diff --git a/gpack/travian_t4/img/a/def_all.gif b/assets/gpack/travian_t4/img/a/def_all.gif similarity index 100% rename from gpack/travian_t4/img/a/def_all.gif rename to assets/gpack/travian_t4/img/a/def_all.gif diff --git a/gpack/travian_t4/img/a/def_c.gif b/assets/gpack/travian_t4/img/a/def_c.gif similarity index 100% rename from gpack/travian_t4/img/a/def_c.gif rename to assets/gpack/travian_t4/img/a/def_c.gif diff --git a/gpack/travian_t4/img/a/def_i.gif b/assets/gpack/travian_t4/img/a/def_i.gif similarity index 100% rename from gpack/travian_t4/img/a/def_i.gif rename to assets/gpack/travian_t4/img/a/def_i.gif diff --git a/gpack/travian_t4/img/a/del.gif b/assets/gpack/travian_t4/img/a/del.gif similarity index 100% rename from gpack/travian_t4/img/a/del.gif rename to assets/gpack/travian_t4/img/a/del.gif diff --git a/gpack/travian_t4/img/a/del_g.gif b/assets/gpack/travian_t4/img/a/del_g.gif similarity index 100% rename from gpack/travian_t4/img/a/del_g.gif rename to assets/gpack/travian_t4/img/a/del_g.gif diff --git a/gpack/travian_t4/img/a/external.gif b/assets/gpack/travian_t4/img/a/external.gif similarity index 100% rename from gpack/travian_t4/img/a/external.gif rename to assets/gpack/travian_t4/img/a/external.gif diff --git a/gpack/travian_t4/img/a/f1 Kopie.jpg b/assets/gpack/travian_t4/img/a/f1 Kopie.jpg similarity index 100% rename from gpack/travian_t4/img/a/f1 Kopie.jpg rename to assets/gpack/travian_t4/img/a/f1 Kopie.jpg diff --git a/gpack/travian_t4/img/a/firefox.gif b/assets/gpack/travian_t4/img/a/firefox.gif similarity index 100% rename from gpack/travian_t4/img/a/firefox.gif rename to assets/gpack/travian_t4/img/a/firefox.gif diff --git a/gpack/travian_t4/img/a/friends.gif b/assets/gpack/travian_t4/img/a/friends.gif similarity index 100% rename from gpack/travian_t4/img/a/friends.gif rename to assets/gpack/travian_t4/img/a/friends.gif diff --git a/gpack/travian_t4/img/a/gold.gif b/assets/gpack/travian_t4/img/a/gold.gif similarity index 100% rename from gpack/travian_t4/img/a/gold.gif rename to assets/gpack/travian_t4/img/a/gold.gif diff --git a/gpack/travian_t4/img/a/gold_g.gif b/assets/gpack/travian_t4/img/a/gold_g.gif similarity index 100% rename from gpack/travian_t4/img/a/gold_g.gif rename to assets/gpack/travian_t4/img/a/gold_g.gif diff --git a/gpack/travian_t4/img/a/gp.gif b/assets/gpack/travian_t4/img/a/gp.gif similarity index 100% rename from gpack/travian_t4/img/a/gp.gif rename to assets/gpack/travian_t4/img/a/gp.gif diff --git a/gpack/travian_t4/img/a/help.gif b/assets/gpack/travian_t4/img/a/help.gif similarity index 100% rename from gpack/travian_t4/img/a/help.gif rename to assets/gpack/travian_t4/img/a/help.gif diff --git a/gpack/travian_t4/img/a/ie.gif b/assets/gpack/travian_t4/img/a/ie.gif similarity index 100% rename from gpack/travian_t4/img/a/ie.gif rename to assets/gpack/travian_t4/img/a/ie.gif diff --git a/gpack/travian_default/img/misc/index.php b/assets/gpack/travian_t4/img/a/index.php similarity index 100% rename from gpack/travian_default/img/misc/index.php rename to assets/gpack/travian_t4/img/a/index.php diff --git a/gpack/travian_t4/img/a/minus.gif b/assets/gpack/travian_t4/img/a/minus.gif similarity index 100% rename from gpack/travian_t4/img/a/minus.gif rename to assets/gpack/travian_t4/img/a/minus.gif diff --git a/gpack/travian_t4/img/a/n.gif b/assets/gpack/travian_t4/img/a/n.gif similarity index 100% rename from gpack/travian_t4/img/a/n.gif rename to assets/gpack/travian_t4/img/a/n.gif diff --git a/gpack/travian_t4/img/a/n12.gif b/assets/gpack/travian_t4/img/a/n12.gif similarity index 100% rename from gpack/travian_t4/img/a/n12.gif rename to assets/gpack/travian_t4/img/a/n12.gif diff --git a/gpack/travian_t4/img/a/n_rtl.gif b/assets/gpack/travian_t4/img/a/n_rtl.gif similarity index 100% rename from gpack/travian_t4/img/a/n_rtl.gif rename to assets/gpack/travian_t4/img/a/n_rtl.gif diff --git a/gpack/travian_t4/img/a/navi.gif b/assets/gpack/travian_t4/img/a/navi.gif similarity index 100% rename from gpack/travian_t4/img/a/navi.gif rename to assets/gpack/travian_t4/img/a/navi.gif diff --git a/gpack/travian_t4/img/a/npc.gif b/assets/gpack/travian_t4/img/a/npc.gif similarity index 100% rename from gpack/travian_t4/img/a/npc.gif rename to assets/gpack/travian_t4/img/a/npc.gif diff --git a/gpack/travian_t4/img/a/online.gif b/assets/gpack/travian_t4/img/a/online.gif similarity index 100% rename from gpack/travian_t4/img/a/online.gif rename to assets/gpack/travian_t4/img/a/online.gif diff --git a/gpack/travian_t4/img/a/online1.gif b/assets/gpack/travian_t4/img/a/online1.gif similarity index 100% rename from gpack/travian_t4/img/a/online1.gif rename to assets/gpack/travian_t4/img/a/online1.gif diff --git a/gpack/travian_t4/img/a/online2.gif b/assets/gpack/travian_t4/img/a/online2.gif similarity index 100% rename from gpack/travian_t4/img/a/online2.gif rename to assets/gpack/travian_t4/img/a/online2.gif diff --git a/gpack/travian_t4/img/a/online3.gif b/assets/gpack/travian_t4/img/a/online3.gif similarity index 100% rename from gpack/travian_t4/img/a/online3.gif rename to assets/gpack/travian_t4/img/a/online3.gif diff --git a/gpack/travian_t4/img/a/online4.gif b/assets/gpack/travian_t4/img/a/online4.gif similarity index 100% rename from gpack/travian_t4/img/a/online4.gif rename to assets/gpack/travian_t4/img/a/online4.gif diff --git a/gpack/travian_t4/img/a/online5.gif b/assets/gpack/travian_t4/img/a/online5.gif similarity index 100% rename from gpack/travian_t4/img/a/online5.gif rename to assets/gpack/travian_t4/img/a/online5.gif diff --git a/gpack/travian_t4/img/a/online6.gif b/assets/gpack/travian_t4/img/a/online6.gif similarity index 100% rename from gpack/travian_t4/img/a/online6.gif rename to assets/gpack/travian_t4/img/a/online6.gif diff --git a/gpack/travian_t4/img/a/opened.gif b/assets/gpack/travian_t4/img/a/opened.gif similarity index 100% rename from gpack/travian_t4/img/a/opened.gif rename to assets/gpack/travian_t4/img/a/opened.gif diff --git a/gpack/travian_t4/img/a/opera.gif b/assets/gpack/travian_t4/img/a/opera.gif similarity index 100% rename from gpack/travian_t4/img/a/opera.gif rename to assets/gpack/travian_t4/img/a/opera.gif diff --git a/gpack/travian_t4/img/a/plus.gif b/assets/gpack/travian_t4/img/a/plus.gif similarity index 100% rename from gpack/travian_t4/img/a/plus.gif rename to assets/gpack/travian_t4/img/a/plus.gif diff --git a/gpack/travian_t4/img/a/rand.gif b/assets/gpack/travian_t4/img/a/rand.gif similarity index 100% rename from gpack/travian_t4/img/a/rand.gif rename to assets/gpack/travian_t4/img/a/rand.gif diff --git a/gpack/travian_t4/img/a/refresh.png b/assets/gpack/travian_t4/img/a/refresh.png similarity index 100% rename from gpack/travian_t4/img/a/refresh.png rename to assets/gpack/travian_t4/img/a/refresh.png diff --git a/gpack/travian_t4/img/a/report_icons.gif b/assets/gpack/travian_t4/img/a/report_icons.gif similarity index 100% rename from gpack/travian_t4/img/a/report_icons.gif rename to assets/gpack/travian_t4/img/a/report_icons.gif diff --git a/gpack/travian_t4/img/a/res2.gif b/assets/gpack/travian_t4/img/a/res2.gif similarity index 100% rename from gpack/travian_t4/img/a/res2.gif rename to assets/gpack/travian_t4/img/a/res2.gif diff --git a/gpack/travian_t4/img/a/s.gif b/assets/gpack/travian_t4/img/a/s.gif similarity index 100% rename from gpack/travian_t4/img/a/s.gif rename to assets/gpack/travian_t4/img/a/s.gif diff --git a/gpack/travian_t4/img/a/troops.gif b/assets/gpack/travian_t4/img/a/troops.gif similarity index 100% rename from gpack/travian_t4/img/a/troops.gif rename to assets/gpack/travian_t4/img/a/troops.gif diff --git a/gpack/travian_t4/img/a/unknown.gif b/assets/gpack/travian_t4/img/a/unknown.gif similarity index 100% rename from gpack/travian_t4/img/a/unknown.gif rename to assets/gpack/travian_t4/img/a/unknown.gif diff --git a/gpack/travian_t4/img/a/w.gif b/assets/gpack/travian_t4/img/a/w.gif similarity index 100% rename from gpack/travian_t4/img/a/w.gif rename to assets/gpack/travian_t4/img/a/w.gif diff --git a/gpack/travian_t4/img/a/x.gif b/assets/gpack/travian_t4/img/a/x.gif similarity index 100% rename from gpack/travian_t4/img/a/x.gif rename to assets/gpack/travian_t4/img/a/x.gif diff --git a/gpack/travian_default/img/msg/index.php b/assets/gpack/travian_t4/img/artefact/index.php similarity index 100% rename from gpack/travian_default/img/msg/index.php rename to assets/gpack/travian_t4/img/artefact/index.php diff --git a/gpack/travian_t4/img/artefact/type-1.gif b/assets/gpack/travian_t4/img/artefact/type-1.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type-1.gif rename to assets/gpack/travian_t4/img/artefact/type-1.gif diff --git a/gpack/travian_t4/img/artefact/type-10.gif b/assets/gpack/travian_t4/img/artefact/type-10.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type-10.gif rename to assets/gpack/travian_t4/img/artefact/type-10.gif diff --git a/gpack/travian_t4/img/artefact/type-2.gif b/assets/gpack/travian_t4/img/artefact/type-2.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type-2.gif rename to assets/gpack/travian_t4/img/artefact/type-2.gif diff --git a/gpack/travian_t4/img/artefact/type-4.gif b/assets/gpack/travian_t4/img/artefact/type-4.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type-4.gif rename to assets/gpack/travian_t4/img/artefact/type-4.gif diff --git a/gpack/travian_t4/img/artefact/type-5.gif b/assets/gpack/travian_t4/img/artefact/type-5.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type-5.gif rename to assets/gpack/travian_t4/img/artefact/type-5.gif diff --git a/gpack/travian_t4/img/artefact/type-6.gif b/assets/gpack/travian_t4/img/artefact/type-6.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type-6.gif rename to assets/gpack/travian_t4/img/artefact/type-6.gif diff --git a/gpack/travian_t4/img/artefact/type-8.gif b/assets/gpack/travian_t4/img/artefact/type-8.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type-8.gif rename to assets/gpack/travian_t4/img/artefact/type-8.gif diff --git a/gpack/travian_t4/img/artefact/type-9.gif b/assets/gpack/travian_t4/img/artefact/type-9.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type-9.gif rename to assets/gpack/travian_t4/img/artefact/type-9.gif diff --git a/gpack/travian_t4/img/artefact/type-fool.gif b/assets/gpack/travian_t4/img/artefact/type-fool.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type-fool.gif rename to assets/gpack/travian_t4/img/artefact/type-fool.gif diff --git a/gpack/travian_t4/img/artefact/type1.gif b/assets/gpack/travian_t4/img/artefact/type1.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type1.gif rename to assets/gpack/travian_t4/img/artefact/type1.gif diff --git a/gpack/travian_t4/img/artefact/type2.gif b/assets/gpack/travian_t4/img/artefact/type2.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type2.gif rename to assets/gpack/travian_t4/img/artefact/type2.gif diff --git a/gpack/travian_t4/img/artefact/type3.gif b/assets/gpack/travian_t4/img/artefact/type3.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type3.gif rename to assets/gpack/travian_t4/img/artefact/type3.gif diff --git a/gpack/travian_t4/img/artefact/type4.gif b/assets/gpack/travian_t4/img/artefact/type4.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type4.gif rename to assets/gpack/travian_t4/img/artefact/type4.gif diff --git a/gpack/travian_t4/img/artefact/type5.gif b/assets/gpack/travian_t4/img/artefact/type5.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type5.gif rename to assets/gpack/travian_t4/img/artefact/type5.gif diff --git a/gpack/travian_t4/img/artefact/type6.gif b/assets/gpack/travian_t4/img/artefact/type6.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type6.gif rename to assets/gpack/travian_t4/img/artefact/type6.gif diff --git a/gpack/travian_t4/img/artefact/type7.gif b/assets/gpack/travian_t4/img/artefact/type7.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type7.gif rename to assets/gpack/travian_t4/img/artefact/type7.gif diff --git a/gpack/travian_t4/img/artefact/type8.gif b/assets/gpack/travian_t4/img/artefact/type8.gif similarity index 100% rename from gpack/travian_t4/img/artefact/type8.gif rename to assets/gpack/travian_t4/img/artefact/type8.gif diff --git a/gpack/travian_t4/img/artefact/typeww.gif b/assets/gpack/travian_t4/img/artefact/typeww.gif similarity index 100% rename from gpack/travian_t4/img/artefact/typeww.gif rename to assets/gpack/travian_t4/img/artefact/typeww.gif diff --git a/gpack/travian_t4/img/f/c4.gif b/assets/gpack/travian_t4/img/f/c4.gif similarity index 100% rename from gpack/travian_t4/img/f/c4.gif rename to assets/gpack/travian_t4/img/f/c4.gif diff --git a/gpack/travian_t4/img/f/del.gif b/assets/gpack/travian_t4/img/f/del.gif similarity index 100% rename from gpack/travian_t4/img/f/del.gif rename to assets/gpack/travian_t4/img/f/del.gif diff --git a/gpack/travian_t4/img/f/down_arr.gif b/assets/gpack/travian_t4/img/f/down_arr.gif similarity index 100% rename from gpack/travian_t4/img/f/down_arr.gif rename to assets/gpack/travian_t4/img/f/down_arr.gif diff --git a/gpack/travian_t4/img/f/edit.gif b/assets/gpack/travian_t4/img/f/edit.gif similarity index 100% rename from gpack/travian_t4/img/f/edit.gif rename to assets/gpack/travian_t4/img/f/edit.gif diff --git a/gpack/travian_t4/img/f/folder.gif b/assets/gpack/travian_t4/img/f/folder.gif similarity index 100% rename from gpack/travian_t4/img/f/folder.gif rename to assets/gpack/travian_t4/img/f/folder.gif diff --git a/gpack/travian_t4/img/f/folder_lock.gif b/assets/gpack/travian_t4/img/f/folder_lock.gif similarity index 100% rename from gpack/travian_t4/img/f/folder_lock.gif rename to assets/gpack/travian_t4/img/f/folder_lock.gif diff --git a/gpack/travian_t4/img/f/folder_new.gif b/assets/gpack/travian_t4/img/f/folder_new.gif similarity index 100% rename from gpack/travian_t4/img/f/folder_new.gif rename to assets/gpack/travian_t4/img/f/folder_new.gif diff --git a/gpack/travian_t4/img/f/folder_new_lock.gif b/assets/gpack/travian_t4/img/f/folder_new_lock.gif similarity index 100% rename from gpack/travian_t4/img/f/folder_new_lock.gif rename to assets/gpack/travian_t4/img/f/folder_new_lock.gif diff --git a/gpack/travian_t4/img/f/folder_new_sticky.gif b/assets/gpack/travian_t4/img/f/folder_new_sticky.gif similarity index 100% rename from gpack/travian_t4/img/f/folder_new_sticky.gif rename to assets/gpack/travian_t4/img/f/folder_new_sticky.gif diff --git a/gpack/travian_t4/img/f/folder_new_sticky_lock.gif b/assets/gpack/travian_t4/img/f/folder_new_sticky_lock.gif similarity index 100% rename from gpack/travian_t4/img/f/folder_new_sticky_lock.gif rename to assets/gpack/travian_t4/img/f/folder_new_sticky_lock.gif diff --git a/gpack/travian_t4/img/f/folder_sticky.gif b/assets/gpack/travian_t4/img/f/folder_sticky.gif similarity index 100% rename from gpack/travian_t4/img/f/folder_sticky.gif rename to assets/gpack/travian_t4/img/f/folder_sticky.gif diff --git a/gpack/travian_t4/img/f/folder_sticky_lock.gif b/assets/gpack/travian_t4/img/f/folder_sticky_lock.gif similarity index 100% rename from gpack/travian_t4/img/f/folder_sticky_lock.gif rename to assets/gpack/travian_t4/img/f/folder_sticky_lock.gif diff --git a/gpack/travian_t4/img/f/icon_latest_reply.gif b/assets/gpack/travian_t4/img/f/icon_latest_reply.gif similarity index 100% rename from gpack/travian_t4/img/f/icon_latest_reply.gif rename to assets/gpack/travian_t4/img/f/icon_latest_reply.gif diff --git a/gpack/travian_default/img/new/index.php b/assets/gpack/travian_t4/img/f/index.php similarity index 100% rename from gpack/travian_default/img/new/index.php rename to assets/gpack/travian_t4/img/f/index.php diff --git a/gpack/travian_t4/img/f/lock.gif b/assets/gpack/travian_t4/img/f/lock.gif similarity index 100% rename from gpack/travian_t4/img/f/lock.gif rename to assets/gpack/travian_t4/img/f/lock.gif diff --git a/gpack/travian_t4/img/f/mad.gif b/assets/gpack/travian_t4/img/f/mad.gif similarity index 100% rename from gpack/travian_t4/img/f/mad.gif rename to assets/gpack/travian_t4/img/f/mad.gif diff --git a/gpack/travian_t4/img/f/pin.gif b/assets/gpack/travian_t4/img/f/pin.gif similarity index 100% rename from gpack/travian_t4/img/f/pin.gif rename to assets/gpack/travian_t4/img/f/pin.gif diff --git a/gpack/travian_t4/img/f/plus.gif b/assets/gpack/travian_t4/img/f/plus.gif similarity index 100% rename from gpack/travian_t4/img/f/plus.gif rename to assets/gpack/travian_t4/img/f/plus.gif diff --git a/gpack/travian_t4/img/f/smileys.gif b/assets/gpack/travian_t4/img/f/smileys.gif similarity index 100% rename from gpack/travian_t4/img/f/smileys.gif rename to assets/gpack/travian_t4/img/f/smileys.gif diff --git a/gpack/travian_t4/img/f/stats_left.gif b/assets/gpack/travian_t4/img/f/stats_left.gif similarity index 100% rename from gpack/travian_t4/img/f/stats_left.gif rename to assets/gpack/travian_t4/img/f/stats_left.gif diff --git a/gpack/travian_t4/img/f/stats_middle.gif b/assets/gpack/travian_t4/img/f/stats_middle.gif similarity index 100% rename from gpack/travian_t4/img/f/stats_middle.gif rename to assets/gpack/travian_t4/img/f/stats_middle.gif diff --git a/gpack/travian_t4/img/f/stats_right.gif b/assets/gpack/travian_t4/img/f/stats_right.gif similarity index 100% rename from gpack/travian_t4/img/f/stats_right.gif rename to assets/gpack/travian_t4/img/f/stats_right.gif diff --git a/gpack/travian_t4/img/f/switch_admin.gif b/assets/gpack/travian_t4/img/f/switch_admin.gif similarity index 100% rename from gpack/travian_t4/img/f/switch_admin.gif rename to assets/gpack/travian_t4/img/f/switch_admin.gif diff --git a/gpack/travian_t4/img/f/unlock.gif b/assets/gpack/travian_t4/img/f/unlock.gif similarity index 100% rename from gpack/travian_t4/img/f/unlock.gif rename to assets/gpack/travian_t4/img/f/unlock.gif diff --git a/gpack/travian_t4/img/f/unpin.gif b/assets/gpack/travian_t4/img/f/unpin.gif similarity index 100% rename from gpack/travian_t4/img/f/unpin.gif rename to assets/gpack/travian_t4/img/f/unpin.gif diff --git a/gpack/travian_t4/img/f/up_arr.gif b/assets/gpack/travian_t4/img/f/up_arr.gif similarity index 100% rename from gpack/travian_t4/img/f/up_arr.gif rename to assets/gpack/travian_t4/img/f/up_arr.gif diff --git a/gpack/travian_t4/img/f/v_folder.gif b/assets/gpack/travian_t4/img/f/v_folder.gif similarity index 100% rename from gpack/travian_t4/img/f/v_folder.gif rename to assets/gpack/travian_t4/img/f/v_folder.gif diff --git a/gpack/travian_t4/img/f/v_folder_lock.gif b/assets/gpack/travian_t4/img/f/v_folder_lock.gif similarity index 100% rename from gpack/travian_t4/img/f/v_folder_lock.gif rename to assets/gpack/travian_t4/img/f/v_folder_lock.gif diff --git a/gpack/travian_t4/img/f/v_folder_new.gif b/assets/gpack/travian_t4/img/f/v_folder_new.gif similarity index 100% rename from gpack/travian_t4/img/f/v_folder_new.gif rename to assets/gpack/travian_t4/img/f/v_folder_new.gif diff --git a/gpack/travian_t4/img/f/v_folder_new_lock.gif b/assets/gpack/travian_t4/img/f/v_folder_new_lock.gif similarity index 100% rename from gpack/travian_t4/img/f/v_folder_new_lock.gif rename to assets/gpack/travian_t4/img/f/v_folder_new_lock.gif diff --git a/gpack/travian_t4/img/f/v_folder_new_sticky.gif b/assets/gpack/travian_t4/img/f/v_folder_new_sticky.gif similarity index 100% rename from gpack/travian_t4/img/f/v_folder_new_sticky.gif rename to assets/gpack/travian_t4/img/f/v_folder_new_sticky.gif diff --git a/gpack/travian_t4/img/f/v_folder_new_sticky_lock.gif b/assets/gpack/travian_t4/img/f/v_folder_new_sticky_lock.gif similarity index 100% rename from gpack/travian_t4/img/f/v_folder_new_sticky_lock.gif rename to assets/gpack/travian_t4/img/f/v_folder_new_sticky_lock.gif diff --git a/gpack/travian_t4/img/f/v_folder_sticky.gif b/assets/gpack/travian_t4/img/f/v_folder_sticky.gif similarity index 100% rename from gpack/travian_t4/img/f/v_folder_sticky.gif rename to assets/gpack/travian_t4/img/f/v_folder_sticky.gif diff --git a/gpack/travian_t4/img/f/v_folder_sticky_lock.gif b/assets/gpack/travian_t4/img/f/v_folder_sticky_lock.gif similarity index 100% rename from gpack/travian_t4/img/f/v_folder_sticky_lock.gif rename to assets/gpack/travian_t4/img/f/v_folder_sticky_lock.gif diff --git a/gpack/travian_t4/img/g/bg0.jpg b/assets/gpack/travian_t4/img/g/bg0.jpg similarity index 100% rename from gpack/travian_t4/img/g/bg0.jpg rename to assets/gpack/travian_t4/img/g/bg0.jpg diff --git a/gpack/travian_t4/img/g/bg1.jpg b/assets/gpack/travian_t4/img/g/bg1.jpg similarity index 100% rename from gpack/travian_t4/img/g/bg1.jpg rename to assets/gpack/travian_t4/img/g/bg1.jpg diff --git a/gpack/travian_t4/img/g/bg11.jpg b/assets/gpack/travian_t4/img/g/bg11.jpg similarity index 100% rename from gpack/travian_t4/img/g/bg11.jpg rename to assets/gpack/travian_t4/img/g/bg11.jpg diff --git a/gpack/travian_t4/img/g/bg12.jpg b/assets/gpack/travian_t4/img/g/bg12.jpg similarity index 100% rename from gpack/travian_t4/img/g/bg12.jpg rename to assets/gpack/travian_t4/img/g/bg12.jpg diff --git a/gpack/travian_t4/img/g/bg13.jpg b/assets/gpack/travian_t4/img/g/bg13.jpg similarity index 100% rename from gpack/travian_t4/img/g/bg13.jpg rename to assets/gpack/travian_t4/img/g/bg13.jpg diff --git a/gpack/travian_t4/img/g/f1.jpg b/assets/gpack/travian_t4/img/g/f1.jpg similarity index 100% rename from gpack/travian_t4/img/g/f1.jpg rename to assets/gpack/travian_t4/img/g/f1.jpg diff --git a/gpack/travian_t4/img/g/f10.jpg b/assets/gpack/travian_t4/img/g/f10.jpg similarity index 100% rename from gpack/travian_t4/img/g/f10.jpg rename to assets/gpack/travian_t4/img/g/f10.jpg diff --git a/gpack/travian_t4/img/g/f11.jpg b/assets/gpack/travian_t4/img/g/f11.jpg similarity index 100% rename from gpack/travian_t4/img/g/f11.jpg rename to assets/gpack/travian_t4/img/g/f11.jpg diff --git a/gpack/travian_t4/img/g/f12.jpg b/assets/gpack/travian_t4/img/g/f12.jpg similarity index 100% rename from gpack/travian_t4/img/g/f12.jpg rename to assets/gpack/travian_t4/img/g/f12.jpg diff --git a/gpack/travian_t4/img/g/f2.jpg b/assets/gpack/travian_t4/img/g/f2.jpg similarity index 100% rename from gpack/travian_t4/img/g/f2.jpg rename to assets/gpack/travian_t4/img/g/f2.jpg diff --git a/gpack/travian_t4/img/g/f3.jpg b/assets/gpack/travian_t4/img/g/f3.jpg similarity index 100% rename from gpack/travian_t4/img/g/f3.jpg rename to assets/gpack/travian_t4/img/g/f3.jpg diff --git a/gpack/travian_t4/img/g/f4.jpg b/assets/gpack/travian_t4/img/g/f4.jpg similarity index 100% rename from gpack/travian_t4/img/g/f4.jpg rename to assets/gpack/travian_t4/img/g/f4.jpg diff --git a/gpack/travian_t4/img/g/f5.jpg b/assets/gpack/travian_t4/img/g/f5.jpg similarity index 100% rename from gpack/travian_t4/img/g/f5.jpg rename to assets/gpack/travian_t4/img/g/f5.jpg diff --git a/gpack/travian_t4/img/g/f6.jpg b/assets/gpack/travian_t4/img/g/f6.jpg similarity index 100% rename from gpack/travian_t4/img/g/f6.jpg rename to assets/gpack/travian_t4/img/g/f6.jpg diff --git a/gpack/travian_t4/img/g/f7.jpg b/assets/gpack/travian_t4/img/g/f7.jpg similarity index 100% rename from gpack/travian_t4/img/g/f7.jpg rename to assets/gpack/travian_t4/img/g/f7.jpg diff --git a/gpack/travian_t4/img/g/f8.jpg b/assets/gpack/travian_t4/img/g/f8.jpg similarity index 100% rename from gpack/travian_t4/img/g/f8.jpg rename to assets/gpack/travian_t4/img/g/f8.jpg diff --git a/gpack/travian_t4/img/g/f9.jpg b/assets/gpack/travian_t4/img/g/f9.jpg similarity index 100% rename from gpack/travian_t4/img/g/f9.jpg rename to assets/gpack/travian_t4/img/g/f9.jpg diff --git a/gpack/travian_t4/img/g/f99.jpg b/assets/gpack/travian_t4/img/g/f99.jpg similarity index 100% rename from gpack/travian_t4/img/g/f99.jpg rename to assets/gpack/travian_t4/img/g/f99.jpg diff --git a/gpack/travian_t4/img/g/g1.gif b/assets/gpack/travian_t4/img/g/g1.gif similarity index 100% rename from gpack/travian_t4/img/g/g1.gif rename to assets/gpack/travian_t4/img/g/g1.gif diff --git a/gpack/travian_t4/img/g/g10.gif b/assets/gpack/travian_t4/img/g/g10.gif similarity index 100% rename from gpack/travian_t4/img/g/g10.gif rename to assets/gpack/travian_t4/img/g/g10.gif diff --git a/gpack/travian_t4/img/g/g10b.gif b/assets/gpack/travian_t4/img/g/g10b.gif similarity index 100% rename from gpack/travian_t4/img/g/g10b.gif rename to assets/gpack/travian_t4/img/g/g10b.gif diff --git a/gpack/travian_t4/img/g/g11.gif b/assets/gpack/travian_t4/img/g/g11.gif similarity index 100% rename from gpack/travian_t4/img/g/g11.gif rename to assets/gpack/travian_t4/img/g/g11.gif diff --git a/gpack/travian_t4/img/g/g11b.gif b/assets/gpack/travian_t4/img/g/g11b.gif similarity index 100% rename from gpack/travian_t4/img/g/g11b.gif rename to assets/gpack/travian_t4/img/g/g11b.gif diff --git a/gpack/travian_t4/img/g/g12.gif b/assets/gpack/travian_t4/img/g/g12.gif similarity index 100% rename from gpack/travian_t4/img/g/g12.gif rename to assets/gpack/travian_t4/img/g/g12.gif diff --git a/gpack/travian_t4/img/g/g12b.gif b/assets/gpack/travian_t4/img/g/g12b.gif similarity index 100% rename from gpack/travian_t4/img/g/g12b.gif rename to assets/gpack/travian_t4/img/g/g12b.gif diff --git a/gpack/travian_t4/img/g/g13.gif b/assets/gpack/travian_t4/img/g/g13.gif similarity index 100% rename from gpack/travian_t4/img/g/g13.gif rename to assets/gpack/travian_t4/img/g/g13.gif diff --git a/gpack/travian_t4/img/g/g13b.gif b/assets/gpack/travian_t4/img/g/g13b.gif similarity index 100% rename from gpack/travian_t4/img/g/g13b.gif rename to assets/gpack/travian_t4/img/g/g13b.gif diff --git a/gpack/travian_t4/img/g/g14.gif b/assets/gpack/travian_t4/img/g/g14.gif similarity index 100% rename from gpack/travian_t4/img/g/g14.gif rename to assets/gpack/travian_t4/img/g/g14.gif diff --git a/gpack/travian_t4/img/g/g14b.gif b/assets/gpack/travian_t4/img/g/g14b.gif similarity index 100% rename from gpack/travian_t4/img/g/g14b.gif rename to assets/gpack/travian_t4/img/g/g14b.gif diff --git a/gpack/travian_t4/img/g/g15.gif b/assets/gpack/travian_t4/img/g/g15.gif similarity index 100% rename from gpack/travian_t4/img/g/g15.gif rename to assets/gpack/travian_t4/img/g/g15.gif diff --git a/gpack/travian_t4/img/g/g15b.gif b/assets/gpack/travian_t4/img/g/g15b.gif similarity index 100% rename from gpack/travian_t4/img/g/g15b.gif rename to assets/gpack/travian_t4/img/g/g15b.gif diff --git a/gpack/travian_t4/img/g/g16.gif b/assets/gpack/travian_t4/img/g/g16.gif similarity index 100% rename from gpack/travian_t4/img/g/g16.gif rename to assets/gpack/travian_t4/img/g/g16.gif diff --git a/gpack/travian_t4/img/g/g16b.gif b/assets/gpack/travian_t4/img/g/g16b.gif similarity index 100% rename from gpack/travian_t4/img/g/g16b.gif rename to assets/gpack/travian_t4/img/g/g16b.gif diff --git a/gpack/travian_t4/img/g/g16e.gif b/assets/gpack/travian_t4/img/g/g16e.gif similarity index 100% rename from gpack/travian_t4/img/g/g16e.gif rename to assets/gpack/travian_t4/img/g/g16e.gif diff --git a/gpack/travian_t4/img/g/g16e.png b/assets/gpack/travian_t4/img/g/g16e.png similarity index 100% rename from gpack/travian_t4/img/g/g16e.png rename to assets/gpack/travian_t4/img/g/g16e.png diff --git a/gpack/travian_t4/img/g/g17.gif b/assets/gpack/travian_t4/img/g/g17.gif similarity index 100% rename from gpack/travian_t4/img/g/g17.gif rename to assets/gpack/travian_t4/img/g/g17.gif diff --git a/gpack/travian_t4/img/g/g17b.gif b/assets/gpack/travian_t4/img/g/g17b.gif similarity index 100% rename from gpack/travian_t4/img/g/g17b.gif rename to assets/gpack/travian_t4/img/g/g17b.gif diff --git a/gpack/travian_t4/img/g/g18.gif b/assets/gpack/travian_t4/img/g/g18.gif similarity index 100% rename from gpack/travian_t4/img/g/g18.gif rename to assets/gpack/travian_t4/img/g/g18.gif diff --git a/gpack/travian_t4/img/g/g18b.gif b/assets/gpack/travian_t4/img/g/g18b.gif similarity index 100% rename from gpack/travian_t4/img/g/g18b.gif rename to assets/gpack/travian_t4/img/g/g18b.gif diff --git a/gpack/travian_t4/img/g/g19.gif b/assets/gpack/travian_t4/img/g/g19.gif similarity index 100% rename from gpack/travian_t4/img/g/g19.gif rename to assets/gpack/travian_t4/img/g/g19.gif diff --git a/gpack/travian_t4/img/g/g19b.gif b/assets/gpack/travian_t4/img/g/g19b.gif similarity index 100% rename from gpack/travian_t4/img/g/g19b.gif rename to assets/gpack/travian_t4/img/g/g19b.gif diff --git a/gpack/travian_t4/img/g/g2.gif b/assets/gpack/travian_t4/img/g/g2.gif similarity index 100% rename from gpack/travian_t4/img/g/g2.gif rename to assets/gpack/travian_t4/img/g/g2.gif diff --git a/gpack/travian_t4/img/g/g20.gif b/assets/gpack/travian_t4/img/g/g20.gif similarity index 100% rename from gpack/travian_t4/img/g/g20.gif rename to assets/gpack/travian_t4/img/g/g20.gif diff --git a/gpack/travian_t4/img/g/g20b.gif b/assets/gpack/travian_t4/img/g/g20b.gif similarity index 100% rename from gpack/travian_t4/img/g/g20b.gif rename to assets/gpack/travian_t4/img/g/g20b.gif diff --git a/gpack/travian_t4/img/g/g21.gif b/assets/gpack/travian_t4/img/g/g21.gif similarity index 100% rename from gpack/travian_t4/img/g/g21.gif rename to assets/gpack/travian_t4/img/g/g21.gif diff --git a/gpack/travian_t4/img/g/g21b.gif b/assets/gpack/travian_t4/img/g/g21b.gif similarity index 100% rename from gpack/travian_t4/img/g/g21b.gif rename to assets/gpack/travian_t4/img/g/g21b.gif diff --git a/gpack/travian_t4/img/g/g22.gif b/assets/gpack/travian_t4/img/g/g22.gif similarity index 100% rename from gpack/travian_t4/img/g/g22.gif rename to assets/gpack/travian_t4/img/g/g22.gif diff --git a/gpack/travian_t4/img/g/g22b.gif b/assets/gpack/travian_t4/img/g/g22b.gif similarity index 100% rename from gpack/travian_t4/img/g/g22b.gif rename to assets/gpack/travian_t4/img/g/g22b.gif diff --git a/gpack/travian_t4/img/g/g23.gif b/assets/gpack/travian_t4/img/g/g23.gif similarity index 100% rename from gpack/travian_t4/img/g/g23.gif rename to assets/gpack/travian_t4/img/g/g23.gif diff --git a/gpack/travian_t4/img/g/g23b.gif b/assets/gpack/travian_t4/img/g/g23b.gif similarity index 100% rename from gpack/travian_t4/img/g/g23b.gif rename to assets/gpack/travian_t4/img/g/g23b.gif diff --git a/gpack/travian_t4/img/g/g24.gif b/assets/gpack/travian_t4/img/g/g24.gif similarity index 100% rename from gpack/travian_t4/img/g/g24.gif rename to assets/gpack/travian_t4/img/g/g24.gif diff --git a/gpack/travian_t4/img/g/g24b.gif b/assets/gpack/travian_t4/img/g/g24b.gif similarity index 100% rename from gpack/travian_t4/img/g/g24b.gif rename to assets/gpack/travian_t4/img/g/g24b.gif diff --git a/gpack/travian_t4/img/g/g25.gif b/assets/gpack/travian_t4/img/g/g25.gif similarity index 100% rename from gpack/travian_t4/img/g/g25.gif rename to assets/gpack/travian_t4/img/g/g25.gif diff --git a/gpack/travian_t4/img/g/g25b.gif b/assets/gpack/travian_t4/img/g/g25b.gif similarity index 100% rename from gpack/travian_t4/img/g/g25b.gif rename to assets/gpack/travian_t4/img/g/g25b.gif diff --git a/gpack/travian_t4/img/g/g26.gif b/assets/gpack/travian_t4/img/g/g26.gif similarity index 100% rename from gpack/travian_t4/img/g/g26.gif rename to assets/gpack/travian_t4/img/g/g26.gif diff --git a/gpack/travian_t4/img/g/g26b.gif b/assets/gpack/travian_t4/img/g/g26b.gif similarity index 100% rename from gpack/travian_t4/img/g/g26b.gif rename to assets/gpack/travian_t4/img/g/g26b.gif diff --git a/gpack/travian_t4/img/g/g27.gif b/assets/gpack/travian_t4/img/g/g27.gif similarity index 100% rename from gpack/travian_t4/img/g/g27.gif rename to assets/gpack/travian_t4/img/g/g27.gif diff --git a/gpack/travian_t4/img/g/g27b.gif b/assets/gpack/travian_t4/img/g/g27b.gif similarity index 100% rename from gpack/travian_t4/img/g/g27b.gif rename to assets/gpack/travian_t4/img/g/g27b.gif diff --git a/gpack/travian_t4/img/g/g28.gif b/assets/gpack/travian_t4/img/g/g28.gif similarity index 100% rename from gpack/travian_t4/img/g/g28.gif rename to assets/gpack/travian_t4/img/g/g28.gif diff --git a/gpack/travian_t4/img/g/g28b.gif b/assets/gpack/travian_t4/img/g/g28b.gif similarity index 100% rename from gpack/travian_t4/img/g/g28b.gif rename to assets/gpack/travian_t4/img/g/g28b.gif diff --git a/gpack/travian_t4/img/g/g29.gif b/assets/gpack/travian_t4/img/g/g29.gif similarity index 100% rename from gpack/travian_t4/img/g/g29.gif rename to assets/gpack/travian_t4/img/g/g29.gif diff --git a/gpack/travian_t4/img/g/g29b.gif b/assets/gpack/travian_t4/img/g/g29b.gif similarity index 100% rename from gpack/travian_t4/img/g/g29b.gif rename to assets/gpack/travian_t4/img/g/g29b.gif diff --git a/gpack/travian_t4/img/g/g3.gif b/assets/gpack/travian_t4/img/g/g3.gif similarity index 100% rename from gpack/travian_t4/img/g/g3.gif rename to assets/gpack/travian_t4/img/g/g3.gif diff --git a/gpack/travian_t4/img/g/g30.gif b/assets/gpack/travian_t4/img/g/g30.gif similarity index 100% rename from gpack/travian_t4/img/g/g30.gif rename to assets/gpack/travian_t4/img/g/g30.gif diff --git a/gpack/travian_t4/img/g/g30b.gif b/assets/gpack/travian_t4/img/g/g30b.gif similarity index 100% rename from gpack/travian_t4/img/g/g30b.gif rename to assets/gpack/travian_t4/img/g/g30b.gif diff --git a/gpack/travian_t4/img/g/g34.gif b/assets/gpack/travian_t4/img/g/g34.gif similarity index 100% rename from gpack/travian_t4/img/g/g34.gif rename to assets/gpack/travian_t4/img/g/g34.gif diff --git a/gpack/travian_t4/img/g/g34b.gif b/assets/gpack/travian_t4/img/g/g34b.gif similarity index 100% rename from gpack/travian_t4/img/g/g34b.gif rename to assets/gpack/travian_t4/img/g/g34b.gif diff --git a/gpack/travian_t4/img/g/g35.gif b/assets/gpack/travian_t4/img/g/g35.gif similarity index 100% rename from gpack/travian_t4/img/g/g35.gif rename to assets/gpack/travian_t4/img/g/g35.gif diff --git a/gpack/travian_t4/img/g/g35_tea.gif b/assets/gpack/travian_t4/img/g/g35_tea.gif similarity index 100% rename from gpack/travian_t4/img/g/g35_tea.gif rename to assets/gpack/travian_t4/img/g/g35_tea.gif diff --git a/gpack/travian_t4/img/g/g35b.gif b/assets/gpack/travian_t4/img/g/g35b.gif similarity index 100% rename from gpack/travian_t4/img/g/g35b.gif rename to assets/gpack/travian_t4/img/g/g35b.gif diff --git a/gpack/travian_t4/img/g/g35b_tea.gif b/assets/gpack/travian_t4/img/g/g35b_tea.gif similarity index 100% rename from gpack/travian_t4/img/g/g35b_tea.gif rename to assets/gpack/travian_t4/img/g/g35b_tea.gif diff --git a/gpack/travian_t4/img/g/g36.gif b/assets/gpack/travian_t4/img/g/g36.gif similarity index 100% rename from gpack/travian_t4/img/g/g36.gif rename to assets/gpack/travian_t4/img/g/g36.gif diff --git a/gpack/travian_t4/img/g/g36b.gif b/assets/gpack/travian_t4/img/g/g36b.gif similarity index 100% rename from gpack/travian_t4/img/g/g36b.gif rename to assets/gpack/travian_t4/img/g/g36b.gif diff --git a/gpack/travian_t4/img/g/g37.gif b/assets/gpack/travian_t4/img/g/g37.gif similarity index 100% rename from gpack/travian_t4/img/g/g37.gif rename to assets/gpack/travian_t4/img/g/g37.gif diff --git a/gpack/travian_t4/img/g/g37b.gif b/assets/gpack/travian_t4/img/g/g37b.gif similarity index 100% rename from gpack/travian_t4/img/g/g37b.gif rename to assets/gpack/travian_t4/img/g/g37b.gif diff --git a/gpack/travian_t4/img/g/g38.gif b/assets/gpack/travian_t4/img/g/g38.gif similarity index 100% rename from gpack/travian_t4/img/g/g38.gif rename to assets/gpack/travian_t4/img/g/g38.gif diff --git a/gpack/travian_t4/img/g/g38b.gif b/assets/gpack/travian_t4/img/g/g38b.gif similarity index 100% rename from gpack/travian_t4/img/g/g38b.gif rename to assets/gpack/travian_t4/img/g/g38b.gif diff --git a/gpack/travian_t4/img/g/g39.gif b/assets/gpack/travian_t4/img/g/g39.gif similarity index 100% rename from gpack/travian_t4/img/g/g39.gif rename to assets/gpack/travian_t4/img/g/g39.gif diff --git a/gpack/travian_t4/img/g/g39b.gif b/assets/gpack/travian_t4/img/g/g39b.gif similarity index 100% rename from gpack/travian_t4/img/g/g39b.gif rename to assets/gpack/travian_t4/img/g/g39b.gif diff --git a/gpack/travian_t4/img/g/g4.gif b/assets/gpack/travian_t4/img/g/g4.gif similarity index 100% rename from gpack/travian_t4/img/g/g4.gif rename to assets/gpack/travian_t4/img/g/g4.gif diff --git a/gpack/travian_t4/img/g/g40.gif b/assets/gpack/travian_t4/img/g/g40.gif similarity index 100% rename from gpack/travian_t4/img/g/g40.gif rename to assets/gpack/travian_t4/img/g/g40.gif diff --git a/gpack/travian_t4/img/g/g40_1.gif b/assets/gpack/travian_t4/img/g/g40_1.gif similarity index 100% rename from gpack/travian_t4/img/g/g40_1.gif rename to assets/gpack/travian_t4/img/g/g40_1.gif diff --git a/gpack/travian_t4/img/g/g40_2.gif b/assets/gpack/travian_t4/img/g/g40_2.gif similarity index 100% rename from gpack/travian_t4/img/g/g40_2.gif rename to assets/gpack/travian_t4/img/g/g40_2.gif diff --git a/gpack/travian_t4/img/g/g40_3.gif b/assets/gpack/travian_t4/img/g/g40_3.gif similarity index 100% rename from gpack/travian_t4/img/g/g40_3.gif rename to assets/gpack/travian_t4/img/g/g40_3.gif diff --git a/gpack/travian_t4/img/g/g40_4.gif b/assets/gpack/travian_t4/img/g/g40_4.gif similarity index 100% rename from gpack/travian_t4/img/g/g40_4.gif rename to assets/gpack/travian_t4/img/g/g40_4.gif diff --git a/gpack/travian_t4/img/g/g40_5.gif b/assets/gpack/travian_t4/img/g/g40_5.gif similarity index 100% rename from gpack/travian_t4/img/g/g40_5.gif rename to assets/gpack/travian_t4/img/g/g40_5.gif diff --git a/gpack/travian_t4/img/g/g41.gif b/assets/gpack/travian_t4/img/g/g41.gif similarity index 100% rename from gpack/travian_t4/img/g/g41.gif rename to assets/gpack/travian_t4/img/g/g41.gif diff --git a/gpack/travian_t4/img/g/g41b.gif b/assets/gpack/travian_t4/img/g/g41b.gif similarity index 100% rename from gpack/travian_t4/img/g/g41b.gif rename to assets/gpack/travian_t4/img/g/g41b.gif diff --git a/gpack/travian_t4/img/g/g42.gif b/assets/gpack/travian_t4/img/g/g42.gif similarity index 100% rename from gpack/travian_t4/img/g/g42.gif rename to assets/gpack/travian_t4/img/g/g42.gif diff --git a/gpack/travian_t4/img/g/g42b.gif b/assets/gpack/travian_t4/img/g/g42b.gif similarity index 100% rename from gpack/travian_t4/img/g/g42b.gif rename to assets/gpack/travian_t4/img/g/g42b.gif diff --git a/gpack/travian_t4/img/g/g43.gif b/assets/gpack/travian_t4/img/g/g43.gif similarity index 100% rename from gpack/travian_t4/img/g/g43.gif rename to assets/gpack/travian_t4/img/g/g43.gif diff --git a/gpack/travian_t4/img/g/g43b.gif b/assets/gpack/travian_t4/img/g/g43b.gif similarity index 100% rename from gpack/travian_t4/img/g/g43b.gif rename to assets/gpack/travian_t4/img/g/g43b.gif diff --git a/gpack/travian_t4/img/g/g44.gif b/assets/gpack/travian_t4/img/g/g44.gif similarity index 100% rename from gpack/travian_t4/img/g/g44.gif rename to assets/gpack/travian_t4/img/g/g44.gif diff --git a/gpack/travian_t4/img/g/g44b.gif b/assets/gpack/travian_t4/img/g/g44b.gif similarity index 100% rename from gpack/travian_t4/img/g/g44b.gif rename to assets/gpack/travian_t4/img/g/g44b.gif diff --git a/gpack/travian_t4/img/g/g5.gif b/assets/gpack/travian_t4/img/g/g5.gif similarity index 100% rename from gpack/travian_t4/img/g/g5.gif rename to assets/gpack/travian_t4/img/g/g5.gif diff --git a/gpack/travian_t4/img/g/g5b.gif b/assets/gpack/travian_t4/img/g/g5b.gif similarity index 100% rename from gpack/travian_t4/img/g/g5b.gif rename to assets/gpack/travian_t4/img/g/g5b.gif diff --git a/gpack/travian_t4/img/g/g6.gif b/assets/gpack/travian_t4/img/g/g6.gif similarity index 100% rename from gpack/travian_t4/img/g/g6.gif rename to assets/gpack/travian_t4/img/g/g6.gif diff --git a/gpack/travian_t4/img/g/g6b.gif b/assets/gpack/travian_t4/img/g/g6b.gif similarity index 100% rename from gpack/travian_t4/img/g/g6b.gif rename to assets/gpack/travian_t4/img/g/g6b.gif diff --git a/gpack/travian_t4/img/g/g7.gif b/assets/gpack/travian_t4/img/g/g7.gif similarity index 100% rename from gpack/travian_t4/img/g/g7.gif rename to assets/gpack/travian_t4/img/g/g7.gif diff --git a/gpack/travian_t4/img/g/g7b.gif b/assets/gpack/travian_t4/img/g/g7b.gif similarity index 100% rename from gpack/travian_t4/img/g/g7b.gif rename to assets/gpack/travian_t4/img/g/g7b.gif diff --git a/gpack/travian_t4/img/g/g8.gif b/assets/gpack/travian_t4/img/g/g8.gif similarity index 100% rename from gpack/travian_t4/img/g/g8.gif rename to assets/gpack/travian_t4/img/g/g8.gif diff --git a/gpack/travian_t4/img/g/g8b.gif b/assets/gpack/travian_t4/img/g/g8b.gif similarity index 100% rename from gpack/travian_t4/img/g/g8b.gif rename to assets/gpack/travian_t4/img/g/g8b.gif diff --git a/gpack/travian_t4/img/g/g9.gif b/assets/gpack/travian_t4/img/g/g9.gif similarity index 100% rename from gpack/travian_t4/img/g/g9.gif rename to assets/gpack/travian_t4/img/g/g9.gif diff --git a/gpack/travian_t4/img/g/g9b.gif b/assets/gpack/travian_t4/img/g/g9b.gif similarity index 100% rename from gpack/travian_t4/img/g/g9b.gif rename to assets/gpack/travian_t4/img/g/g9b.gif diff --git a/gpack/travian_default/img/p/index.php b/assets/gpack/travian_t4/img/g/index.php similarity index 100% rename from gpack/travian_default/img/p/index.php rename to assets/gpack/travian_t4/img/g/index.php diff --git a/gpack/travian_t4/img/g/iso.gif b/assets/gpack/travian_t4/img/g/iso.gif similarity index 100% rename from gpack/travian_t4/img/g/iso.gif rename to assets/gpack/travian_t4/img/g/iso.gif diff --git a/gpack/travian_t4/img/g/s/glvl.gif b/assets/gpack/travian_t4/img/g/s/glvl.gif similarity index 100% rename from gpack/travian_t4/img/g/s/glvl.gif rename to assets/gpack/travian_t4/img/g/s/glvl.gif diff --git a/gpack/travian_t4/img/g/s/glvlm.gif b/assets/gpack/travian_t4/img/g/s/glvlm.gif similarity index 100% rename from gpack/travian_t4/img/g/s/glvlm.gif rename to assets/gpack/travian_t4/img/g/s/glvlm.gif diff --git a/gpack/travian_t4/img/g/s/glvlp.gif b/assets/gpack/travian_t4/img/g/s/glvlp.gif similarity index 100% rename from gpack/travian_t4/img/g/s/glvlp.gif rename to assets/gpack/travian_t4/img/g/s/glvlp.gif diff --git a/gpack/travian_t4/img/g/s/lvl11_20.gif b/assets/gpack/travian_t4/img/g/s/lvl11_20.gif similarity index 100% rename from gpack/travian_t4/img/g/s/lvl11_20.gif rename to assets/gpack/travian_t4/img/g/s/lvl11_20.gif diff --git a/gpack/travian_t4/img/g/s/lvl1_10.gif b/assets/gpack/travian_t4/img/g/s/lvl1_10.gif similarity index 100% rename from gpack/travian_t4/img/g/s/lvl1_10.gif rename to assets/gpack/travian_t4/img/g/s/lvl1_10.gif diff --git a/gpack/travian_t4/img/g/s/lvl21_30.gif b/assets/gpack/travian_t4/img/g/s/lvl21_30.gif similarity index 100% rename from gpack/travian_t4/img/g/s/lvl21_30.gif rename to assets/gpack/travian_t4/img/g/s/lvl21_30.gif diff --git a/gpack/travian_default/img/q/index.php b/assets/gpack/travian_t4/img/index.php similarity index 100% rename from gpack/travian_default/img/q/index.php rename to assets/gpack/travian_t4/img/index.php diff --git a/gpack/travian_t4/img/l/ad0.jpg b/assets/gpack/travian_t4/img/l/ad0.jpg similarity index 100% rename from gpack/travian_t4/img/l/ad0.jpg rename to assets/gpack/travian_t4/img/l/ad0.jpg diff --git a/gpack/travian_t4/img/l/ad1.jpg b/assets/gpack/travian_t4/img/l/ad1.jpg similarity index 100% rename from gpack/travian_t4/img/l/ad1.jpg rename to assets/gpack/travian_t4/img/l/ad1.jpg diff --git a/gpack/travian_t4/img/l/ad2.jpg b/assets/gpack/travian_t4/img/l/ad2.jpg similarity index 100% rename from gpack/travian_t4/img/l/ad2.jpg rename to assets/gpack/travian_t4/img/l/ad2.jpg diff --git a/gpack/travian_t4/img/l/bigsize_bg.jpg b/assets/gpack/travian_t4/img/l/bigsize_bg.jpg similarity index 100% rename from gpack/travian_t4/img/l/bigsize_bg.jpg rename to assets/gpack/travian_t4/img/l/bigsize_bg.jpg diff --git a/gpack/travian_t4/img/l/bigsize_bg_interia.jpg b/assets/gpack/travian_t4/img/l/bigsize_bg_interia.jpg similarity index 100% rename from gpack/travian_t4/img/l/bigsize_bg_interia.jpg rename to assets/gpack/travian_t4/img/l/bigsize_bg_interia.jpg diff --git a/gpack/travian_t4/img/l/day.gif b/assets/gpack/travian_t4/img/l/day.gif similarity index 100% rename from gpack/travian_t4/img/l/day.gif rename to assets/gpack/travian_t4/img/l/day.gif diff --git a/gpack/travian_t4/img/l/dyn_bg1.jpg b/assets/gpack/travian_t4/img/l/dyn_bg1.jpg similarity index 100% rename from gpack/travian_t4/img/l/dyn_bg1.jpg rename to assets/gpack/travian_t4/img/l/dyn_bg1.jpg diff --git a/gpack/travian_default/img/r/index.php b/assets/gpack/travian_t4/img/l/index.php similarity index 100% rename from gpack/travian_default/img/r/index.php rename to assets/gpack/travian_t4/img/l/index.php diff --git a/gpack/travian_t4/img/l/m1.gif b/assets/gpack/travian_t4/img/l/m1.gif similarity index 100% rename from gpack/travian_t4/img/l/m1.gif rename to assets/gpack/travian_t4/img/l/m1.gif diff --git a/gpack/travian_t4/img/l/m1_30.gif b/assets/gpack/travian_t4/img/l/m1_30.gif similarity index 100% rename from gpack/travian_t4/img/l/m1_30.gif rename to assets/gpack/travian_t4/img/l/m1_30.gif diff --git a/gpack/travian_t4/img/l/m2.gif b/assets/gpack/travian_t4/img/l/m2.gif similarity index 100% rename from gpack/travian_t4/img/l/m2.gif rename to assets/gpack/travian_t4/img/l/m2.gif diff --git a/gpack/travian_t4/img/l/m2_30.gif b/assets/gpack/travian_t4/img/l/m2_30.gif similarity index 100% rename from gpack/travian_t4/img/l/m2_30.gif rename to assets/gpack/travian_t4/img/l/m2_30.gif diff --git a/gpack/travian_t4/img/l/m3.gif b/assets/gpack/travian_t4/img/l/m3.gif similarity index 100% rename from gpack/travian_t4/img/l/m3.gif rename to assets/gpack/travian_t4/img/l/m3.gif diff --git a/gpack/travian_t4/img/l/m3_30.gif b/assets/gpack/travian_t4/img/l/m3_30.gif similarity index 100% rename from gpack/travian_t4/img/l/m3_30.gif rename to assets/gpack/travian_t4/img/l/m3_30.gif diff --git a/gpack/travian_t4/img/l/m4.gif b/assets/gpack/travian_t4/img/l/m4.gif similarity index 100% rename from gpack/travian_t4/img/l/m4.gif rename to assets/gpack/travian_t4/img/l/m4.gif diff --git a/gpack/travian_t4/img/l/m4_30.gif b/assets/gpack/travian_t4/img/l/m4_30.gif similarity index 100% rename from gpack/travian_t4/img/l/m4_30.gif rename to assets/gpack/travian_t4/img/l/m4_30.gif diff --git a/gpack/travian_t4/img/l/mp.gif b/assets/gpack/travian_t4/img/l/mp.gif similarity index 100% rename from gpack/travian_t4/img/l/mp.gif rename to assets/gpack/travian_t4/img/l/mp.gif diff --git a/gpack/travian_t4/img/l/mw.gif b/assets/gpack/travian_t4/img/l/mw.gif similarity index 100% rename from gpack/travian_t4/img/l/mw.gif rename to assets/gpack/travian_t4/img/l/mw.gif diff --git a/gpack/travian_t4/img/l/n1.gif b/assets/gpack/travian_t4/img/l/n1.gif similarity index 100% rename from gpack/travian_t4/img/l/n1.gif rename to assets/gpack/travian_t4/img/l/n1.gif diff --git a/gpack/travian_t4/img/l/n1_30.gif b/assets/gpack/travian_t4/img/l/n1_30.gif similarity index 100% rename from gpack/travian_t4/img/l/n1_30.gif rename to assets/gpack/travian_t4/img/l/n1_30.gif diff --git a/gpack/travian_t4/img/l/n2.gif b/assets/gpack/travian_t4/img/l/n2.gif similarity index 100% rename from gpack/travian_t4/img/l/n2.gif rename to assets/gpack/travian_t4/img/l/n2.gif diff --git a/gpack/travian_t4/img/l/n2_30.gif b/assets/gpack/travian_t4/img/l/n2_30.gif similarity index 100% rename from gpack/travian_t4/img/l/n2_30.gif rename to assets/gpack/travian_t4/img/l/n2_30.gif diff --git a/gpack/travian_t4/img/l/n3.gif b/assets/gpack/travian_t4/img/l/n3.gif similarity index 100% rename from gpack/travian_t4/img/l/n3.gif rename to assets/gpack/travian_t4/img/l/n3.gif diff --git a/gpack/travian_t4/img/l/n3_30.gif b/assets/gpack/travian_t4/img/l/n3_30.gif similarity index 100% rename from gpack/travian_t4/img/l/n3_30.gif rename to assets/gpack/travian_t4/img/l/n3_30.gif diff --git a/gpack/travian_t4/img/l/n4.gif b/assets/gpack/travian_t4/img/l/n4.gif similarity index 100% rename from gpack/travian_t4/img/l/n4.gif rename to assets/gpack/travian_t4/img/l/n4.gif diff --git a/gpack/travian_t4/img/l/n4_30.gif b/assets/gpack/travian_t4/img/l/n4_30.gif similarity index 100% rename from gpack/travian_t4/img/l/n4_30.gif rename to assets/gpack/travian_t4/img/l/n4_30.gif diff --git a/gpack/travian_t4/img/l/navi.gif b/assets/gpack/travian_t4/img/l/navi.gif similarity index 100% rename from gpack/travian_t4/img/l/navi.gif rename to assets/gpack/travian_t4/img/l/navi.gif diff --git a/gpack/travian_t4/img/l/night.gif b/assets/gpack/travian_t4/img/l/night.gif similarity index 100% rename from gpack/travian_t4/img/l/night.gif rename to assets/gpack/travian_t4/img/l/night.gif diff --git a/gpack/travian_t4/img/l/skyscraper_bg.gif b/assets/gpack/travian_t4/img/l/skyscraper_bg.gif similarity index 100% rename from gpack/travian_t4/img/l/skyscraper_bg.gif rename to assets/gpack/travian_t4/img/l/skyscraper_bg.gif diff --git a/gpack/travian_t4/img/m/d00.gif b/assets/gpack/travian_t4/img/m/d00.gif similarity index 100% rename from gpack/travian_t4/img/m/d00.gif rename to assets/gpack/travian_t4/img/m/d00.gif diff --git a/gpack/travian_t4/img/m/d01.gif b/assets/gpack/travian_t4/img/m/d01.gif similarity index 100% rename from gpack/travian_t4/img/m/d01.gif rename to assets/gpack/travian_t4/img/m/d01.gif diff --git a/gpack/travian_t4/img/m/d02.gif b/assets/gpack/travian_t4/img/m/d02.gif similarity index 100% rename from gpack/travian_t4/img/m/d02.gif rename to assets/gpack/travian_t4/img/m/d02.gif diff --git a/gpack/travian_t4/img/m/d03.gif b/assets/gpack/travian_t4/img/m/d03.gif similarity index 100% rename from gpack/travian_t4/img/m/d03.gif rename to assets/gpack/travian_t4/img/m/d03.gif diff --git a/gpack/travian_t4/img/m/d04.gif b/assets/gpack/travian_t4/img/m/d04.gif similarity index 100% rename from gpack/travian_t4/img/m/d04.gif rename to assets/gpack/travian_t4/img/m/d04.gif diff --git a/gpack/travian_t4/img/m/d05.gif b/assets/gpack/travian_t4/img/m/d05.gif similarity index 100% rename from gpack/travian_t4/img/m/d05.gif rename to assets/gpack/travian_t4/img/m/d05.gif diff --git a/gpack/travian_t4/img/m/d10.gif b/assets/gpack/travian_t4/img/m/d10.gif similarity index 100% rename from gpack/travian_t4/img/m/d10.gif rename to assets/gpack/travian_t4/img/m/d10.gif diff --git a/gpack/travian_t4/img/m/d11.gif b/assets/gpack/travian_t4/img/m/d11.gif similarity index 100% rename from gpack/travian_t4/img/m/d11.gif rename to assets/gpack/travian_t4/img/m/d11.gif diff --git a/gpack/travian_t4/img/m/d12.gif b/assets/gpack/travian_t4/img/m/d12.gif similarity index 100% rename from gpack/travian_t4/img/m/d12.gif rename to assets/gpack/travian_t4/img/m/d12.gif diff --git a/gpack/travian_t4/img/m/d13.gif b/assets/gpack/travian_t4/img/m/d13.gif similarity index 100% rename from gpack/travian_t4/img/m/d13.gif rename to assets/gpack/travian_t4/img/m/d13.gif diff --git a/gpack/travian_t4/img/m/d14.gif b/assets/gpack/travian_t4/img/m/d14.gif similarity index 100% rename from gpack/travian_t4/img/m/d14.gif rename to assets/gpack/travian_t4/img/m/d14.gif diff --git a/gpack/travian_t4/img/m/d15.gif b/assets/gpack/travian_t4/img/m/d15.gif similarity index 100% rename from gpack/travian_t4/img/m/d15.gif rename to assets/gpack/travian_t4/img/m/d15.gif diff --git a/gpack/travian_t4/img/m/d20.gif b/assets/gpack/travian_t4/img/m/d20.gif similarity index 100% rename from gpack/travian_t4/img/m/d20.gif rename to assets/gpack/travian_t4/img/m/d20.gif diff --git a/gpack/travian_t4/img/m/d21.gif b/assets/gpack/travian_t4/img/m/d21.gif similarity index 100% rename from gpack/travian_t4/img/m/d21.gif rename to assets/gpack/travian_t4/img/m/d21.gif diff --git a/gpack/travian_t4/img/m/d22.gif b/assets/gpack/travian_t4/img/m/d22.gif similarity index 100% rename from gpack/travian_t4/img/m/d22.gif rename to assets/gpack/travian_t4/img/m/d22.gif diff --git a/gpack/travian_t4/img/m/d23.gif b/assets/gpack/travian_t4/img/m/d23.gif similarity index 100% rename from gpack/travian_t4/img/m/d23.gif rename to assets/gpack/travian_t4/img/m/d23.gif diff --git a/gpack/travian_t4/img/m/d24.gif b/assets/gpack/travian_t4/img/m/d24.gif similarity index 100% rename from gpack/travian_t4/img/m/d24.gif rename to assets/gpack/travian_t4/img/m/d24.gif diff --git a/gpack/travian_t4/img/m/d25.gif b/assets/gpack/travian_t4/img/m/d25.gif similarity index 100% rename from gpack/travian_t4/img/m/d25.gif rename to assets/gpack/travian_t4/img/m/d25.gif diff --git a/gpack/travian_t4/img/m/d30.gif b/assets/gpack/travian_t4/img/m/d30.gif similarity index 100% rename from gpack/travian_t4/img/m/d30.gif rename to assets/gpack/travian_t4/img/m/d30.gif diff --git a/gpack/travian_t4/img/m/d31.gif b/assets/gpack/travian_t4/img/m/d31.gif similarity index 100% rename from gpack/travian_t4/img/m/d31.gif rename to assets/gpack/travian_t4/img/m/d31.gif diff --git a/gpack/travian_t4/img/m/d32.gif b/assets/gpack/travian_t4/img/m/d32.gif similarity index 100% rename from gpack/travian_t4/img/m/d32.gif rename to assets/gpack/travian_t4/img/m/d32.gif diff --git a/gpack/travian_t4/img/m/d33.gif b/assets/gpack/travian_t4/img/m/d33.gif similarity index 100% rename from gpack/travian_t4/img/m/d33.gif rename to assets/gpack/travian_t4/img/m/d33.gif diff --git a/gpack/travian_t4/img/m/d34.gif b/assets/gpack/travian_t4/img/m/d34.gif similarity index 100% rename from gpack/travian_t4/img/m/d34.gif rename to assets/gpack/travian_t4/img/m/d34.gif diff --git a/gpack/travian_t4/img/m/d35.gif b/assets/gpack/travian_t4/img/m/d35.gif similarity index 100% rename from gpack/travian_t4/img/m/d35.gif rename to assets/gpack/travian_t4/img/m/d35.gif diff --git a/gpack/travian_t4/img/m/dir.gif b/assets/gpack/travian_t4/img/m/dir.gif similarity index 100% rename from gpack/travian_t4/img/m/dir.gif rename to assets/gpack/travian_t4/img/m/dir.gif diff --git a/gpack/travian_default/img/s/index.php b/assets/gpack/travian_t4/img/m/index.php similarity index 100% rename from gpack/travian_default/img/s/index.php rename to assets/gpack/travian_t4/img/m/index.php diff --git a/gpack/travian_t4/img/m/map.gif b/assets/gpack/travian_t4/img/m/map.gif similarity index 100% rename from gpack/travian_t4/img/m/map.gif rename to assets/gpack/travian_t4/img/m/map.gif diff --git a/gpack/travian_t4/img/m/map.jpg b/assets/gpack/travian_t4/img/m/map.jpg similarity index 100% rename from gpack/travian_t4/img/m/map.jpg rename to assets/gpack/travian_t4/img/m/map.jpg diff --git a/gpack/travian_t4/img/m/mapl.gif b/assets/gpack/travian_t4/img/m/mapl.gif similarity index 100% rename from gpack/travian_t4/img/m/mapl.gif rename to assets/gpack/travian_t4/img/m/mapl.gif diff --git a/gpack/travian_t4/img/m/matt.gif b/assets/gpack/travian_t4/img/m/matt.gif similarity index 100% rename from gpack/travian_t4/img/m/matt.gif rename to assets/gpack/travian_t4/img/m/matt.gif diff --git a/gpack/travian_t4/img/m/max.gif b/assets/gpack/travian_t4/img/m/max.gif similarity index 100% rename from gpack/travian_t4/img/m/max.gif rename to assets/gpack/travian_t4/img/m/max.gif diff --git a/gpack/travian_t4/img/m/mret.gif b/assets/gpack/travian_t4/img/m/mret.gif similarity index 100% rename from gpack/travian_t4/img/m/mret.gif rename to assets/gpack/travian_t4/img/m/mret.gif diff --git a/gpack/travian_t4/img/m/mspy.gif b/assets/gpack/travian_t4/img/m/mspy.gif similarity index 100% rename from gpack/travian_t4/img/m/mspy.gif rename to assets/gpack/travian_t4/img/m/mspy.gif diff --git a/gpack/travian_t4/img/m/msup.gif b/assets/gpack/travian_t4/img/m/msup.gif similarity index 100% rename from gpack/travian_t4/img/m/msup.gif rename to assets/gpack/travian_t4/img/m/msup.gif diff --git a/gpack/travian_t4/img/m/o1.gif b/assets/gpack/travian_t4/img/m/o1.gif similarity index 100% rename from gpack/travian_t4/img/m/o1.gif rename to assets/gpack/travian_t4/img/m/o1.gif diff --git a/gpack/travian_t4/img/m/o10.gif b/assets/gpack/travian_t4/img/m/o10.gif similarity index 100% rename from gpack/travian_t4/img/m/o10.gif rename to assets/gpack/travian_t4/img/m/o10.gif diff --git a/gpack/travian_t4/img/m/o11.gif b/assets/gpack/travian_t4/img/m/o11.gif similarity index 100% rename from gpack/travian_t4/img/m/o11.gif rename to assets/gpack/travian_t4/img/m/o11.gif diff --git a/gpack/travian_t4/img/m/o12.gif b/assets/gpack/travian_t4/img/m/o12.gif similarity index 100% rename from gpack/travian_t4/img/m/o12.gif rename to assets/gpack/travian_t4/img/m/o12.gif diff --git a/gpack/travian_t4/img/m/o2.gif b/assets/gpack/travian_t4/img/m/o2.gif similarity index 100% rename from gpack/travian_t4/img/m/o2.gif rename to assets/gpack/travian_t4/img/m/o2.gif diff --git a/gpack/travian_t4/img/m/o3.gif b/assets/gpack/travian_t4/img/m/o3.gif similarity index 100% rename from gpack/travian_t4/img/m/o3.gif rename to assets/gpack/travian_t4/img/m/o3.gif diff --git a/gpack/travian_t4/img/m/o4.gif b/assets/gpack/travian_t4/img/m/o4.gif similarity index 100% rename from gpack/travian_t4/img/m/o4.gif rename to assets/gpack/travian_t4/img/m/o4.gif diff --git a/gpack/travian_t4/img/m/o5.gif b/assets/gpack/travian_t4/img/m/o5.gif similarity index 100% rename from gpack/travian_t4/img/m/o5.gif rename to assets/gpack/travian_t4/img/m/o5.gif diff --git a/gpack/travian_t4/img/m/o6.gif b/assets/gpack/travian_t4/img/m/o6.gif similarity index 100% rename from gpack/travian_t4/img/m/o6.gif rename to assets/gpack/travian_t4/img/m/o6.gif diff --git a/gpack/travian_t4/img/m/o7.gif b/assets/gpack/travian_t4/img/m/o7.gif similarity index 100% rename from gpack/travian_t4/img/m/o7.gif rename to assets/gpack/travian_t4/img/m/o7.gif diff --git a/gpack/travian_t4/img/m/o8.gif b/assets/gpack/travian_t4/img/m/o8.gif similarity index 100% rename from gpack/travian_t4/img/m/o8.gif rename to assets/gpack/travian_t4/img/m/o8.gif diff --git a/gpack/travian_t4/img/m/o9.gif b/assets/gpack/travian_t4/img/m/o9.gif similarity index 100% rename from gpack/travian_t4/img/m/o9.gif rename to assets/gpack/travian_t4/img/m/o9.gif diff --git a/gpack/travian_t4/img/m/o99.gif b/assets/gpack/travian_t4/img/m/o99.gif similarity index 100% rename from gpack/travian_t4/img/m/o99.gif rename to assets/gpack/travian_t4/img/m/o99.gif diff --git a/gpack/travian_t4/img/m/t0.gif b/assets/gpack/travian_t4/img/m/t0.gif similarity index 100% rename from gpack/travian_t4/img/m/t0.gif rename to assets/gpack/travian_t4/img/m/t0.gif diff --git a/gpack/travian_t4/img/m/t1.gif b/assets/gpack/travian_t4/img/m/t1.gif similarity index 100% rename from gpack/travian_t4/img/m/t1.gif rename to assets/gpack/travian_t4/img/m/t1.gif diff --git a/gpack/travian_t4/img/m/t2.gif b/assets/gpack/travian_t4/img/m/t2.gif similarity index 100% rename from gpack/travian_t4/img/m/t2.gif rename to assets/gpack/travian_t4/img/m/t2.gif diff --git a/gpack/travian_t4/img/m/t3.gif b/assets/gpack/travian_t4/img/m/t3.gif similarity index 100% rename from gpack/travian_t4/img/m/t3.gif rename to assets/gpack/travian_t4/img/m/t3.gif diff --git a/gpack/travian_t4/img/m/t4.gif b/assets/gpack/travian_t4/img/m/t4.gif similarity index 100% rename from gpack/travian_t4/img/m/t4.gif rename to assets/gpack/travian_t4/img/m/t4.gif diff --git a/gpack/travian_t4/img/m/t5.gif b/assets/gpack/travian_t4/img/m/t5.gif similarity index 100% rename from gpack/travian_t4/img/m/t5.gif rename to assets/gpack/travian_t4/img/m/t5.gif diff --git a/gpack/travian_t4/img/m/t6.gif b/assets/gpack/travian_t4/img/m/t6.gif similarity index 100% rename from gpack/travian_t4/img/m/t6.gif rename to assets/gpack/travian_t4/img/m/t6.gif diff --git a/gpack/travian_t4/img/m/t7.gif b/assets/gpack/travian_t4/img/m/t7.gif similarity index 100% rename from gpack/travian_t4/img/m/t7.gif rename to assets/gpack/travian_t4/img/m/t7.gif diff --git a/gpack/travian_t4/img/m/t8.gif b/assets/gpack/travian_t4/img/m/t8.gif similarity index 100% rename from gpack/travian_t4/img/m/t8.gif rename to assets/gpack/travian_t4/img/m/t8.gif diff --git a/gpack/travian_t4/img/m/t9.gif b/assets/gpack/travian_t4/img/m/t9.gif similarity index 100% rename from gpack/travian_t4/img/m/t9.gif rename to assets/gpack/travian_t4/img/m/t9.gif diff --git a/gpack/travian_t4/img/m/w1.jpg b/assets/gpack/travian_t4/img/m/w1.jpg similarity index 100% rename from gpack/travian_t4/img/m/w1.jpg rename to assets/gpack/travian_t4/img/m/w1.jpg diff --git a/gpack/travian_t4/img/m/w10.jpg b/assets/gpack/travian_t4/img/m/w10.jpg similarity index 100% rename from gpack/travian_t4/img/m/w10.jpg rename to assets/gpack/travian_t4/img/m/w10.jpg diff --git a/gpack/travian_t4/img/m/w11.jpg b/assets/gpack/travian_t4/img/m/w11.jpg similarity index 100% rename from gpack/travian_t4/img/m/w11.jpg rename to assets/gpack/travian_t4/img/m/w11.jpg diff --git a/gpack/travian_t4/img/m/w12.jpg b/assets/gpack/travian_t4/img/m/w12.jpg similarity index 100% rename from gpack/travian_t4/img/m/w12.jpg rename to assets/gpack/travian_t4/img/m/w12.jpg diff --git a/gpack/travian_t4/img/m/w2.jpg b/assets/gpack/travian_t4/img/m/w2.jpg similarity index 100% rename from gpack/travian_t4/img/m/w2.jpg rename to assets/gpack/travian_t4/img/m/w2.jpg diff --git a/gpack/travian_t4/img/m/w3.jpg b/assets/gpack/travian_t4/img/m/w3.jpg similarity index 100% rename from gpack/travian_t4/img/m/w3.jpg rename to assets/gpack/travian_t4/img/m/w3.jpg diff --git a/gpack/travian_t4/img/m/w4.jpg b/assets/gpack/travian_t4/img/m/w4.jpg similarity index 100% rename from gpack/travian_t4/img/m/w4.jpg rename to assets/gpack/travian_t4/img/m/w4.jpg diff --git a/gpack/travian_t4/img/m/w5.jpg b/assets/gpack/travian_t4/img/m/w5.jpg similarity index 100% rename from gpack/travian_t4/img/m/w5.jpg rename to assets/gpack/travian_t4/img/m/w5.jpg diff --git a/gpack/travian_t4/img/m/w6.jpg b/assets/gpack/travian_t4/img/m/w6.jpg similarity index 100% rename from gpack/travian_t4/img/m/w6.jpg rename to assets/gpack/travian_t4/img/m/w6.jpg diff --git a/gpack/travian_t4/img/m/w7.jpg b/assets/gpack/travian_t4/img/m/w7.jpg similarity index 100% rename from gpack/travian_t4/img/m/w7.jpg rename to assets/gpack/travian_t4/img/m/w7.jpg diff --git a/gpack/travian_t4/img/m/w8.jpg b/assets/gpack/travian_t4/img/m/w8.jpg similarity index 100% rename from gpack/travian_t4/img/m/w8.jpg rename to assets/gpack/travian_t4/img/m/w8.jpg diff --git a/gpack/travian_t4/img/m/w9.jpg b/assets/gpack/travian_t4/img/m/w9.jpg similarity index 100% rename from gpack/travian_t4/img/m/w9.jpg rename to assets/gpack/travian_t4/img/m/w9.jpg diff --git a/gpack/travian_t4/img/misc/403.gif b/assets/gpack/travian_t4/img/misc/403.gif similarity index 100% rename from gpack/travian_t4/img/misc/403.gif rename to assets/gpack/travian_t4/img/misc/403.gif diff --git a/gpack/travian_t4/img/misc/404.gif b/assets/gpack/travian_t4/img/misc/404.gif similarity index 100% rename from gpack/travian_t4/img/misc/404.gif rename to assets/gpack/travian_t4/img/misc/404.gif diff --git a/gpack/travian_t4/img/misc/500.gif b/assets/gpack/travian_t4/img/misc/500.gif similarity index 100% rename from gpack/travian_t4/img/misc/500.gif rename to assets/gpack/travian_t4/img/misc/500.gif diff --git a/gpack/travian_t4/img/misc/artefacts.gif b/assets/gpack/travian_t4/img/misc/artefacts.gif similarity index 100% rename from gpack/travian_t4/img/misc/artefacts.gif rename to assets/gpack/travian_t4/img/misc/artefacts.gif diff --git a/gpack/travian_t4/img/misc/cropfinder.gif b/assets/gpack/travian_t4/img/misc/cropfinder.gif similarity index 100% rename from gpack/travian_t4/img/misc/cropfinder.gif rename to assets/gpack/travian_t4/img/misc/cropfinder.gif diff --git a/gpack/travian_default/img/scouts/index.php b/assets/gpack/travian_t4/img/misc/index.php similarity index 100% rename from gpack/travian_default/img/scouts/index.php rename to assets/gpack/travian_t4/img/misc/index.php diff --git a/gpack/travian_t4/img/misc/vip.gif b/assets/gpack/travian_t4/img/misc/vip.gif similarity index 100% rename from gpack/travian_t4/img/misc/vip.gif rename to assets/gpack/travian_t4/img/misc/vip.gif diff --git a/gpack/travian_t4/img/misc/win.png b/assets/gpack/travian_t4/img/misc/win.png similarity index 100% rename from gpack/travian_t4/img/misc/win.png rename to assets/gpack/travian_t4/img/misc/win.png diff --git a/gpack/travian_t4/img/misc/xlo.gif b/assets/gpack/travian_t4/img/misc/xlo.gif similarity index 100% rename from gpack/travian_t4/img/misc/xlo.gif rename to assets/gpack/travian_t4/img/misc/xlo.gif diff --git a/gpack/travian_t4/img/msg/bb_buttons.png b/assets/gpack/travian_t4/img/msg/bb_buttons.png similarity index 100% rename from gpack/travian_t4/img/msg/bb_buttons.png rename to assets/gpack/travian_t4/img/msg/bb_buttons.png diff --git a/gpack/travian_t4/img/msg/block_bg.gif b/assets/gpack/travian_t4/img/msg/block_bg.gif similarity index 100% rename from gpack/travian_t4/img/msg/block_bg.gif rename to assets/gpack/travian_t4/img/msg/block_bg.gif diff --git a/gpack/travian_t4/img/msg/block_bg2.gif b/assets/gpack/travian_t4/img/msg/block_bg2.gif similarity index 100% rename from gpack/travian_t4/img/msg/block_bg2.gif rename to assets/gpack/travian_t4/img/msg/block_bg2.gif diff --git a/gpack/travian_t4/img/msg/block_bg21.gif b/assets/gpack/travian_t4/img/msg/block_bg21.gif similarity index 100% rename from gpack/travian_t4/img/msg/block_bg21.gif rename to assets/gpack/travian_t4/img/msg/block_bg21.gif diff --git a/gpack/travian_t4/img/msg/block_bg22.gif b/assets/gpack/travian_t4/img/msg/block_bg22.gif similarity index 100% rename from gpack/travian_t4/img/msg/block_bg22.gif rename to assets/gpack/travian_t4/img/msg/block_bg22.gif diff --git a/gpack/travian_t4/img/msg/block_bg23.gif b/assets/gpack/travian_t4/img/msg/block_bg23.gif similarity index 100% rename from gpack/travian_t4/img/msg/block_bg23.gif rename to assets/gpack/travian_t4/img/msg/block_bg23.gif diff --git a/gpack/travian_t4/img/msg/block_bg25.gif b/assets/gpack/travian_t4/img/msg/block_bg25.gif similarity index 100% rename from gpack/travian_t4/img/msg/block_bg25.gif rename to assets/gpack/travian_t4/img/msg/block_bg25.gif diff --git a/gpack/travian_default/img/special/index.php b/assets/gpack/travian_t4/img/msg/index.php similarity index 100% rename from gpack/travian_default/img/special/index.php rename to assets/gpack/travian_t4/img/msg/index.php diff --git a/gpack/travian_t4/img/msg/line.gif b/assets/gpack/travian_t4/img/msg/line.gif similarity index 100% rename from gpack/travian_t4/img/msg/line.gif rename to assets/gpack/travian_t4/img/msg/line.gif diff --git a/gpack/travian_t4/img/msg/underline.gif b/assets/gpack/travian_t4/img/msg/underline.gif similarity index 100% rename from gpack/travian_t4/img/msg/underline.gif rename to assets/gpack/travian_t4/img/msg/underline.gif diff --git a/gpack/travian_t4/img/new/adr.png b/assets/gpack/travian_t4/img/new/adr.png similarity index 100% rename from gpack/travian_t4/img/new/adr.png rename to assets/gpack/travian_t4/img/new/adr.png diff --git a/gpack/travian_t4/img/new/anl.png b/assets/gpack/travian_t4/img/new/anl.png similarity index 100% rename from gpack/travian_t4/img/new/anl.png rename to assets/gpack/travian_t4/img/new/anl.png diff --git a/gpack/travian_t4/img/new/background.png b/assets/gpack/travian_t4/img/new/background.png similarity index 100% rename from gpack/travian_t4/img/new/background.png rename to assets/gpack/travian_t4/img/new/background.png diff --git a/gpack/travian_t4/img/new/background_a2b.png b/assets/gpack/travian_t4/img/new/background_a2b.png similarity index 100% rename from gpack/travian_t4/img/new/background_a2b.png rename to assets/gpack/travian_t4/img/new/background_a2b.png diff --git a/gpack/travian_t4/img/new/background_alliance_name.png b/assets/gpack/travian_t4/img/new/background_alliance_name.png similarity index 100% rename from gpack/travian_t4/img/new/background_alliance_name.png rename to assets/gpack/travian_t4/img/new/background_alliance_name.png diff --git a/gpack/travian_t4/img/new/background_map.png b/assets/gpack/travian_t4/img/new/background_map.png similarity index 100% rename from gpack/travian_t4/img/new/background_map.png rename to assets/gpack/travian_t4/img/new/background_map.png diff --git a/gpack/travian_t4/img/new/background_messages.png b/assets/gpack/travian_t4/img/new/background_messages.png similarity index 100% rename from gpack/travian_t4/img/new/background_messages.png rename to assets/gpack/travian_t4/img/new/background_messages.png diff --git a/gpack/travian_t4/img/new/background_plus.png b/assets/gpack/travian_t4/img/new/background_plus.png similarity index 100% rename from gpack/travian_t4/img/new/background_plus.png rename to assets/gpack/travian_t4/img/new/background_plus.png diff --git a/gpack/travian_t4/img/new/background_reports.png b/assets/gpack/travian_t4/img/new/background_reports.png similarity index 100% rename from gpack/travian_t4/img/new/background_reports.png rename to assets/gpack/travian_t4/img/new/background_reports.png diff --git a/gpack/travian_t4/img/new/background_settings.png b/assets/gpack/travian_t4/img/new/background_settings.png similarity index 100% rename from gpack/travian_t4/img/new/background_settings.png rename to assets/gpack/travian_t4/img/new/background_settings.png diff --git a/gpack/travian_t4/img/new/background_statistics.png b/assets/gpack/travian_t4/img/new/background_statistics.png similarity index 100% rename from gpack/travian_t4/img/new/background_statistics.png rename to assets/gpack/travian_t4/img/new/background_statistics.png diff --git a/gpack/travian_t4/img/new/background_village_name.png b/assets/gpack/travian_t4/img/new/background_village_name.png similarity index 100% rename from gpack/travian_t4/img/new/background_village_name.png rename to assets/gpack/travian_t4/img/new/background_village_name.png diff --git a/gpack/travian_t4/img/new/background_warsim.png b/assets/gpack/travian_t4/img/new/background_warsim.png similarity index 100% rename from gpack/travian_t4/img/new/background_warsim.png rename to assets/gpack/travian_t4/img/new/background_warsim.png diff --git a/gpack/travian_t4/img/new/bb_buttons.png b/assets/gpack/travian_t4/img/new/bb_buttons.png similarity index 100% rename from gpack/travian_t4/img/new/bb_buttons.png rename to assets/gpack/travian_t4/img/new/bb_buttons.png diff --git a/gpack/travian_t4/img/new/building_border.png b/assets/gpack/travian_t4/img/new/building_border.png similarity index 100% rename from gpack/travian_t4/img/new/building_border.png rename to assets/gpack/travian_t4/img/new/building_border.png diff --git a/gpack/travian_t4/img/new/c2.gif b/assets/gpack/travian_t4/img/new/c2.gif similarity index 100% rename from gpack/travian_t4/img/new/c2.gif rename to assets/gpack/travian_t4/img/new/c2.gif diff --git a/gpack/travian_t4/img/new/cancel.gif b/assets/gpack/travian_t4/img/new/cancel.gif similarity index 100% rename from gpack/travian_t4/img/new/cancel.gif rename to assets/gpack/travian_t4/img/new/cancel.gif diff --git a/gpack/travian_t4/img/new/clay_border.png b/assets/gpack/travian_t4/img/new/clay_border.png similarity index 100% rename from gpack/travian_t4/img/new/clay_border.png rename to assets/gpack/travian_t4/img/new/clay_border.png diff --git a/gpack/travian_t4/img/new/clock.gif b/assets/gpack/travian_t4/img/new/clock.gif similarity index 100% rename from gpack/travian_t4/img/new/clock.gif rename to assets/gpack/travian_t4/img/new/clock.gif diff --git a/gpack/travian_t4/img/new/closed.png b/assets/gpack/travian_t4/img/new/closed.png similarity index 100% rename from gpack/travian_t4/img/new/closed.png rename to assets/gpack/travian_t4/img/new/closed.png diff --git a/gpack/travian_t4/img/new/crop_border.png b/assets/gpack/travian_t4/img/new/crop_border.png similarity index 100% rename from gpack/travian_t4/img/new/crop_border.png rename to assets/gpack/travian_t4/img/new/crop_border.png diff --git a/gpack/travian_t4/img/new/def.png b/assets/gpack/travian_t4/img/new/def.png similarity index 100% rename from gpack/travian_t4/img/new/def.png rename to assets/gpack/travian_t4/img/new/def.png diff --git a/gpack/travian_t4/img/new/ff.png b/assets/gpack/travian_t4/img/new/ff.png similarity index 100% rename from gpack/travian_t4/img/new/ff.png rename to assets/gpack/travian_t4/img/new/ff.png diff --git a/gpack/travian_t4/img/new/footer.png b/assets/gpack/travian_t4/img/new/footer.png similarity index 100% rename from gpack/travian_t4/img/new/footer.png rename to assets/gpack/travian_t4/img/new/footer.png diff --git a/gpack/travian_t4/img/new/g22.gif b/assets/gpack/travian_t4/img/new/g22.gif similarity index 100% rename from gpack/travian_t4/img/new/g22.gif rename to assets/gpack/travian_t4/img/new/g22.gif diff --git a/gpack/travian_t4/img/new/gaulwall_border.png b/assets/gpack/travian_t4/img/new/gaulwall_border.png similarity index 100% rename from gpack/travian_t4/img/new/gaulwall_border.png rename to assets/gpack/travian_t4/img/new/gaulwall_border.png diff --git a/gpack/travian_t4/img/new/glvl.gif b/assets/gpack/travian_t4/img/new/glvl.gif similarity index 100% rename from gpack/travian_t4/img/new/glvl.gif rename to assets/gpack/travian_t4/img/new/glvl.gif diff --git a/gpack/travian_t4/img/new/gold.gif b/assets/gpack/travian_t4/img/new/gold.gif similarity index 100% rename from gpack/travian_t4/img/new/gold.gif rename to assets/gpack/travian_t4/img/new/gold.gif diff --git a/gpack/travian_t4/img/new/gold_g.gif b/assets/gpack/travian_t4/img/new/gold_g.gif similarity index 100% rename from gpack/travian_t4/img/new/gold_g.gif rename to assets/gpack/travian_t4/img/new/gold_g.gif diff --git a/gpack/travian_t4/img/new/gp.png b/assets/gpack/travian_t4/img/new/gp.png similarity index 100% rename from gpack/travian_t4/img/new/gp.png rename to assets/gpack/travian_t4/img/new/gp.png diff --git a/gpack/travian_t4/img/new/header-gold-grad.png b/assets/gpack/travian_t4/img/new/header-gold-grad.png similarity index 100% rename from gpack/travian_t4/img/new/header-gold-grad.png rename to assets/gpack/travian_t4/img/new/header-gold-grad.png diff --git a/gpack/travian_t4/img/new/header-grad.gif b/assets/gpack/travian_t4/img/new/header-grad.gif similarity index 100% rename from gpack/travian_t4/img/new/header-grad.gif rename to assets/gpack/travian_t4/img/new/header-grad.gif diff --git a/gpack/travian_t4/img/new/header-line.png b/assets/gpack/travian_t4/img/new/header-line.png similarity index 100% rename from gpack/travian_t4/img/new/header-line.png rename to assets/gpack/travian_t4/img/new/header-line.png diff --git a/gpack/travian_t4/img/new/header.png b/assets/gpack/travian_t4/img/new/header.png similarity index 100% rename from gpack/travian_t4/img/new/header.png rename to assets/gpack/travian_t4/img/new/header.png diff --git a/gpack/travian_t4/img/new/ie.png b/assets/gpack/travian_t4/img/new/ie.png similarity index 100% rename from gpack/travian_t4/img/new/ie.png rename to assets/gpack/travian_t4/img/new/ie.png diff --git a/gpack/travian_default/img/t/index.php b/assets/gpack/travian_t4/img/new/index.php similarity index 100% rename from gpack/travian_default/img/t/index.php rename to assets/gpack/travian_t4/img/new/index.php diff --git a/gpack/travian_t4/img/new/iron_border.png b/assets/gpack/travian_t4/img/new/iron_border.png similarity index 100% rename from gpack/travian_t4/img/new/iron_border.png rename to assets/gpack/travian_t4/img/new/iron_border.png diff --git a/gpack/travian_t4/img/new/level.png b/assets/gpack/travian_t4/img/new/level.png similarity index 100% rename from gpack/travian_t4/img/new/level.png rename to assets/gpack/travian_t4/img/new/level.png diff --git a/gpack/travian_t4/img/new/menu.png b/assets/gpack/travian_t4/img/new/menu.png similarity index 100% rename from gpack/travian_t4/img/new/menu.png rename to assets/gpack/travian_t4/img/new/menu.png diff --git a/gpack/travian_t4/img/new/minus.png b/assets/gpack/travian_t4/img/new/minus.png similarity index 100% rename from gpack/travian_t4/img/new/minus.png rename to assets/gpack/travian_t4/img/new/minus.png diff --git a/gpack/travian_t4/img/new/navi1.png b/assets/gpack/travian_t4/img/new/navi1.png similarity index 100% rename from gpack/travian_t4/img/new/navi1.png rename to assets/gpack/travian_t4/img/new/navi1.png diff --git a/gpack/travian_t4/img/new/navi2.png b/assets/gpack/travian_t4/img/new/navi2.png similarity index 100% rename from gpack/travian_t4/img/new/navi2.png rename to assets/gpack/travian_t4/img/new/navi2.png diff --git a/gpack/travian_t4/img/new/navi3.png b/assets/gpack/travian_t4/img/new/navi3.png similarity index 100% rename from gpack/travian_t4/img/new/navi3.png rename to assets/gpack/travian_t4/img/new/navi3.png diff --git a/gpack/travian_t4/img/new/navi4.png b/assets/gpack/travian_t4/img/new/navi4.png similarity index 100% rename from gpack/travian_t4/img/new/navi4.png rename to assets/gpack/travian_t4/img/new/navi4.png diff --git a/gpack/travian_t4/img/new/navi5.png b/assets/gpack/travian_t4/img/new/navi5.png similarity index 100% rename from gpack/travian_t4/img/new/navi5.png rename to assets/gpack/travian_t4/img/new/navi5.png diff --git a/gpack/travian_t4/img/new/npc.png b/assets/gpack/travian_t4/img/new/npc.png similarity index 100% rename from gpack/travian_t4/img/new/npc.png rename to assets/gpack/travian_t4/img/new/npc.png diff --git a/gpack/travian_t4/img/new/off.png b/assets/gpack/travian_t4/img/new/off.png similarity index 100% rename from gpack/travian_t4/img/new/off.png rename to assets/gpack/travian_t4/img/new/off.png diff --git a/gpack/travian_t4/img/new/opened.png b/assets/gpack/travian_t4/img/new/opened.png similarity index 100% rename from gpack/travian_t4/img/new/opened.png rename to assets/gpack/travian_t4/img/new/opened.png diff --git a/gpack/travian_t4/img/new/opera.png b/assets/gpack/travian_t4/img/new/opera.png similarity index 100% rename from gpack/travian_t4/img/new/opera.png rename to assets/gpack/travian_t4/img/new/opera.png diff --git a/gpack/travian_t4/img/new/plus.png b/assets/gpack/travian_t4/img/new/plus.png similarity index 100% rename from gpack/travian_t4/img/new/plus.png rename to assets/gpack/travian_t4/img/new/plus.png diff --git a/gpack/travian_t4/img/new/rallypoint_border.png b/assets/gpack/travian_t4/img/new/rallypoint_border.png similarity index 100% rename from gpack/travian_t4/img/new/rallypoint_border.png rename to assets/gpack/travian_t4/img/new/rallypoint_border.png diff --git a/gpack/travian_t4/img/new/romanwall_border.png b/assets/gpack/travian_t4/img/new/romanwall_border.png similarity index 100% rename from gpack/travian_t4/img/new/romanwall_border.png rename to assets/gpack/travian_t4/img/new/romanwall_border.png diff --git a/gpack/travian_t4/img/new/switch_levels.png b/assets/gpack/travian_t4/img/new/switch_levels.png similarity index 100% rename from gpack/travian_t4/img/new/switch_levels.png rename to assets/gpack/travian_t4/img/new/switch_levels.png diff --git a/gpack/travian_t4/img/new/teutonwall_border.png b/assets/gpack/travian_t4/img/new/teutonwall_border.png similarity index 100% rename from gpack/travian_t4/img/new/teutonwall_border.png rename to assets/gpack/travian_t4/img/new/teutonwall_border.png diff --git a/gpack/travian_t4/img/new/textmenu.gif b/assets/gpack/travian_t4/img/new/textmenu.gif similarity index 100% rename from gpack/travian_t4/img/new/textmenu.gif rename to assets/gpack/travian_t4/img/new/textmenu.gif diff --git a/gpack/travian_t4/img/new/tick.png b/assets/gpack/travian_t4/img/new/tick.png similarity index 100% rename from gpack/travian_t4/img/new/tick.png rename to assets/gpack/travian_t4/img/new/tick.png diff --git a/gpack/travian_t4/img/new/top10.png b/assets/gpack/travian_t4/img/new/top10.png similarity index 100% rename from gpack/travian_t4/img/new/top10.png rename to assets/gpack/travian_t4/img/new/top10.png diff --git a/gpack/travian_t4/img/new/white.gif b/assets/gpack/travian_t4/img/new/white.gif similarity index 100% rename from gpack/travian_t4/img/new/white.gif rename to assets/gpack/travian_t4/img/new/white.gif diff --git a/gpack/travian_t4/img/new/wood_border.png b/assets/gpack/travian_t4/img/new/wood_border.png similarity index 100% rename from gpack/travian_t4/img/new/wood_border.png rename to assets/gpack/travian_t4/img/new/wood_border.png diff --git a/gpack/travian_t4/img/new/worldcup_background.png b/assets/gpack/travian_t4/img/new/worldcup_background.png similarity index 100% rename from gpack/travian_t4/img/new/worldcup_background.png rename to assets/gpack/travian_t4/img/new/worldcup_background.png diff --git a/gpack/travian_t4/img/p/attack_marker.gif b/assets/gpack/travian_t4/img/p/attack_marker.gif similarity index 100% rename from gpack/travian_t4/img/p/attack_marker.gif rename to assets/gpack/travian_t4/img/p/attack_marker.gif diff --git a/gpack/travian_t4/img/p/bau0.jpg b/assets/gpack/travian_t4/img/p/bau0.jpg similarity index 100% rename from gpack/travian_t4/img/p/bau0.jpg rename to assets/gpack/travian_t4/img/p/bau0.jpg diff --git a/gpack/travian_t4/img/p/def10.jpg b/assets/gpack/travian_t4/img/p/def10.jpg similarity index 100% rename from gpack/travian_t4/img/p/def10.jpg rename to assets/gpack/travian_t4/img/p/def10.jpg diff --git a/gpack/travian_default/img/u/index.php b/assets/gpack/travian_t4/img/p/index.php similarity index 100% rename from gpack/travian_default/img/u/index.php rename to assets/gpack/travian_t4/img/p/index.php diff --git a/gpack/travian_t4/img/p/no_ads.png b/assets/gpack/travian_t4/img/p/no_ads.png similarity index 100% rename from gpack/travian_t4/img/p/no_ads.png rename to assets/gpack/travian_t4/img/p/no_ads.png diff --git a/gpack/travian_t4/img/p/npc.jpg b/assets/gpack/travian_t4/img/p/npc.jpg similarity index 100% rename from gpack/travian_t4/img/p/npc.jpg rename to assets/gpack/travian_t4/img/p/npc.jpg diff --git a/gpack/travian_t4/img/p/off10.jpg b/assets/gpack/travian_t4/img/p/off10.jpg similarity index 100% rename from gpack/travian_t4/img/p/off10.jpg rename to assets/gpack/travian_t4/img/p/off10.jpg diff --git a/gpack/travian_t4/img/p/p1_25.jpg b/assets/gpack/travian_t4/img/p/p1_25.jpg similarity index 100% rename from gpack/travian_t4/img/p/p1_25.jpg rename to assets/gpack/travian_t4/img/p/p1_25.jpg diff --git a/gpack/travian_t4/img/p/p2_25.jpg b/assets/gpack/travian_t4/img/p/p2_25.jpg similarity index 100% rename from gpack/travian_t4/img/p/p2_25.jpg rename to assets/gpack/travian_t4/img/p/p2_25.jpg diff --git a/gpack/travian_t4/img/p/p3_25.jpg b/assets/gpack/travian_t4/img/p/p3_25.jpg similarity index 100% rename from gpack/travian_t4/img/p/p3_25.jpg rename to assets/gpack/travian_t4/img/p/p3_25.jpg diff --git a/gpack/travian_t4/img/p/p4_25.jpg b/assets/gpack/travian_t4/img/p/p4_25.jpg similarity index 100% rename from gpack/travian_t4/img/p/p4_25.jpg rename to assets/gpack/travian_t4/img/p/p4_25.jpg diff --git a/gpack/travian_t4/img/q/alliance.jpg b/assets/gpack/travian_t4/img/q/alliance.jpg similarity index 100% rename from gpack/travian_t4/img/q/alliance.jpg rename to assets/gpack/travian_t4/img/q/alliance.jpg diff --git a/gpack/travian_t4/img/q/allres.jpg b/assets/gpack/travian_t4/img/q/allres.jpg similarity index 100% rename from gpack/travian_t4/img/q/allres.jpg rename to assets/gpack/travian_t4/img/q/allres.jpg diff --git a/gpack/travian_t4/img/q/army.jpg b/assets/gpack/travian_t4/img/q/army.jpg similarity index 100% rename from gpack/travian_t4/img/q/army.jpg rename to assets/gpack/travian_t4/img/q/army.jpg diff --git a/gpack/travian_t4/img/q/barracks.jpg b/assets/gpack/travian_t4/img/q/barracks.jpg similarity index 100% rename from gpack/travian_t4/img/q/barracks.jpg rename to assets/gpack/travian_t4/img/q/barracks.jpg diff --git a/gpack/travian_t4/img/q/clay_iron.jpg b/assets/gpack/travian_t4/img/q/clay_iron.jpg similarity index 100% rename from gpack/travian_t4/img/q/clay_iron.jpg rename to assets/gpack/travian_t4/img/q/clay_iron.jpg diff --git a/gpack/travian_t4/img/q/cost.jpg b/assets/gpack/travian_t4/img/q/cost.jpg similarity index 100% rename from gpack/travian_t4/img/q/cost.jpg rename to assets/gpack/travian_t4/img/q/cost.jpg diff --git a/gpack/travian_t4/img/q/embassy.jpg b/assets/gpack/travian_t4/img/q/embassy.jpg similarity index 100% rename from gpack/travian_t4/img/q/embassy.jpg rename to assets/gpack/travian_t4/img/q/embassy.jpg diff --git a/gpack/travian_t4/img/q/farm.jpg b/assets/gpack/travian_t4/img/q/farm.jpg similarity index 100% rename from gpack/travian_t4/img/q/farm.jpg rename to assets/gpack/travian_t4/img/q/farm.jpg diff --git a/gpack/travian_t4/img/q/gold.jpg b/assets/gpack/travian_t4/img/q/gold.jpg similarity index 100% rename from gpack/travian_t4/img/q/gold.jpg rename to assets/gpack/travian_t4/img/q/gold.jpg diff --git a/gpack/travian_t4/img/q/granary.jpg b/assets/gpack/travian_t4/img/q/granary.jpg similarity index 100% rename from gpack/travian_t4/img/q/granary.jpg rename to assets/gpack/travian_t4/img/q/granary.jpg diff --git a/gpack/travian_t4/img/q/granary_rally.jpg b/assets/gpack/travian_t4/img/q/granary_rally.jpg similarity index 100% rename from gpack/travian_t4/img/q/granary_rally.jpg rename to assets/gpack/travian_t4/img/q/granary_rally.jpg diff --git a/gpack/travian_t4/img/q/hide.jpg b/assets/gpack/travian_t4/img/q/hide.jpg similarity index 100% rename from gpack/travian_t4/img/q/hide.jpg rename to assets/gpack/travian_t4/img/q/hide.jpg diff --git a/gpack/travian_default/img/u2/index.php b/assets/gpack/travian_t4/img/q/index.php similarity index 100% rename from gpack/travian_default/img/u2/index.php rename to assets/gpack/travian_t4/img/q/index.php diff --git a/gpack/travian_t4/img/q/intro.jpg b/assets/gpack/travian_t4/img/q/intro.jpg similarity index 100% rename from gpack/travian_t4/img/q/intro.jpg rename to assets/gpack/travian_t4/img/q/intro.jpg diff --git a/gpack/travian_t4/img/q/l0.jpg b/assets/gpack/travian_t4/img/q/l0.jpg similarity index 100% rename from gpack/travian_t4/img/q/l0.jpg rename to assets/gpack/travian_t4/img/q/l0.jpg diff --git a/gpack/travian_t4/img/q/l0g.jpg b/assets/gpack/travian_t4/img/q/l0g.jpg similarity index 100% rename from gpack/travian_t4/img/q/l0g.jpg rename to assets/gpack/travian_t4/img/q/l0g.jpg diff --git a/gpack/travian_t4/img/q/l1.jpg b/assets/gpack/travian_t4/img/q/l1.jpg similarity index 100% rename from gpack/travian_t4/img/q/l1.jpg rename to assets/gpack/travian_t4/img/q/l1.jpg diff --git a/gpack/travian_t4/img/q/l1g.jpg b/assets/gpack/travian_t4/img/q/l1g.jpg similarity index 100% rename from gpack/travian_t4/img/q/l1g.jpg rename to assets/gpack/travian_t4/img/q/l1g.jpg diff --git a/gpack/travian_t4/img/q/l2.jpg b/assets/gpack/travian_t4/img/q/l2.jpg similarity index 100% rename from gpack/travian_t4/img/q/l2.jpg rename to assets/gpack/travian_t4/img/q/l2.jpg diff --git a/gpack/travian_t4/img/q/l2g.jpg b/assets/gpack/travian_t4/img/q/l2g.jpg similarity index 100% rename from gpack/travian_t4/img/q/l2g.jpg rename to assets/gpack/travian_t4/img/q/l2g.jpg diff --git a/gpack/travian_t4/img/q/l3.jpg b/assets/gpack/travian_t4/img/q/l3.jpg similarity index 100% rename from gpack/travian_t4/img/q/l3.jpg rename to assets/gpack/travian_t4/img/q/l3.jpg diff --git a/gpack/travian_t4/img/q/l3g.jpg b/assets/gpack/travian_t4/img/q/l3g.jpg similarity index 100% rename from gpack/travian_t4/img/q/l3g.jpg rename to assets/gpack/travian_t4/img/q/l3g.jpg diff --git a/gpack/travian_t4/img/q/l4.jpg b/assets/gpack/travian_t4/img/q/l4.jpg similarity index 100% rename from gpack/travian_t4/img/q/l4.jpg rename to assets/gpack/travian_t4/img/q/l4.jpg diff --git a/gpack/travian_t4/img/q/l4g.jpg b/assets/gpack/travian_t4/img/q/l4g.jpg similarity index 100% rename from gpack/travian_t4/img/q/l4g.jpg rename to assets/gpack/travian_t4/img/q/l4g.jpg diff --git a/gpack/travian_t4/img/q/l5.jpg b/assets/gpack/travian_t4/img/q/l5.jpg similarity index 100% rename from gpack/travian_t4/img/q/l5.jpg rename to assets/gpack/travian_t4/img/q/l5.jpg diff --git a/gpack/travian_t4/img/q/l5g.jpg b/assets/gpack/travian_t4/img/q/l5g.jpg similarity index 100% rename from gpack/travian_t4/img/q/l5g.jpg rename to assets/gpack/travian_t4/img/q/l5g.jpg diff --git a/gpack/travian_t4/img/q/main.jpg b/assets/gpack/travian_t4/img/q/main.jpg similarity index 100% rename from gpack/travian_t4/img/q/main.jpg rename to assets/gpack/travian_t4/img/q/main.jpg diff --git a/gpack/travian_t4/img/q/market.jpg b/assets/gpack/travian_t4/img/q/market.jpg similarity index 100% rename from gpack/travian_t4/img/q/market.jpg rename to assets/gpack/travian_t4/img/q/market.jpg diff --git a/gpack/travian_t4/img/q/medal.jpg b/assets/gpack/travian_t4/img/q/medal.jpg similarity index 100% rename from gpack/travian_t4/img/q/medal.jpg rename to assets/gpack/travian_t4/img/q/medal.jpg diff --git a/gpack/travian_t4/img/q/msg.jpg b/assets/gpack/travian_t4/img/q/msg.jpg similarity index 100% rename from gpack/travian_t4/img/q/msg.jpg rename to assets/gpack/travian_t4/img/q/msg.jpg diff --git a/gpack/travian_t4/img/q/neighbour.jpg b/assets/gpack/travian_t4/img/q/neighbour.jpg similarity index 100% rename from gpack/travian_t4/img/q/neighbour.jpg rename to assets/gpack/travian_t4/img/q/neighbour.jpg diff --git a/gpack/travian_t4/img/q/new_village.jpg b/assets/gpack/travian_t4/img/q/new_village.jpg similarity index 100% rename from gpack/travian_t4/img/q/new_village.jpg rename to assets/gpack/travian_t4/img/q/new_village.jpg diff --git a/gpack/travian_t4/img/q/rally.jpg b/assets/gpack/travian_t4/img/q/rally.jpg similarity index 100% rename from gpack/travian_t4/img/q/rally.jpg rename to assets/gpack/travian_t4/img/q/rally.jpg diff --git a/gpack/travian_t4/img/q/rank.jpg b/assets/gpack/travian_t4/img/q/rank.jpg similarity index 100% rename from gpack/travian_t4/img/q/rank.jpg rename to assets/gpack/travian_t4/img/q/rank.jpg diff --git a/gpack/travian_t4/img/q/report.jpg b/assets/gpack/travian_t4/img/q/report.jpg similarity index 100% rename from gpack/travian_t4/img/q/report.jpg rename to assets/gpack/travian_t4/img/q/report.jpg diff --git a/gpack/travian_t4/img/q/units.jpg b/assets/gpack/travian_t4/img/q/units.jpg similarity index 100% rename from gpack/travian_t4/img/q/units.jpg rename to assets/gpack/travian_t4/img/q/units.jpg diff --git a/gpack/travian_t4/img/q/village_name.jpg b/assets/gpack/travian_t4/img/q/village_name.jpg similarity index 100% rename from gpack/travian_t4/img/q/village_name.jpg rename to assets/gpack/travian_t4/img/q/village_name.jpg diff --git a/gpack/travian_t4/img/q/warehouse.jpg b/assets/gpack/travian_t4/img/q/warehouse.jpg similarity index 100% rename from gpack/travian_t4/img/q/warehouse.jpg rename to assets/gpack/travian_t4/img/q/warehouse.jpg diff --git a/gpack/travian_t4/img/q/wood.jpg b/assets/gpack/travian_t4/img/q/wood.jpg similarity index 100% rename from gpack/travian_t4/img/q/wood.jpg rename to assets/gpack/travian_t4/img/q/wood.jpg diff --git a/gpack/travian_t4/img/r/1.gif b/assets/gpack/travian_t4/img/r/1.gif similarity index 100% rename from gpack/travian_t4/img/r/1.gif rename to assets/gpack/travian_t4/img/r/1.gif diff --git a/gpack/travian_t4/img/r/2.gif b/assets/gpack/travian_t4/img/r/2.gif similarity index 100% rename from gpack/travian_t4/img/r/2.gif rename to assets/gpack/travian_t4/img/r/2.gif diff --git a/gpack/travian_t4/img/r/3.gif b/assets/gpack/travian_t4/img/r/3.gif similarity index 100% rename from gpack/travian_t4/img/r/3.gif rename to assets/gpack/travian_t4/img/r/3.gif diff --git a/gpack/travian_t4/img/r/4.gif b/assets/gpack/travian_t4/img/r/4.gif similarity index 100% rename from gpack/travian_t4/img/r/4.gif rename to assets/gpack/travian_t4/img/r/4.gif diff --git a/gpack/travian_t4/img/r/4b.gif b/assets/gpack/travian_t4/img/r/4b.gif similarity index 100% rename from gpack/travian_t4/img/r/4b.gif rename to assets/gpack/travian_t4/img/r/4b.gif diff --git a/gpack/travian_t4/img/r/5.gif b/assets/gpack/travian_t4/img/r/5.gif similarity index 100% rename from gpack/travian_t4/img/r/5.gif rename to assets/gpack/travian_t4/img/r/5.gif diff --git a/gpack/travian_t4/img/r/5b.gif b/assets/gpack/travian_t4/img/r/5b.gif similarity index 100% rename from gpack/travian_t4/img/r/5b.gif rename to assets/gpack/travian_t4/img/r/5b.gif diff --git a/gpack/travian_t4/img/r/6.gif b/assets/gpack/travian_t4/img/r/6.gif similarity index 100% rename from gpack/travian_t4/img/r/6.gif rename to assets/gpack/travian_t4/img/r/6.gif diff --git a/gpack/travian_t4/img/r/7.gif b/assets/gpack/travian_t4/img/r/7.gif similarity index 100% rename from gpack/travian_t4/img/r/7.gif rename to assets/gpack/travian_t4/img/r/7.gif diff --git a/gpack/travian_t4/img/r/easter.gif b/assets/gpack/travian_t4/img/r/easter.gif similarity index 100% rename from gpack/travian_t4/img/r/easter.gif rename to assets/gpack/travian_t4/img/r/easter.gif diff --git a/gpack/travian_default/img/u2rtl/index.php b/assets/gpack/travian_t4/img/r/index.php similarity index 100% rename from gpack/travian_default/img/u2rtl/index.php rename to assets/gpack/travian_t4/img/r/index.php diff --git a/gpack/travian_t4/img/r/newy.gif b/assets/gpack/travian_t4/img/r/newy.gif similarity index 100% rename from gpack/travian_t4/img/r/newy.gif rename to assets/gpack/travian_t4/img/r/newy.gif diff --git a/gpack/travian_t4/img/r/peace.gif b/assets/gpack/travian_t4/img/r/peace.gif similarity index 100% rename from gpack/travian_t4/img/r/peace.gif rename to assets/gpack/travian_t4/img/r/peace.gif diff --git a/gpack/travian_t4/img/r/xmas.gif b/assets/gpack/travian_t4/img/r/xmas.gif similarity index 100% rename from gpack/travian_t4/img/r/xmas.gif rename to assets/gpack/travian_t4/img/r/xmas.gif diff --git a/gpack/travian_t4/img/report/adventure_report.jpg b/assets/gpack/travian_t4/img/report/adventure_report.jpg similarity index 100% rename from gpack/travian_t4/img/report/adventure_report.jpg rename to assets/gpack/travian_t4/img/report/adventure_report.jpg diff --git a/gpack/travian_t4/img/report/attack.jpg b/assets/gpack/travian_t4/img/report/attack.jpg similarity index 100% rename from gpack/travian_t4/img/report/attack.jpg rename to assets/gpack/travian_t4/img/report/attack.jpg diff --git a/gpack/travian_default/img/wm/index.php b/assets/gpack/travian_t4/img/report/index.php similarity index 100% rename from gpack/travian_default/img/wm/index.php rename to assets/gpack/travian_t4/img/report/index.php diff --git a/gpack/travian_t4/img/report/reinforcement.jpg b/assets/gpack/travian_t4/img/report/reinforcement.jpg similarity index 100% rename from gpack/travian_t4/img/report/reinforcement.jpg rename to assets/gpack/travian_t4/img/report/reinforcement.jpg diff --git a/gpack/travian_t4/img/report/resourcetrade.jpg b/assets/gpack/travian_t4/img/report/resourcetrade.jpg similarity index 100% rename from gpack/travian_t4/img/report/resourcetrade.jpg rename to assets/gpack/travian_t4/img/report/resourcetrade.jpg diff --git a/gpack/travian_t4/img/report/spy.jpg b/assets/gpack/travian_t4/img/report/spy.jpg similarity index 100% rename from gpack/travian_t4/img/report/spy.jpg rename to assets/gpack/travian_t4/img/report/spy.jpg diff --git a/gpack/travian_t4/img/report/units.jpg b/assets/gpack/travian_t4/img/report/units.jpg similarity index 100% rename from gpack/travian_t4/img/report/units.jpg rename to assets/gpack/travian_t4/img/report/units.jpg diff --git a/gpack/travian_t4/img/s/def.gif b/assets/gpack/travian_t4/img/s/def.gif similarity index 100% rename from gpack/travian_t4/img/s/def.gif rename to assets/gpack/travian_t4/img/s/def.gif diff --git a/gpack/travian_default/index.php b/assets/gpack/travian_t4/img/s/index.php similarity index 100% rename from gpack/travian_default/index.php rename to assets/gpack/travian_t4/img/s/index.php diff --git a/gpack/travian_t4/img/s/off.gif b/assets/gpack/travian_t4/img/s/off.gif similarity index 100% rename from gpack/travian_t4/img/s/off.gif rename to assets/gpack/travian_t4/img/s/off.gif diff --git a/gpack/travian_t4/img/s/top10.gif b/assets/gpack/travian_t4/img/s/top10.gif similarity index 100% rename from gpack/travian_t4/img/s/top10.gif rename to assets/gpack/travian_t4/img/s/top10.gif diff --git a/gpack/travian_t4/img/s/v1.gif b/assets/gpack/travian_t4/img/s/v1.gif similarity index 100% rename from gpack/travian_t4/img/s/v1.gif rename to assets/gpack/travian_t4/img/s/v1.gif diff --git a/gpack/travian_t4/img/s/v2.gif b/assets/gpack/travian_t4/img/s/v2.gif similarity index 100% rename from gpack/travian_t4/img/s/v2.gif rename to assets/gpack/travian_t4/img/s/v2.gif diff --git a/gpack/travian_t4/img/s/v3.gif b/assets/gpack/travian_t4/img/s/v3.gif similarity index 100% rename from gpack/travian_t4/img/s/v3.gif rename to assets/gpack/travian_t4/img/s/v3.gif diff --git a/gpack/travian_t4/img/scouts/18.gif b/assets/gpack/travian_t4/img/scouts/18.gif similarity index 100% rename from gpack/travian_t4/img/scouts/18.gif rename to assets/gpack/travian_t4/img/scouts/18.gif diff --git a/gpack/travian_t4/img/scouts/19.gif b/assets/gpack/travian_t4/img/scouts/19.gif similarity index 100% rename from gpack/travian_t4/img/scouts/19.gif rename to assets/gpack/travian_t4/img/scouts/19.gif diff --git a/gpack/travian_t4/img/scouts/20.gif b/assets/gpack/travian_t4/img/scouts/20.gif similarity index 100% rename from gpack/travian_t4/img/scouts/20.gif rename to assets/gpack/travian_t4/img/scouts/20.gif diff --git a/gpack/travian_t4/img/scouts/21.gif b/assets/gpack/travian_t4/img/scouts/21.gif similarity index 100% rename from gpack/travian_t4/img/scouts/21.gif rename to assets/gpack/travian_t4/img/scouts/21.gif diff --git a/gpack/travian_t4/img/scouts/22.gif b/assets/gpack/travian_t4/img/scouts/22.gif similarity index 100% rename from gpack/travian_t4/img/scouts/22.gif rename to assets/gpack/travian_t4/img/scouts/22.gif diff --git a/gpack/travian_default/lang/en/a/index.php b/assets/gpack/travian_t4/img/scouts/index.php similarity index 100% rename from gpack/travian_default/lang/en/a/index.php rename to assets/gpack/travian_t4/img/scouts/index.php diff --git a/gpack/travian_t4/img/special/NewyearRocket_dark_1a.gif b/assets/gpack/travian_t4/img/special/NewyearRocket_dark_1a.gif similarity index 100% rename from gpack/travian_t4/img/special/NewyearRocket_dark_1a.gif rename to assets/gpack/travian_t4/img/special/NewyearRocket_dark_1a.gif diff --git a/gpack/travian_t4/img/special/NewyearRocket_green_1a.gif b/assets/gpack/travian_t4/img/special/NewyearRocket_green_1a.gif similarity index 100% rename from gpack/travian_t4/img/special/NewyearRocket_green_1a.gif rename to assets/gpack/travian_t4/img/special/NewyearRocket_green_1a.gif diff --git a/gpack/travian_t4/img/special/NewyearRocket_orange_1a.gif b/assets/gpack/travian_t4/img/special/NewyearRocket_orange_1a.gif similarity index 100% rename from gpack/travian_t4/img/special/NewyearRocket_orange_1a.gif rename to assets/gpack/travian_t4/img/special/NewyearRocket_orange_1a.gif diff --git a/gpack/travian_t4/img/special/NewyearRocket_purple_1a.gif b/assets/gpack/travian_t4/img/special/NewyearRocket_purple_1a.gif similarity index 100% rename from gpack/travian_t4/img/special/NewyearRocket_purple_1a.gif rename to assets/gpack/travian_t4/img/special/NewyearRocket_purple_1a.gif diff --git a/gpack/travian_t4/img/special/NewyearRocket_red_1a.gif b/assets/gpack/travian_t4/img/special/NewyearRocket_red_1a.gif similarity index 100% rename from gpack/travian_t4/img/special/NewyearRocket_red_1a.gif rename to assets/gpack/travian_t4/img/special/NewyearRocket_red_1a.gif diff --git a/gpack/travian_t4/img/special/NewyearRocket_turquoise_1a.gif b/assets/gpack/travian_t4/img/special/NewyearRocket_turquoise_1a.gif similarity index 100% rename from gpack/travian_t4/img/special/NewyearRocket_turquoise_1a.gif rename to assets/gpack/travian_t4/img/special/NewyearRocket_turquoise_1a.gif diff --git a/gpack/travian_t4/img/special/NewyearRocket_yellow_1a.gif b/assets/gpack/travian_t4/img/special/NewyearRocket_yellow_1a.gif similarity index 100% rename from gpack/travian_t4/img/special/NewyearRocket_yellow_1a.gif rename to assets/gpack/travian_t4/img/special/NewyearRocket_yellow_1a.gif diff --git a/gpack/travian_default/lang/en/b/index.php b/assets/gpack/travian_t4/img/special/index.php similarity index 100% rename from gpack/travian_default/lang/en/b/index.php rename to assets/gpack/travian_t4/img/special/index.php diff --git a/gpack/travian_t4/img/t/MH.png b/assets/gpack/travian_t4/img/t/MH.png similarity index 100% rename from gpack/travian_t4/img/t/MH.png rename to assets/gpack/travian_t4/img/t/MH.png diff --git a/gpack/travian_t4/img/t/a1_1.jpg b/assets/gpack/travian_t4/img/t/a1_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/a1_1.jpg rename to assets/gpack/travian_t4/img/t/a1_1.jpg diff --git a/gpack/travian_t4/img/t/a1_10.jpg b/assets/gpack/travian_t4/img/t/a1_10.jpg similarity index 100% rename from gpack/travian_t4/img/t/a1_10.jpg rename to assets/gpack/travian_t4/img/t/a1_10.jpg diff --git a/gpack/travian_t4/img/t/a1_2.jpg b/assets/gpack/travian_t4/img/t/a1_2.jpg similarity index 100% rename from gpack/travian_t4/img/t/a1_2.jpg rename to assets/gpack/travian_t4/img/t/a1_2.jpg diff --git a/gpack/travian_t4/img/t/a1_3.jpg b/assets/gpack/travian_t4/img/t/a1_3.jpg similarity index 100% rename from gpack/travian_t4/img/t/a1_3.jpg rename to assets/gpack/travian_t4/img/t/a1_3.jpg diff --git a/gpack/travian_t4/img/t/a1_4.jpg b/assets/gpack/travian_t4/img/t/a1_4.jpg similarity index 100% rename from gpack/travian_t4/img/t/a1_4.jpg rename to assets/gpack/travian_t4/img/t/a1_4.jpg diff --git a/gpack/travian_t4/img/t/a1_5.jpg b/assets/gpack/travian_t4/img/t/a1_5.jpg similarity index 100% rename from gpack/travian_t4/img/t/a1_5.jpg rename to assets/gpack/travian_t4/img/t/a1_5.jpg diff --git a/gpack/travian_t4/img/t/a1_6.jpg b/assets/gpack/travian_t4/img/t/a1_6.jpg similarity index 100% rename from gpack/travian_t4/img/t/a1_6.jpg rename to assets/gpack/travian_t4/img/t/a1_6.jpg diff --git a/gpack/travian_t4/img/t/a1_7.jpg b/assets/gpack/travian_t4/img/t/a1_7.jpg similarity index 100% rename from gpack/travian_t4/img/t/a1_7.jpg rename to assets/gpack/travian_t4/img/t/a1_7.jpg diff --git a/gpack/travian_t4/img/t/a1_8.jpg b/assets/gpack/travian_t4/img/t/a1_8.jpg similarity index 100% rename from gpack/travian_t4/img/t/a1_8.jpg rename to assets/gpack/travian_t4/img/t/a1_8.jpg diff --git a/gpack/travian_t4/img/t/a1_9.jpg b/assets/gpack/travian_t4/img/t/a1_9.jpg similarity index 100% rename from gpack/travian_t4/img/t/a1_9.jpg rename to assets/gpack/travian_t4/img/t/a1_9.jpg diff --git a/gpack/travian_t4/img/t/a2_1.jpg b/assets/gpack/travian_t4/img/t/a2_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/a2_1.jpg rename to assets/gpack/travian_t4/img/t/a2_1.jpg diff --git a/gpack/travian_t4/img/t/a2_10.jpg b/assets/gpack/travian_t4/img/t/a2_10.jpg similarity index 100% rename from gpack/travian_t4/img/t/a2_10.jpg rename to assets/gpack/travian_t4/img/t/a2_10.jpg diff --git a/gpack/travian_t4/img/t/a2_2.jpg b/assets/gpack/travian_t4/img/t/a2_2.jpg similarity index 100% rename from gpack/travian_t4/img/t/a2_2.jpg rename to assets/gpack/travian_t4/img/t/a2_2.jpg diff --git a/gpack/travian_t4/img/t/a2_3.jpg b/assets/gpack/travian_t4/img/t/a2_3.jpg similarity index 100% rename from gpack/travian_t4/img/t/a2_3.jpg rename to assets/gpack/travian_t4/img/t/a2_3.jpg diff --git a/gpack/travian_t4/img/t/a2_4.jpg b/assets/gpack/travian_t4/img/t/a2_4.jpg similarity index 100% rename from gpack/travian_t4/img/t/a2_4.jpg rename to assets/gpack/travian_t4/img/t/a2_4.jpg diff --git a/gpack/travian_t4/img/t/a2_5.jpg b/assets/gpack/travian_t4/img/t/a2_5.jpg similarity index 100% rename from gpack/travian_t4/img/t/a2_5.jpg rename to assets/gpack/travian_t4/img/t/a2_5.jpg diff --git a/gpack/travian_t4/img/t/a2_6.jpg b/assets/gpack/travian_t4/img/t/a2_6.jpg similarity index 100% rename from gpack/travian_t4/img/t/a2_6.jpg rename to assets/gpack/travian_t4/img/t/a2_6.jpg diff --git a/gpack/travian_t4/img/t/a2_7.jpg b/assets/gpack/travian_t4/img/t/a2_7.jpg similarity index 100% rename from gpack/travian_t4/img/t/a2_7.jpg rename to assets/gpack/travian_t4/img/t/a2_7.jpg diff --git a/gpack/travian_t4/img/t/a2_8.jpg b/assets/gpack/travian_t4/img/t/a2_8.jpg similarity index 100% rename from gpack/travian_t4/img/t/a2_8.jpg rename to assets/gpack/travian_t4/img/t/a2_8.jpg diff --git a/gpack/travian_t4/img/t/a2_9.jpg b/assets/gpack/travian_t4/img/t/a2_9.jpg similarity index 100% rename from gpack/travian_t4/img/t/a2_9.jpg rename to assets/gpack/travian_t4/img/t/a2_9.jpg diff --git a/gpack/travian_t4/img/t/a3_1.jpg b/assets/gpack/travian_t4/img/t/a3_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/a3_1.jpg rename to assets/gpack/travian_t4/img/t/a3_1.jpg diff --git a/gpack/travian_t4/img/t/a3_10.jpg b/assets/gpack/travian_t4/img/t/a3_10.jpg similarity index 100% rename from gpack/travian_t4/img/t/a3_10.jpg rename to assets/gpack/travian_t4/img/t/a3_10.jpg diff --git a/gpack/travian_t4/img/t/a3_2.jpg b/assets/gpack/travian_t4/img/t/a3_2.jpg similarity index 100% rename from gpack/travian_t4/img/t/a3_2.jpg rename to assets/gpack/travian_t4/img/t/a3_2.jpg diff --git a/gpack/travian_t4/img/t/a3_3.jpg b/assets/gpack/travian_t4/img/t/a3_3.jpg similarity index 100% rename from gpack/travian_t4/img/t/a3_3.jpg rename to assets/gpack/travian_t4/img/t/a3_3.jpg diff --git a/gpack/travian_t4/img/t/a3_4.jpg b/assets/gpack/travian_t4/img/t/a3_4.jpg similarity index 100% rename from gpack/travian_t4/img/t/a3_4.jpg rename to assets/gpack/travian_t4/img/t/a3_4.jpg diff --git a/gpack/travian_t4/img/t/a3_5.jpg b/assets/gpack/travian_t4/img/t/a3_5.jpg similarity index 100% rename from gpack/travian_t4/img/t/a3_5.jpg rename to assets/gpack/travian_t4/img/t/a3_5.jpg diff --git a/gpack/travian_t4/img/t/a3_6.jpg b/assets/gpack/travian_t4/img/t/a3_6.jpg similarity index 100% rename from gpack/travian_t4/img/t/a3_6.jpg rename to assets/gpack/travian_t4/img/t/a3_6.jpg diff --git a/gpack/travian_t4/img/t/a3_7.jpg b/assets/gpack/travian_t4/img/t/a3_7.jpg similarity index 100% rename from gpack/travian_t4/img/t/a3_7.jpg rename to assets/gpack/travian_t4/img/t/a3_7.jpg diff --git a/gpack/travian_t4/img/t/a3_8.jpg b/assets/gpack/travian_t4/img/t/a3_8.jpg similarity index 100% rename from gpack/travian_t4/img/t/a3_8.jpg rename to assets/gpack/travian_t4/img/t/a3_8.jpg diff --git a/gpack/travian_t4/img/t/a3_9.jpg b/assets/gpack/travian_t4/img/t/a3_9.jpg similarity index 100% rename from gpack/travian_t4/img/t/a3_9.jpg rename to assets/gpack/travian_t4/img/t/a3_9.jpg diff --git a/gpack/travian_t4/img/t/a4_1.jpg b/assets/gpack/travian_t4/img/t/a4_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/a4_1.jpg rename to assets/gpack/travian_t4/img/t/a4_1.jpg diff --git a/gpack/travian_t4/img/t/a4_10.jpg b/assets/gpack/travian_t4/img/t/a4_10.jpg similarity index 100% rename from gpack/travian_t4/img/t/a4_10.jpg rename to assets/gpack/travian_t4/img/t/a4_10.jpg diff --git a/gpack/travian_t4/img/t/a4_2.jpg b/assets/gpack/travian_t4/img/t/a4_2.jpg similarity index 100% rename from gpack/travian_t4/img/t/a4_2.jpg rename to assets/gpack/travian_t4/img/t/a4_2.jpg diff --git a/gpack/travian_t4/img/t/a4_3.jpg b/assets/gpack/travian_t4/img/t/a4_3.jpg similarity index 100% rename from gpack/travian_t4/img/t/a4_3.jpg rename to assets/gpack/travian_t4/img/t/a4_3.jpg diff --git a/gpack/travian_t4/img/t/a4_4.jpg b/assets/gpack/travian_t4/img/t/a4_4.jpg similarity index 100% rename from gpack/travian_t4/img/t/a4_4.jpg rename to assets/gpack/travian_t4/img/t/a4_4.jpg diff --git a/gpack/travian_t4/img/t/a4_5.jpg b/assets/gpack/travian_t4/img/t/a4_5.jpg similarity index 100% rename from gpack/travian_t4/img/t/a4_5.jpg rename to assets/gpack/travian_t4/img/t/a4_5.jpg diff --git a/gpack/travian_t4/img/t/a4_6.jpg b/assets/gpack/travian_t4/img/t/a4_6.jpg similarity index 100% rename from gpack/travian_t4/img/t/a4_6.jpg rename to assets/gpack/travian_t4/img/t/a4_6.jpg diff --git a/gpack/travian_t4/img/t/a4_7.jpg b/assets/gpack/travian_t4/img/t/a4_7.jpg similarity index 100% rename from gpack/travian_t4/img/t/a4_7.jpg rename to assets/gpack/travian_t4/img/t/a4_7.jpg diff --git a/gpack/travian_t4/img/t/a4_8.jpg b/assets/gpack/travian_t4/img/t/a4_8.jpg similarity index 100% rename from gpack/travian_t4/img/t/a4_8.jpg rename to assets/gpack/travian_t4/img/t/a4_8.jpg diff --git a/gpack/travian_t4/img/t/a4_9.jpg b/assets/gpack/travian_t4/img/t/a4_9.jpg similarity index 100% rename from gpack/travian_t4/img/t/a4_9.jpg rename to assets/gpack/travian_t4/img/t/a4_9.jpg diff --git a/gpack/travian_t4/img/t/g40_11-ltr.png b/assets/gpack/travian_t4/img/t/g40_11-ltr.png similarity index 100% rename from gpack/travian_t4/img/t/g40_11-ltr.png rename to assets/gpack/travian_t4/img/t/g40_11-ltr.png diff --git a/gpack/travian_t4/img/t/gauls.gif b/assets/gpack/travian_t4/img/t/gauls.gif similarity index 100% rename from gpack/travian_t4/img/t/gauls.gif rename to assets/gpack/travian_t4/img/t/gauls.gif diff --git a/gpack/travian_default/lang/en/f/index.php b/assets/gpack/travian_t4/img/t/index.php similarity index 100% rename from gpack/travian_default/lang/en/f/index.php rename to assets/gpack/travian_t4/img/t/index.php diff --git a/gpack/travian_t4/img/t/nature.png b/assets/gpack/travian_t4/img/t/nature.png similarity index 100% rename from gpack/travian_t4/img/t/nature.png rename to assets/gpack/travian_t4/img/t/nature.png diff --git a/gpack/travian_t4/img/t/roman.gif b/assets/gpack/travian_t4/img/t/roman.gif similarity index 100% rename from gpack/travian_t4/img/t/roman.gif rename to assets/gpack/travian_t4/img/t/roman.gif diff --git a/gpack/travian_t4/img/t/shadow.png b/assets/gpack/travian_t4/img/t/shadow.png similarity index 100% rename from gpack/travian_t4/img/t/shadow.png rename to assets/gpack/travian_t4/img/t/shadow.png diff --git a/gpack/travian_t4/img/t/t100_1.jpg b/assets/gpack/travian_t4/img/t/t100_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t100_1.jpg rename to assets/gpack/travian_t4/img/t/t100_1.jpg diff --git a/gpack/travian_t4/img/t/t101_1.jpg b/assets/gpack/travian_t4/img/t/t101_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t101_1.jpg rename to assets/gpack/travian_t4/img/t/t101_1.jpg diff --git a/gpack/travian_t4/img/t/t102_1.jpg b/assets/gpack/travian_t4/img/t/t102_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t102_1.jpg rename to assets/gpack/travian_t4/img/t/t102_1.jpg diff --git a/gpack/travian_t4/img/t/t10_1.jpg b/assets/gpack/travian_t4/img/t/t10_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t10_1.jpg rename to assets/gpack/travian_t4/img/t/t10_1.jpg diff --git a/gpack/travian_t4/img/t/t10_2.jpg b/assets/gpack/travian_t4/img/t/t10_2.jpg similarity index 100% rename from gpack/travian_t4/img/t/t10_2.jpg rename to assets/gpack/travian_t4/img/t/t10_2.jpg diff --git a/gpack/travian_t4/img/t/t110_1.jpg b/assets/gpack/travian_t4/img/t/t110_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t110_1.jpg rename to assets/gpack/travian_t4/img/t/t110_1.jpg diff --git a/gpack/travian_t4/img/t/t111_1.jpg b/assets/gpack/travian_t4/img/t/t111_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t111_1.jpg rename to assets/gpack/travian_t4/img/t/t111_1.jpg diff --git a/gpack/travian_t4/img/t/t112_1.jpg b/assets/gpack/travian_t4/img/t/t112_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t112_1.jpg rename to assets/gpack/travian_t4/img/t/t112_1.jpg diff --git a/gpack/travian_t4/img/t/t120_1.jpg b/assets/gpack/travian_t4/img/t/t120_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t120_1.jpg rename to assets/gpack/travian_t4/img/t/t120_1.jpg diff --git a/gpack/travian_t4/img/t/t121_1.jpg b/assets/gpack/travian_t4/img/t/t121_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t121_1.jpg rename to assets/gpack/travian_t4/img/t/t121_1.jpg diff --git a/gpack/travian_t4/img/t/t122_1.jpg b/assets/gpack/travian_t4/img/t/t122_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t122_1.jpg rename to assets/gpack/travian_t4/img/t/t122_1.jpg diff --git a/gpack/travian_t4/img/t/t130_1.jpg b/assets/gpack/travian_t4/img/t/t130_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t130_1.jpg rename to assets/gpack/travian_t4/img/t/t130_1.jpg diff --git a/gpack/travian_t4/img/t/t131_1.jpg b/assets/gpack/travian_t4/img/t/t131_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t131_1.jpg rename to assets/gpack/travian_t4/img/t/t131_1.jpg diff --git a/gpack/travian_t4/img/t/t132_1.jpg b/assets/gpack/travian_t4/img/t/t132_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t132_1.jpg rename to assets/gpack/travian_t4/img/t/t132_1.jpg diff --git a/gpack/travian_t4/img/t/t140_1.jpg b/assets/gpack/travian_t4/img/t/t140_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t140_1.jpg rename to assets/gpack/travian_t4/img/t/t140_1.jpg diff --git a/gpack/travian_t4/img/t/t141_1.jpg b/assets/gpack/travian_t4/img/t/t141_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t141_1.jpg rename to assets/gpack/travian_t4/img/t/t141_1.jpg diff --git a/gpack/travian_t4/img/t/t142_1.jpg b/assets/gpack/travian_t4/img/t/t142_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t142_1.jpg rename to assets/gpack/travian_t4/img/t/t142_1.jpg diff --git a/gpack/travian_t4/img/t/t150_1.jpg b/assets/gpack/travian_t4/img/t/t150_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t150_1.jpg rename to assets/gpack/travian_t4/img/t/t150_1.jpg diff --git a/gpack/travian_t4/img/t/t151_1.jpg b/assets/gpack/travian_t4/img/t/t151_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t151_1.jpg rename to assets/gpack/travian_t4/img/t/t151_1.jpg diff --git a/gpack/travian_t4/img/t/t152_1.jpg b/assets/gpack/travian_t4/img/t/t152_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t152_1.jpg rename to assets/gpack/travian_t4/img/t/t152_1.jpg diff --git a/gpack/travian_t4/img/t/t160_1.jpg b/assets/gpack/travian_t4/img/t/t160_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t160_1.jpg rename to assets/gpack/travian_t4/img/t/t160_1.jpg diff --git a/gpack/travian_t4/img/t/t161_1.jpg b/assets/gpack/travian_t4/img/t/t161_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t161_1.jpg rename to assets/gpack/travian_t4/img/t/t161_1.jpg diff --git a/gpack/travian_t4/img/t/t162_1.jpg b/assets/gpack/travian_t4/img/t/t162_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t162_1.jpg rename to assets/gpack/travian_t4/img/t/t162_1.jpg diff --git a/gpack/travian_t4/img/t/t170_1.jpg b/assets/gpack/travian_t4/img/t/t170_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t170_1.jpg rename to assets/gpack/travian_t4/img/t/t170_1.jpg diff --git a/gpack/travian_t4/img/t/t171_1.jpg b/assets/gpack/travian_t4/img/t/t171_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t171_1.jpg rename to assets/gpack/travian_t4/img/t/t171_1.jpg diff --git a/gpack/travian_t4/img/t/t172_1.jpg b/assets/gpack/travian_t4/img/t/t172_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t172_1.jpg rename to assets/gpack/travian_t4/img/t/t172_1.jpg diff --git a/gpack/travian_t4/img/t/t180_1.jpg b/assets/gpack/travian_t4/img/t/t180_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t180_1.jpg rename to assets/gpack/travian_t4/img/t/t180_1.jpg diff --git a/gpack/travian_t4/img/t/t181_1.jpg b/assets/gpack/travian_t4/img/t/t181_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t181_1.jpg rename to assets/gpack/travian_t4/img/t/t181_1.jpg diff --git a/gpack/travian_t4/img/t/t182_1.jpg b/assets/gpack/travian_t4/img/t/t182_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t182_1.jpg rename to assets/gpack/travian_t4/img/t/t182_1.jpg diff --git a/gpack/travian_t4/img/t/t190_1.jpg b/assets/gpack/travian_t4/img/t/t190_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t190_1.jpg rename to assets/gpack/travian_t4/img/t/t190_1.jpg diff --git a/gpack/travian_t4/img/t/t191_1.jpg b/assets/gpack/travian_t4/img/t/t191_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t191_1.jpg rename to assets/gpack/travian_t4/img/t/t191_1.jpg diff --git a/gpack/travian_t4/img/t/t192_1.jpg b/assets/gpack/travian_t4/img/t/t192_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t192_1.jpg rename to assets/gpack/travian_t4/img/t/t192_1.jpg diff --git a/gpack/travian_t4/img/t/t1_1.jpg b/assets/gpack/travian_t4/img/t/t1_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t1_1.jpg rename to assets/gpack/travian_t4/img/t/t1_1.jpg diff --git a/gpack/travian_t4/img/t/t1_10.jpg b/assets/gpack/travian_t4/img/t/t1_10.jpg similarity index 100% rename from gpack/travian_t4/img/t/t1_10.jpg rename to assets/gpack/travian_t4/img/t/t1_10.jpg diff --git a/gpack/travian_t4/img/t/t1_2.jpg b/assets/gpack/travian_t4/img/t/t1_2.jpg similarity index 100% rename from gpack/travian_t4/img/t/t1_2.jpg rename to assets/gpack/travian_t4/img/t/t1_2.jpg diff --git a/gpack/travian_t4/img/t/t1_3.jpg b/assets/gpack/travian_t4/img/t/t1_3.jpg similarity index 100% rename from gpack/travian_t4/img/t/t1_3.jpg rename to assets/gpack/travian_t4/img/t/t1_3.jpg diff --git a/gpack/travian_t4/img/t/t1_4.jpg b/assets/gpack/travian_t4/img/t/t1_4.jpg similarity index 100% rename from gpack/travian_t4/img/t/t1_4.jpg rename to assets/gpack/travian_t4/img/t/t1_4.jpg diff --git a/gpack/travian_t4/img/t/t1_5.jpg b/assets/gpack/travian_t4/img/t/t1_5.jpg similarity index 100% rename from gpack/travian_t4/img/t/t1_5.jpg rename to assets/gpack/travian_t4/img/t/t1_5.jpg diff --git a/gpack/travian_t4/img/t/t1_6.jpg b/assets/gpack/travian_t4/img/t/t1_6.jpg similarity index 100% rename from gpack/travian_t4/img/t/t1_6.jpg rename to assets/gpack/travian_t4/img/t/t1_6.jpg diff --git a/gpack/travian_t4/img/t/t1_7.jpg b/assets/gpack/travian_t4/img/t/t1_7.jpg similarity index 100% rename from gpack/travian_t4/img/t/t1_7.jpg rename to assets/gpack/travian_t4/img/t/t1_7.jpg diff --git a/gpack/travian_t4/img/t/t1_8.jpg b/assets/gpack/travian_t4/img/t/t1_8.jpg similarity index 100% rename from gpack/travian_t4/img/t/t1_8.jpg rename to assets/gpack/travian_t4/img/t/t1_8.jpg diff --git a/gpack/travian_t4/img/t/t1_9.jpg b/assets/gpack/travian_t4/img/t/t1_9.jpg similarity index 100% rename from gpack/travian_t4/img/t/t1_9.jpg rename to assets/gpack/travian_t4/img/t/t1_9.jpg diff --git a/gpack/travian_t4/img/t/t200_1.jpg b/assets/gpack/travian_t4/img/t/t200_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t200_1.jpg rename to assets/gpack/travian_t4/img/t/t200_1.jpg diff --git a/gpack/travian_t4/img/t/t201_1.jpg b/assets/gpack/travian_t4/img/t/t201_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t201_1.jpg rename to assets/gpack/travian_t4/img/t/t201_1.jpg diff --git a/gpack/travian_t4/img/t/t202_1.jpg b/assets/gpack/travian_t4/img/t/t202_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t202_1.jpg rename to assets/gpack/travian_t4/img/t/t202_1.jpg diff --git a/gpack/travian_t4/img/t/t210_1.jpg b/assets/gpack/travian_t4/img/t/t210_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t210_1.jpg rename to assets/gpack/travian_t4/img/t/t210_1.jpg diff --git a/gpack/travian_t4/img/t/t211_1.jpg b/assets/gpack/travian_t4/img/t/t211_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t211_1.jpg rename to assets/gpack/travian_t4/img/t/t211_1.jpg diff --git a/gpack/travian_t4/img/t/t212_1.jpg b/assets/gpack/travian_t4/img/t/t212_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t212_1.jpg rename to assets/gpack/travian_t4/img/t/t212_1.jpg diff --git a/gpack/travian_t4/img/t/t220_1.jpg b/assets/gpack/travian_t4/img/t/t220_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t220_1.jpg rename to assets/gpack/travian_t4/img/t/t220_1.jpg diff --git a/gpack/travian_t4/img/t/t221_1.jpg b/assets/gpack/travian_t4/img/t/t221_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t221_1.jpg rename to assets/gpack/travian_t4/img/t/t221_1.jpg diff --git a/gpack/travian_t4/img/t/t222_1.jpg b/assets/gpack/travian_t4/img/t/t222_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t222_1.jpg rename to assets/gpack/travian_t4/img/t/t222_1.jpg diff --git a/gpack/travian_t4/img/t/t2_1.jpg b/assets/gpack/travian_t4/img/t/t2_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t2_1.jpg rename to assets/gpack/travian_t4/img/t/t2_1.jpg diff --git a/gpack/travian_t4/img/t/t2_10.jpg b/assets/gpack/travian_t4/img/t/t2_10.jpg similarity index 100% rename from gpack/travian_t4/img/t/t2_10.jpg rename to assets/gpack/travian_t4/img/t/t2_10.jpg diff --git a/gpack/travian_t4/img/t/t2_2.jpg b/assets/gpack/travian_t4/img/t/t2_2.jpg similarity index 100% rename from gpack/travian_t4/img/t/t2_2.jpg rename to assets/gpack/travian_t4/img/t/t2_2.jpg diff --git a/gpack/travian_t4/img/t/t2_3.jpg b/assets/gpack/travian_t4/img/t/t2_3.jpg similarity index 100% rename from gpack/travian_t4/img/t/t2_3.jpg rename to assets/gpack/travian_t4/img/t/t2_3.jpg diff --git a/gpack/travian_t4/img/t/t2_4.jpg b/assets/gpack/travian_t4/img/t/t2_4.jpg similarity index 100% rename from gpack/travian_t4/img/t/t2_4.jpg rename to assets/gpack/travian_t4/img/t/t2_4.jpg diff --git a/gpack/travian_t4/img/t/t2_5.jpg b/assets/gpack/travian_t4/img/t/t2_5.jpg similarity index 100% rename from gpack/travian_t4/img/t/t2_5.jpg rename to assets/gpack/travian_t4/img/t/t2_5.jpg diff --git a/gpack/travian_t4/img/t/t2_6.jpg b/assets/gpack/travian_t4/img/t/t2_6.jpg similarity index 100% rename from gpack/travian_t4/img/t/t2_6.jpg rename to assets/gpack/travian_t4/img/t/t2_6.jpg diff --git a/gpack/travian_t4/img/t/t2_7.jpg b/assets/gpack/travian_t4/img/t/t2_7.jpg similarity index 100% rename from gpack/travian_t4/img/t/t2_7.jpg rename to assets/gpack/travian_t4/img/t/t2_7.jpg diff --git a/gpack/travian_t4/img/t/t2_8.jpg b/assets/gpack/travian_t4/img/t/t2_8.jpg similarity index 100% rename from gpack/travian_t4/img/t/t2_8.jpg rename to assets/gpack/travian_t4/img/t/t2_8.jpg diff --git a/gpack/travian_t4/img/t/t2_9.jpg b/assets/gpack/travian_t4/img/t/t2_9.jpg similarity index 100% rename from gpack/travian_t4/img/t/t2_9.jpg rename to assets/gpack/travian_t4/img/t/t2_9.jpg diff --git a/gpack/travian_t4/img/t/t3_1.jpg b/assets/gpack/travian_t4/img/t/t3_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t3_1.jpg rename to assets/gpack/travian_t4/img/t/t3_1.jpg diff --git a/gpack/travian_t4/img/t/t3_10.jpg b/assets/gpack/travian_t4/img/t/t3_10.jpg similarity index 100% rename from gpack/travian_t4/img/t/t3_10.jpg rename to assets/gpack/travian_t4/img/t/t3_10.jpg diff --git a/gpack/travian_t4/img/t/t3_2.jpg b/assets/gpack/travian_t4/img/t/t3_2.jpg similarity index 100% rename from gpack/travian_t4/img/t/t3_2.jpg rename to assets/gpack/travian_t4/img/t/t3_2.jpg diff --git a/gpack/travian_t4/img/t/t3_3.jpg b/assets/gpack/travian_t4/img/t/t3_3.jpg similarity index 100% rename from gpack/travian_t4/img/t/t3_3.jpg rename to assets/gpack/travian_t4/img/t/t3_3.jpg diff --git a/gpack/travian_t4/img/t/t3_4.jpg b/assets/gpack/travian_t4/img/t/t3_4.jpg similarity index 100% rename from gpack/travian_t4/img/t/t3_4.jpg rename to assets/gpack/travian_t4/img/t/t3_4.jpg diff --git a/gpack/travian_t4/img/t/t3_5.jpg b/assets/gpack/travian_t4/img/t/t3_5.jpg similarity index 100% rename from gpack/travian_t4/img/t/t3_5.jpg rename to assets/gpack/travian_t4/img/t/t3_5.jpg diff --git a/gpack/travian_t4/img/t/t3_6.jpg b/assets/gpack/travian_t4/img/t/t3_6.jpg similarity index 100% rename from gpack/travian_t4/img/t/t3_6.jpg rename to assets/gpack/travian_t4/img/t/t3_6.jpg diff --git a/gpack/travian_t4/img/t/t3_7.jpg b/assets/gpack/travian_t4/img/t/t3_7.jpg similarity index 100% rename from gpack/travian_t4/img/t/t3_7.jpg rename to assets/gpack/travian_t4/img/t/t3_7.jpg diff --git a/gpack/travian_t4/img/t/t3_8.jpg b/assets/gpack/travian_t4/img/t/t3_8.jpg similarity index 100% rename from gpack/travian_t4/img/t/t3_8.jpg rename to assets/gpack/travian_t4/img/t/t3_8.jpg diff --git a/gpack/travian_t4/img/t/t3_9.jpg b/assets/gpack/travian_t4/img/t/t3_9.jpg similarity index 100% rename from gpack/travian_t4/img/t/t3_9.jpg rename to assets/gpack/travian_t4/img/t/t3_9.jpg diff --git a/gpack/travian_t4/img/t/t4_1.jpg b/assets/gpack/travian_t4/img/t/t4_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t4_1.jpg rename to assets/gpack/travian_t4/img/t/t4_1.jpg diff --git a/gpack/travian_t4/img/t/t4_10.jpg b/assets/gpack/travian_t4/img/t/t4_10.jpg similarity index 100% rename from gpack/travian_t4/img/t/t4_10.jpg rename to assets/gpack/travian_t4/img/t/t4_10.jpg diff --git a/gpack/travian_t4/img/t/t4_2.jpg b/assets/gpack/travian_t4/img/t/t4_2.jpg similarity index 100% rename from gpack/travian_t4/img/t/t4_2.jpg rename to assets/gpack/travian_t4/img/t/t4_2.jpg diff --git a/gpack/travian_t4/img/t/t4_3.jpg b/assets/gpack/travian_t4/img/t/t4_3.jpg similarity index 100% rename from gpack/travian_t4/img/t/t4_3.jpg rename to assets/gpack/travian_t4/img/t/t4_3.jpg diff --git a/gpack/travian_t4/img/t/t4_4.jpg b/assets/gpack/travian_t4/img/t/t4_4.jpg similarity index 100% rename from gpack/travian_t4/img/t/t4_4.jpg rename to assets/gpack/travian_t4/img/t/t4_4.jpg diff --git a/gpack/travian_t4/img/t/t4_5.jpg b/assets/gpack/travian_t4/img/t/t4_5.jpg similarity index 100% rename from gpack/travian_t4/img/t/t4_5.jpg rename to assets/gpack/travian_t4/img/t/t4_5.jpg diff --git a/gpack/travian_t4/img/t/t4_6.jpg b/assets/gpack/travian_t4/img/t/t4_6.jpg similarity index 100% rename from gpack/travian_t4/img/t/t4_6.jpg rename to assets/gpack/travian_t4/img/t/t4_6.jpg diff --git a/gpack/travian_t4/img/t/t4_7.jpg b/assets/gpack/travian_t4/img/t/t4_7.jpg similarity index 100% rename from gpack/travian_t4/img/t/t4_7.jpg rename to assets/gpack/travian_t4/img/t/t4_7.jpg diff --git a/gpack/travian_t4/img/t/t4_8.jpg b/assets/gpack/travian_t4/img/t/t4_8.jpg similarity index 100% rename from gpack/travian_t4/img/t/t4_8.jpg rename to assets/gpack/travian_t4/img/t/t4_8.jpg diff --git a/gpack/travian_t4/img/t/t4_9.jpg b/assets/gpack/travian_t4/img/t/t4_9.jpg similarity index 100% rename from gpack/travian_t4/img/t/t4_9.jpg rename to assets/gpack/travian_t4/img/t/t4_9.jpg diff --git a/gpack/travian_t4/img/t/t5_1.jpg b/assets/gpack/travian_t4/img/t/t5_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t5_1.jpg rename to assets/gpack/travian_t4/img/t/t5_1.jpg diff --git a/gpack/travian_t4/img/t/t5_10.jpg b/assets/gpack/travian_t4/img/t/t5_10.jpg similarity index 100% rename from gpack/travian_t4/img/t/t5_10.jpg rename to assets/gpack/travian_t4/img/t/t5_10.jpg diff --git a/gpack/travian_t4/img/t/t5_2.jpg b/assets/gpack/travian_t4/img/t/t5_2.jpg similarity index 100% rename from gpack/travian_t4/img/t/t5_2.jpg rename to assets/gpack/travian_t4/img/t/t5_2.jpg diff --git a/gpack/travian_t4/img/t/t5_3.jpg b/assets/gpack/travian_t4/img/t/t5_3.jpg similarity index 100% rename from gpack/travian_t4/img/t/t5_3.jpg rename to assets/gpack/travian_t4/img/t/t5_3.jpg diff --git a/gpack/travian_t4/img/t/t5_4.jpg b/assets/gpack/travian_t4/img/t/t5_4.jpg similarity index 100% rename from gpack/travian_t4/img/t/t5_4.jpg rename to assets/gpack/travian_t4/img/t/t5_4.jpg diff --git a/gpack/travian_t4/img/t/t5_5.jpg b/assets/gpack/travian_t4/img/t/t5_5.jpg similarity index 100% rename from gpack/travian_t4/img/t/t5_5.jpg rename to assets/gpack/travian_t4/img/t/t5_5.jpg diff --git a/gpack/travian_t4/img/t/t5_6.jpg b/assets/gpack/travian_t4/img/t/t5_6.jpg similarity index 100% rename from gpack/travian_t4/img/t/t5_6.jpg rename to assets/gpack/travian_t4/img/t/t5_6.jpg diff --git a/gpack/travian_t4/img/t/t5_7.jpg b/assets/gpack/travian_t4/img/t/t5_7.jpg similarity index 100% rename from gpack/travian_t4/img/t/t5_7.jpg rename to assets/gpack/travian_t4/img/t/t5_7.jpg diff --git a/gpack/travian_t4/img/t/t5_8.jpg b/assets/gpack/travian_t4/img/t/t5_8.jpg similarity index 100% rename from gpack/travian_t4/img/t/t5_8.jpg rename to assets/gpack/travian_t4/img/t/t5_8.jpg diff --git a/gpack/travian_t4/img/t/t5_9.jpg b/assets/gpack/travian_t4/img/t/t5_9.jpg similarity index 100% rename from gpack/travian_t4/img/t/t5_9.jpg rename to assets/gpack/travian_t4/img/t/t5_9.jpg diff --git a/gpack/travian_t4/img/t/t6_1.jpg b/assets/gpack/travian_t4/img/t/t6_1.jpg similarity index 100% rename from gpack/travian_t4/img/t/t6_1.jpg rename to assets/gpack/travian_t4/img/t/t6_1.jpg diff --git a/gpack/travian_t4/img/t/t6_1.png b/assets/gpack/travian_t4/img/t/t6_1.png similarity index 100% rename from gpack/travian_t4/img/t/t6_1.png rename to assets/gpack/travian_t4/img/t/t6_1.png diff --git a/gpack/travian_t4/img/t/t6_10.jpg b/assets/gpack/travian_t4/img/t/t6_10.jpg similarity index 100% rename from gpack/travian_t4/img/t/t6_10.jpg rename to assets/gpack/travian_t4/img/t/t6_10.jpg diff --git a/gpack/travian_t4/img/t/t6_2.jpg b/assets/gpack/travian_t4/img/t/t6_2.jpg similarity index 100% rename from gpack/travian_t4/img/t/t6_2.jpg rename to assets/gpack/travian_t4/img/t/t6_2.jpg diff --git a/gpack/travian_t4/img/t/t6_3.jpg b/assets/gpack/travian_t4/img/t/t6_3.jpg similarity index 100% rename from gpack/travian_t4/img/t/t6_3.jpg rename to assets/gpack/travian_t4/img/t/t6_3.jpg diff --git a/gpack/travian_t4/img/t/t6_4.jpg b/assets/gpack/travian_t4/img/t/t6_4.jpg similarity index 100% rename from gpack/travian_t4/img/t/t6_4.jpg rename to assets/gpack/travian_t4/img/t/t6_4.jpg diff --git a/gpack/travian_t4/img/t/t6_5.jpg b/assets/gpack/travian_t4/img/t/t6_5.jpg similarity index 100% rename from gpack/travian_t4/img/t/t6_5.jpg rename to assets/gpack/travian_t4/img/t/t6_5.jpg diff --git a/gpack/travian_t4/img/t/t6_6.jpg b/assets/gpack/travian_t4/img/t/t6_6.jpg similarity index 100% rename from gpack/travian_t4/img/t/t6_6.jpg rename to assets/gpack/travian_t4/img/t/t6_6.jpg diff --git a/gpack/travian_t4/img/t/t6_7.jpg b/assets/gpack/travian_t4/img/t/t6_7.jpg similarity index 100% rename from gpack/travian_t4/img/t/t6_7.jpg rename to assets/gpack/travian_t4/img/t/t6_7.jpg diff --git a/gpack/travian_t4/img/t/t6_8.jpg b/assets/gpack/travian_t4/img/t/t6_8.jpg similarity index 100% rename from gpack/travian_t4/img/t/t6_8.jpg rename to assets/gpack/travian_t4/img/t/t6_8.jpg diff --git a/gpack/travian_t4/img/t/t6_9.jpg b/assets/gpack/travian_t4/img/t/t6_9.jpg similarity index 100% rename from gpack/travian_t4/img/t/t6_9.jpg rename to assets/gpack/travian_t4/img/t/t6_9.jpg diff --git a/gpack/travian_t4/img/t/taskmaster.png b/assets/gpack/travian_t4/img/t/taskmaster.png similarity index 100% rename from gpack/travian_t4/img/t/taskmaster.png rename to assets/gpack/travian_t4/img/t/taskmaster.png diff --git a/gpack/travian_t4/img/t/team.png b/assets/gpack/travian_t4/img/t/team.png similarity index 100% rename from gpack/travian_t4/img/t/team.png rename to assets/gpack/travian_t4/img/t/team.png diff --git a/gpack/travian_t4/img/t/teutons.gif b/assets/gpack/travian_t4/img/t/teutons.gif similarity index 100% rename from gpack/travian_t4/img/t/teutons.gif rename to assets/gpack/travian_t4/img/t/teutons.gif diff --git a/gpack/travian_t4/img/t/tn.gif b/assets/gpack/travian_t4/img/t/tn.gif similarity index 100% rename from gpack/travian_t4/img/t/tn.gif rename to assets/gpack/travian_t4/img/t/tn.gif diff --git a/gpack/travian_t4/img/t/tnd.gif b/assets/gpack/travian_t4/img/t/tnd.gif similarity index 100% rename from gpack/travian_t4/img/t/tnd.gif rename to assets/gpack/travian_t4/img/t/tnd.gif diff --git a/gpack/travian_t4/img/u/1.gif b/assets/gpack/travian_t4/img/u/1.gif similarity index 100% rename from gpack/travian_t4/img/u/1.gif rename to assets/gpack/travian_t4/img/u/1.gif diff --git a/gpack/travian_t4/img/u/10.gif b/assets/gpack/travian_t4/img/u/10.gif similarity index 100% rename from gpack/travian_t4/img/u/10.gif rename to assets/gpack/travian_t4/img/u/10.gif diff --git a/gpack/travian_t4/img/u/11.gif b/assets/gpack/travian_t4/img/u/11.gif similarity index 100% rename from gpack/travian_t4/img/u/11.gif rename to assets/gpack/travian_t4/img/u/11.gif diff --git a/gpack/travian_t4/img/u/12.gif b/assets/gpack/travian_t4/img/u/12.gif similarity index 100% rename from gpack/travian_t4/img/u/12.gif rename to assets/gpack/travian_t4/img/u/12.gif diff --git a/gpack/travian_t4/img/u/13.gif b/assets/gpack/travian_t4/img/u/13.gif similarity index 100% rename from gpack/travian_t4/img/u/13.gif rename to assets/gpack/travian_t4/img/u/13.gif diff --git a/gpack/travian_t4/img/u/14.gif b/assets/gpack/travian_t4/img/u/14.gif similarity index 100% rename from gpack/travian_t4/img/u/14.gif rename to assets/gpack/travian_t4/img/u/14.gif diff --git a/gpack/travian_t4/img/u/15.gif b/assets/gpack/travian_t4/img/u/15.gif similarity index 100% rename from gpack/travian_t4/img/u/15.gif rename to assets/gpack/travian_t4/img/u/15.gif diff --git a/gpack/travian_t4/img/u/16.gif b/assets/gpack/travian_t4/img/u/16.gif similarity index 100% rename from gpack/travian_t4/img/u/16.gif rename to assets/gpack/travian_t4/img/u/16.gif diff --git a/gpack/travian_t4/img/u/17.gif b/assets/gpack/travian_t4/img/u/17.gif similarity index 100% rename from gpack/travian_t4/img/u/17.gif rename to assets/gpack/travian_t4/img/u/17.gif diff --git a/gpack/travian_t4/img/u/18.gif b/assets/gpack/travian_t4/img/u/18.gif similarity index 100% rename from gpack/travian_t4/img/u/18.gif rename to assets/gpack/travian_t4/img/u/18.gif diff --git a/gpack/travian_t4/img/u/19.gif b/assets/gpack/travian_t4/img/u/19.gif similarity index 100% rename from gpack/travian_t4/img/u/19.gif rename to assets/gpack/travian_t4/img/u/19.gif diff --git a/gpack/travian_t4/img/u/2.gif b/assets/gpack/travian_t4/img/u/2.gif similarity index 100% rename from gpack/travian_t4/img/u/2.gif rename to assets/gpack/travian_t4/img/u/2.gif diff --git a/gpack/travian_t4/img/u/20.gif b/assets/gpack/travian_t4/img/u/20.gif similarity index 100% rename from gpack/travian_t4/img/u/20.gif rename to assets/gpack/travian_t4/img/u/20.gif diff --git a/gpack/travian_t4/img/u/21.gif b/assets/gpack/travian_t4/img/u/21.gif similarity index 100% rename from gpack/travian_t4/img/u/21.gif rename to assets/gpack/travian_t4/img/u/21.gif diff --git a/gpack/travian_t4/img/u/22.gif b/assets/gpack/travian_t4/img/u/22.gif similarity index 100% rename from gpack/travian_t4/img/u/22.gif rename to assets/gpack/travian_t4/img/u/22.gif diff --git a/gpack/travian_t4/img/u/23.gif b/assets/gpack/travian_t4/img/u/23.gif similarity index 100% rename from gpack/travian_t4/img/u/23.gif rename to assets/gpack/travian_t4/img/u/23.gif diff --git a/gpack/travian_t4/img/u/24.gif b/assets/gpack/travian_t4/img/u/24.gif similarity index 100% rename from gpack/travian_t4/img/u/24.gif rename to assets/gpack/travian_t4/img/u/24.gif diff --git a/gpack/travian_t4/img/u/25.gif b/assets/gpack/travian_t4/img/u/25.gif similarity index 100% rename from gpack/travian_t4/img/u/25.gif rename to assets/gpack/travian_t4/img/u/25.gif diff --git a/gpack/travian_t4/img/u/26.gif b/assets/gpack/travian_t4/img/u/26.gif similarity index 100% rename from gpack/travian_t4/img/u/26.gif rename to assets/gpack/travian_t4/img/u/26.gif diff --git a/gpack/travian_t4/img/u/27.gif b/assets/gpack/travian_t4/img/u/27.gif similarity index 100% rename from gpack/travian_t4/img/u/27.gif rename to assets/gpack/travian_t4/img/u/27.gif diff --git a/gpack/travian_t4/img/u/28.gif b/assets/gpack/travian_t4/img/u/28.gif similarity index 100% rename from gpack/travian_t4/img/u/28.gif rename to assets/gpack/travian_t4/img/u/28.gif diff --git a/gpack/travian_t4/img/u/29.gif b/assets/gpack/travian_t4/img/u/29.gif similarity index 100% rename from gpack/travian_t4/img/u/29.gif rename to assets/gpack/travian_t4/img/u/29.gif diff --git a/gpack/travian_t4/img/u/3.gif b/assets/gpack/travian_t4/img/u/3.gif similarity index 100% rename from gpack/travian_t4/img/u/3.gif rename to assets/gpack/travian_t4/img/u/3.gif diff --git a/gpack/travian_t4/img/u/30.gif b/assets/gpack/travian_t4/img/u/30.gif similarity index 100% rename from gpack/travian_t4/img/u/30.gif rename to assets/gpack/travian_t4/img/u/30.gif diff --git a/gpack/travian_t4/img/u/31.gif b/assets/gpack/travian_t4/img/u/31.gif similarity index 100% rename from gpack/travian_t4/img/u/31.gif rename to assets/gpack/travian_t4/img/u/31.gif diff --git a/gpack/travian_t4/img/u/32.gif b/assets/gpack/travian_t4/img/u/32.gif similarity index 100% rename from gpack/travian_t4/img/u/32.gif rename to assets/gpack/travian_t4/img/u/32.gif diff --git a/gpack/travian_t4/img/u/33.gif b/assets/gpack/travian_t4/img/u/33.gif similarity index 100% rename from gpack/travian_t4/img/u/33.gif rename to assets/gpack/travian_t4/img/u/33.gif diff --git a/gpack/travian_t4/img/u/34.gif b/assets/gpack/travian_t4/img/u/34.gif similarity index 100% rename from gpack/travian_t4/img/u/34.gif rename to assets/gpack/travian_t4/img/u/34.gif diff --git a/gpack/travian_t4/img/u/35.gif b/assets/gpack/travian_t4/img/u/35.gif similarity index 100% rename from gpack/travian_t4/img/u/35.gif rename to assets/gpack/travian_t4/img/u/35.gif diff --git a/gpack/travian_t4/img/u/36.gif b/assets/gpack/travian_t4/img/u/36.gif similarity index 100% rename from gpack/travian_t4/img/u/36.gif rename to assets/gpack/travian_t4/img/u/36.gif diff --git a/gpack/travian_t4/img/u/37.gif b/assets/gpack/travian_t4/img/u/37.gif similarity index 100% rename from gpack/travian_t4/img/u/37.gif rename to assets/gpack/travian_t4/img/u/37.gif diff --git a/gpack/travian_t4/img/u/38.gif b/assets/gpack/travian_t4/img/u/38.gif similarity index 100% rename from gpack/travian_t4/img/u/38.gif rename to assets/gpack/travian_t4/img/u/38.gif diff --git a/gpack/travian_t4/img/u/39.gif b/assets/gpack/travian_t4/img/u/39.gif similarity index 100% rename from gpack/travian_t4/img/u/39.gif rename to assets/gpack/travian_t4/img/u/39.gif diff --git a/gpack/travian_t4/img/u/4.gif b/assets/gpack/travian_t4/img/u/4.gif similarity index 100% rename from gpack/travian_t4/img/u/4.gif rename to assets/gpack/travian_t4/img/u/4.gif diff --git a/gpack/travian_t4/img/u/40.gif b/assets/gpack/travian_t4/img/u/40.gif similarity index 100% rename from gpack/travian_t4/img/u/40.gif rename to assets/gpack/travian_t4/img/u/40.gif diff --git a/gpack/travian_t4/img/u/41.gif b/assets/gpack/travian_t4/img/u/41.gif similarity index 100% rename from gpack/travian_t4/img/u/41.gif rename to assets/gpack/travian_t4/img/u/41.gif diff --git a/gpack/travian_t4/img/u/42.gif b/assets/gpack/travian_t4/img/u/42.gif similarity index 100% rename from gpack/travian_t4/img/u/42.gif rename to assets/gpack/travian_t4/img/u/42.gif diff --git a/gpack/travian_t4/img/u/43.gif b/assets/gpack/travian_t4/img/u/43.gif similarity index 100% rename from gpack/travian_t4/img/u/43.gif rename to assets/gpack/travian_t4/img/u/43.gif diff --git a/gpack/travian_t4/img/u/44.gif b/assets/gpack/travian_t4/img/u/44.gif similarity index 100% rename from gpack/travian_t4/img/u/44.gif rename to assets/gpack/travian_t4/img/u/44.gif diff --git a/gpack/travian_t4/img/u/45.gif b/assets/gpack/travian_t4/img/u/45.gif similarity index 100% rename from gpack/travian_t4/img/u/45.gif rename to assets/gpack/travian_t4/img/u/45.gif diff --git a/gpack/travian_t4/img/u/46.gif b/assets/gpack/travian_t4/img/u/46.gif similarity index 100% rename from gpack/travian_t4/img/u/46.gif rename to assets/gpack/travian_t4/img/u/46.gif diff --git a/gpack/travian_t4/img/u/47.gif b/assets/gpack/travian_t4/img/u/47.gif similarity index 100% rename from gpack/travian_t4/img/u/47.gif rename to assets/gpack/travian_t4/img/u/47.gif diff --git a/gpack/travian_t4/img/u/48.gif b/assets/gpack/travian_t4/img/u/48.gif similarity index 100% rename from gpack/travian_t4/img/u/48.gif rename to assets/gpack/travian_t4/img/u/48.gif diff --git a/gpack/travian_t4/img/u/49.gif b/assets/gpack/travian_t4/img/u/49.gif similarity index 100% rename from gpack/travian_t4/img/u/49.gif rename to assets/gpack/travian_t4/img/u/49.gif diff --git a/gpack/travian_t4/img/u/5.gif b/assets/gpack/travian_t4/img/u/5.gif similarity index 100% rename from gpack/travian_t4/img/u/5.gif rename to assets/gpack/travian_t4/img/u/5.gif diff --git a/gpack/travian_t4/img/u/50.gif b/assets/gpack/travian_t4/img/u/50.gif similarity index 100% rename from gpack/travian_t4/img/u/50.gif rename to assets/gpack/travian_t4/img/u/50.gif diff --git a/gpack/travian_t4/img/u/51.gif b/assets/gpack/travian_t4/img/u/51.gif similarity index 100% rename from gpack/travian_t4/img/u/51.gif rename to assets/gpack/travian_t4/img/u/51.gif diff --git a/gpack/travian_t4/img/u/52.gif b/assets/gpack/travian_t4/img/u/52.gif similarity index 100% rename from gpack/travian_t4/img/u/52.gif rename to assets/gpack/travian_t4/img/u/52.gif diff --git a/gpack/travian_t4/img/u/53.gif b/assets/gpack/travian_t4/img/u/53.gif similarity index 100% rename from gpack/travian_t4/img/u/53.gif rename to assets/gpack/travian_t4/img/u/53.gif diff --git a/gpack/travian_t4/img/u/54.gif b/assets/gpack/travian_t4/img/u/54.gif similarity index 100% rename from gpack/travian_t4/img/u/54.gif rename to assets/gpack/travian_t4/img/u/54.gif diff --git a/gpack/travian_t4/img/u/55.gif b/assets/gpack/travian_t4/img/u/55.gif similarity index 100% rename from gpack/travian_t4/img/u/55.gif rename to assets/gpack/travian_t4/img/u/55.gif diff --git a/gpack/travian_t4/img/u/56.gif b/assets/gpack/travian_t4/img/u/56.gif similarity index 100% rename from gpack/travian_t4/img/u/56.gif rename to assets/gpack/travian_t4/img/u/56.gif diff --git a/gpack/travian_t4/img/u/57.gif b/assets/gpack/travian_t4/img/u/57.gif similarity index 100% rename from gpack/travian_t4/img/u/57.gif rename to assets/gpack/travian_t4/img/u/57.gif diff --git a/gpack/travian_t4/img/u/58.gif b/assets/gpack/travian_t4/img/u/58.gif similarity index 100% rename from gpack/travian_t4/img/u/58.gif rename to assets/gpack/travian_t4/img/u/58.gif diff --git a/gpack/travian_t4/img/u/59.gif b/assets/gpack/travian_t4/img/u/59.gif similarity index 100% rename from gpack/travian_t4/img/u/59.gif rename to assets/gpack/travian_t4/img/u/59.gif diff --git a/gpack/travian_t4/img/u/6.gif b/assets/gpack/travian_t4/img/u/6.gif similarity index 100% rename from gpack/travian_t4/img/u/6.gif rename to assets/gpack/travian_t4/img/u/6.gif diff --git a/gpack/travian_t4/img/u/60.gif b/assets/gpack/travian_t4/img/u/60.gif similarity index 100% rename from gpack/travian_t4/img/u/60.gif rename to assets/gpack/travian_t4/img/u/60.gif diff --git a/gpack/travian_t4/img/u/7.gif b/assets/gpack/travian_t4/img/u/7.gif similarity index 100% rename from gpack/travian_t4/img/u/7.gif rename to assets/gpack/travian_t4/img/u/7.gif diff --git a/gpack/travian_t4/img/u/8.gif b/assets/gpack/travian_t4/img/u/8.gif similarity index 100% rename from gpack/travian_t4/img/u/8.gif rename to assets/gpack/travian_t4/img/u/8.gif diff --git a/gpack/travian_t4/img/u/9.gif b/assets/gpack/travian_t4/img/u/9.gif similarity index 100% rename from gpack/travian_t4/img/u/9.gif rename to assets/gpack/travian_t4/img/u/9.gif diff --git a/gpack/travian_t4/img/u/98.gif b/assets/gpack/travian_t4/img/u/98.gif similarity index 100% rename from gpack/travian_t4/img/u/98.gif rename to assets/gpack/travian_t4/img/u/98.gif diff --git a/gpack/travian_t4/img/u/99.gif b/assets/gpack/travian_t4/img/u/99.gif similarity index 100% rename from gpack/travian_t4/img/u/99.gif rename to assets/gpack/travian_t4/img/u/99.gif diff --git a/gpack/travian_default/lang/en/index.php b/assets/gpack/travian_t4/img/u/index.php similarity index 100% rename from gpack/travian_default/lang/en/index.php rename to assets/gpack/travian_t4/img/u/index.php diff --git a/gpack/travian_t4/img/u/point.gif b/assets/gpack/travian_t4/img/u/point.gif similarity index 100% rename from gpack/travian_t4/img/u/point.gif rename to assets/gpack/travian_t4/img/u/point.gif diff --git a/gpack/travian_t4/img/u/specials.gif b/assets/gpack/travian_t4/img/u/specials.gif similarity index 100% rename from gpack/travian_t4/img/u/specials.gif rename to assets/gpack/travian_t4/img/u/specials.gif diff --git a/gpack/travian_t4/img/u/v1_romans2.gif b/assets/gpack/travian_t4/img/u/v1_romans2.gif similarity index 100% rename from gpack/travian_t4/img/u/v1_romans2.gif rename to assets/gpack/travian_t4/img/u/v1_romans2.gif diff --git a/gpack/travian_t4/img/u/v2_teutons2.gif b/assets/gpack/travian_t4/img/u/v2_teutons2.gif similarity index 100% rename from gpack/travian_t4/img/u/v2_teutons2.gif rename to assets/gpack/travian_t4/img/u/v2_teutons2.gif diff --git a/gpack/travian_t4/img/u/v3_gauls2.gif b/assets/gpack/travian_t4/img/u/v3_gauls2.gif similarity index 100% rename from gpack/travian_t4/img/u/v3_gauls2.gif rename to assets/gpack/travian_t4/img/u/v3_gauls2.gif diff --git a/gpack/travian_t4/img/u/v4_nature2.gif b/assets/gpack/travian_t4/img/u/v4_nature2.gif similarity index 100% rename from gpack/travian_t4/img/u/v4_nature2.gif rename to assets/gpack/travian_t4/img/u/v4_nature2.gif diff --git a/gpack/travian_t4/img/u/v5_natars2.gif b/assets/gpack/travian_t4/img/u/v5_natars2.gif similarity index 100% rename from gpack/travian_t4/img/u/v5_natars2.gif rename to assets/gpack/travian_t4/img/u/v5_natars2.gif diff --git a/gpack/travian_t4/img/u/v6_monsters2.gif b/assets/gpack/travian_t4/img/u/v6_monsters2.gif similarity index 100% rename from gpack/travian_t4/img/u/v6_monsters2.gif rename to assets/gpack/travian_t4/img/u/v6_monsters2.gif diff --git a/gpack/travian_default/lang/en/msg/index.php b/assets/gpack/travian_t4/img/u2/index.php similarity index 100% rename from gpack/travian_default/lang/en/msg/index.php rename to assets/gpack/travian_t4/img/u2/index.php diff --git a/gpack/travian_t4/img/u2/u1.gif b/assets/gpack/travian_t4/img/u2/u1.gif similarity index 100% rename from gpack/travian_t4/img/u2/u1.gif rename to assets/gpack/travian_t4/img/u2/u1.gif diff --git a/gpack/travian_t4/img/u2/u10.gif b/assets/gpack/travian_t4/img/u2/u10.gif similarity index 100% rename from gpack/travian_t4/img/u2/u10.gif rename to assets/gpack/travian_t4/img/u2/u10.gif diff --git a/gpack/travian_t4/img/u2/u11.gif b/assets/gpack/travian_t4/img/u2/u11.gif similarity index 100% rename from gpack/travian_t4/img/u2/u11.gif rename to assets/gpack/travian_t4/img/u2/u11.gif diff --git a/gpack/travian_t4/img/u2/u12.gif b/assets/gpack/travian_t4/img/u2/u12.gif similarity index 100% rename from gpack/travian_t4/img/u2/u12.gif rename to assets/gpack/travian_t4/img/u2/u12.gif diff --git a/gpack/travian_t4/img/u2/u13.gif b/assets/gpack/travian_t4/img/u2/u13.gif similarity index 100% rename from gpack/travian_t4/img/u2/u13.gif rename to assets/gpack/travian_t4/img/u2/u13.gif diff --git a/gpack/travian_t4/img/u2/u14.gif b/assets/gpack/travian_t4/img/u2/u14.gif similarity index 100% rename from gpack/travian_t4/img/u2/u14.gif rename to assets/gpack/travian_t4/img/u2/u14.gif diff --git a/gpack/travian_t4/img/u2/u15.gif b/assets/gpack/travian_t4/img/u2/u15.gif similarity index 100% rename from gpack/travian_t4/img/u2/u15.gif rename to assets/gpack/travian_t4/img/u2/u15.gif diff --git a/gpack/travian_t4/img/u2/u16.gif b/assets/gpack/travian_t4/img/u2/u16.gif similarity index 100% rename from gpack/travian_t4/img/u2/u16.gif rename to assets/gpack/travian_t4/img/u2/u16.gif diff --git a/gpack/travian_t4/img/u2/u17.gif b/assets/gpack/travian_t4/img/u2/u17.gif similarity index 100% rename from gpack/travian_t4/img/u2/u17.gif rename to assets/gpack/travian_t4/img/u2/u17.gif diff --git a/gpack/travian_t4/img/u2/u18.gif b/assets/gpack/travian_t4/img/u2/u18.gif similarity index 100% rename from gpack/travian_t4/img/u2/u18.gif rename to assets/gpack/travian_t4/img/u2/u18.gif diff --git a/gpack/travian_t4/img/u2/u19.gif b/assets/gpack/travian_t4/img/u2/u19.gif similarity index 100% rename from gpack/travian_t4/img/u2/u19.gif rename to assets/gpack/travian_t4/img/u2/u19.gif diff --git a/gpack/travian_t4/img/u2/u2.gif b/assets/gpack/travian_t4/img/u2/u2.gif similarity index 100% rename from gpack/travian_t4/img/u2/u2.gif rename to assets/gpack/travian_t4/img/u2/u2.gif diff --git a/gpack/travian_t4/img/u2/u20.gif b/assets/gpack/travian_t4/img/u2/u20.gif similarity index 100% rename from gpack/travian_t4/img/u2/u20.gif rename to assets/gpack/travian_t4/img/u2/u20.gif diff --git a/gpack/travian_t4/img/u2/u21.gif b/assets/gpack/travian_t4/img/u2/u21.gif similarity index 100% rename from gpack/travian_t4/img/u2/u21.gif rename to assets/gpack/travian_t4/img/u2/u21.gif diff --git a/gpack/travian_t4/img/u2/u22.gif b/assets/gpack/travian_t4/img/u2/u22.gif similarity index 100% rename from gpack/travian_t4/img/u2/u22.gif rename to assets/gpack/travian_t4/img/u2/u22.gif diff --git a/gpack/travian_t4/img/u2/u23.gif b/assets/gpack/travian_t4/img/u2/u23.gif similarity index 100% rename from gpack/travian_t4/img/u2/u23.gif rename to assets/gpack/travian_t4/img/u2/u23.gif diff --git a/gpack/travian_t4/img/u2/u24.gif b/assets/gpack/travian_t4/img/u2/u24.gif similarity index 100% rename from gpack/travian_t4/img/u2/u24.gif rename to assets/gpack/travian_t4/img/u2/u24.gif diff --git a/gpack/travian_t4/img/u2/u25.gif b/assets/gpack/travian_t4/img/u2/u25.gif similarity index 100% rename from gpack/travian_t4/img/u2/u25.gif rename to assets/gpack/travian_t4/img/u2/u25.gif diff --git a/gpack/travian_t4/img/u2/u26.gif b/assets/gpack/travian_t4/img/u2/u26.gif similarity index 100% rename from gpack/travian_t4/img/u2/u26.gif rename to assets/gpack/travian_t4/img/u2/u26.gif diff --git a/gpack/travian_t4/img/u2/u27.gif b/assets/gpack/travian_t4/img/u2/u27.gif similarity index 100% rename from gpack/travian_t4/img/u2/u27.gif rename to assets/gpack/travian_t4/img/u2/u27.gif diff --git a/gpack/travian_t4/img/u2/u28.gif b/assets/gpack/travian_t4/img/u2/u28.gif similarity index 100% rename from gpack/travian_t4/img/u2/u28.gif rename to assets/gpack/travian_t4/img/u2/u28.gif diff --git a/gpack/travian_t4/img/u2/u29.gif b/assets/gpack/travian_t4/img/u2/u29.gif similarity index 100% rename from gpack/travian_t4/img/u2/u29.gif rename to assets/gpack/travian_t4/img/u2/u29.gif diff --git a/gpack/travian_t4/img/u2/u3.gif b/assets/gpack/travian_t4/img/u2/u3.gif similarity index 100% rename from gpack/travian_t4/img/u2/u3.gif rename to assets/gpack/travian_t4/img/u2/u3.gif diff --git a/gpack/travian_t4/img/u2/u30.gif b/assets/gpack/travian_t4/img/u2/u30.gif similarity index 100% rename from gpack/travian_t4/img/u2/u30.gif rename to assets/gpack/travian_t4/img/u2/u30.gif diff --git a/gpack/travian_t4/img/u2/u4.gif b/assets/gpack/travian_t4/img/u2/u4.gif similarity index 100% rename from gpack/travian_t4/img/u2/u4.gif rename to assets/gpack/travian_t4/img/u2/u4.gif diff --git a/gpack/travian_t4/img/u2/u5.gif b/assets/gpack/travian_t4/img/u2/u5.gif similarity index 100% rename from gpack/travian_t4/img/u2/u5.gif rename to assets/gpack/travian_t4/img/u2/u5.gif diff --git a/gpack/travian_t4/img/u2/u6.gif b/assets/gpack/travian_t4/img/u2/u6.gif similarity index 100% rename from gpack/travian_t4/img/u2/u6.gif rename to assets/gpack/travian_t4/img/u2/u6.gif diff --git a/gpack/travian_t4/img/u2/u7.gif b/assets/gpack/travian_t4/img/u2/u7.gif similarity index 100% rename from gpack/travian_t4/img/u2/u7.gif rename to assets/gpack/travian_t4/img/u2/u7.gif diff --git a/gpack/travian_t4/img/u2/u8.gif b/assets/gpack/travian_t4/img/u2/u8.gif similarity index 100% rename from gpack/travian_t4/img/u2/u8.gif rename to assets/gpack/travian_t4/img/u2/u8.gif diff --git a/gpack/travian_t4/img/u2/u9.gif b/assets/gpack/travian_t4/img/u2/u9.gif similarity index 100% rename from gpack/travian_t4/img/u2/u9.gif rename to assets/gpack/travian_t4/img/u2/u9.gif diff --git a/gpack/travian_default/lang/en/new/index.php b/assets/gpack/travian_t4/img/u2rtl/index.php similarity index 100% rename from gpack/travian_default/lang/en/new/index.php rename to assets/gpack/travian_t4/img/u2rtl/index.php diff --git a/gpack/travian_t4/img/u2rtl/u1.gif b/assets/gpack/travian_t4/img/u2rtl/u1.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u1.gif rename to assets/gpack/travian_t4/img/u2rtl/u1.gif diff --git a/gpack/travian_t4/img/u2rtl/u10.gif b/assets/gpack/travian_t4/img/u2rtl/u10.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u10.gif rename to assets/gpack/travian_t4/img/u2rtl/u10.gif diff --git a/gpack/travian_t4/img/u2rtl/u11.gif b/assets/gpack/travian_t4/img/u2rtl/u11.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u11.gif rename to assets/gpack/travian_t4/img/u2rtl/u11.gif diff --git a/gpack/travian_t4/img/u2rtl/u12.gif b/assets/gpack/travian_t4/img/u2rtl/u12.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u12.gif rename to assets/gpack/travian_t4/img/u2rtl/u12.gif diff --git a/gpack/travian_t4/img/u2rtl/u13.gif b/assets/gpack/travian_t4/img/u2rtl/u13.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u13.gif rename to assets/gpack/travian_t4/img/u2rtl/u13.gif diff --git a/gpack/travian_t4/img/u2rtl/u14.gif b/assets/gpack/travian_t4/img/u2rtl/u14.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u14.gif rename to assets/gpack/travian_t4/img/u2rtl/u14.gif diff --git a/gpack/travian_t4/img/u2rtl/u15.gif b/assets/gpack/travian_t4/img/u2rtl/u15.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u15.gif rename to assets/gpack/travian_t4/img/u2rtl/u15.gif diff --git a/gpack/travian_t4/img/u2rtl/u16.gif b/assets/gpack/travian_t4/img/u2rtl/u16.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u16.gif rename to assets/gpack/travian_t4/img/u2rtl/u16.gif diff --git a/gpack/travian_t4/img/u2rtl/u17.gif b/assets/gpack/travian_t4/img/u2rtl/u17.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u17.gif rename to assets/gpack/travian_t4/img/u2rtl/u17.gif diff --git a/gpack/travian_t4/img/u2rtl/u18.gif b/assets/gpack/travian_t4/img/u2rtl/u18.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u18.gif rename to assets/gpack/travian_t4/img/u2rtl/u18.gif diff --git a/gpack/travian_t4/img/u2rtl/u19.gif b/assets/gpack/travian_t4/img/u2rtl/u19.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u19.gif rename to assets/gpack/travian_t4/img/u2rtl/u19.gif diff --git a/gpack/travian_t4/img/u2rtl/u2.gif b/assets/gpack/travian_t4/img/u2rtl/u2.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u2.gif rename to assets/gpack/travian_t4/img/u2rtl/u2.gif diff --git a/gpack/travian_t4/img/u2rtl/u20.gif b/assets/gpack/travian_t4/img/u2rtl/u20.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u20.gif rename to assets/gpack/travian_t4/img/u2rtl/u20.gif diff --git a/gpack/travian_t4/img/u2rtl/u21.gif b/assets/gpack/travian_t4/img/u2rtl/u21.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u21.gif rename to assets/gpack/travian_t4/img/u2rtl/u21.gif diff --git a/gpack/travian_t4/img/u2rtl/u22.gif b/assets/gpack/travian_t4/img/u2rtl/u22.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u22.gif rename to assets/gpack/travian_t4/img/u2rtl/u22.gif diff --git a/gpack/travian_t4/img/u2rtl/u23.gif b/assets/gpack/travian_t4/img/u2rtl/u23.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u23.gif rename to assets/gpack/travian_t4/img/u2rtl/u23.gif diff --git a/gpack/travian_t4/img/u2rtl/u24.gif b/assets/gpack/travian_t4/img/u2rtl/u24.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u24.gif rename to assets/gpack/travian_t4/img/u2rtl/u24.gif diff --git a/gpack/travian_t4/img/u2rtl/u25.gif b/assets/gpack/travian_t4/img/u2rtl/u25.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u25.gif rename to assets/gpack/travian_t4/img/u2rtl/u25.gif diff --git a/gpack/travian_t4/img/u2rtl/u26.gif b/assets/gpack/travian_t4/img/u2rtl/u26.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u26.gif rename to assets/gpack/travian_t4/img/u2rtl/u26.gif diff --git a/gpack/travian_t4/img/u2rtl/u27.gif b/assets/gpack/travian_t4/img/u2rtl/u27.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u27.gif rename to assets/gpack/travian_t4/img/u2rtl/u27.gif diff --git a/gpack/travian_t4/img/u2rtl/u28.gif b/assets/gpack/travian_t4/img/u2rtl/u28.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u28.gif rename to assets/gpack/travian_t4/img/u2rtl/u28.gif diff --git a/gpack/travian_t4/img/u2rtl/u29.gif b/assets/gpack/travian_t4/img/u2rtl/u29.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u29.gif rename to assets/gpack/travian_t4/img/u2rtl/u29.gif diff --git a/gpack/travian_t4/img/u2rtl/u3.gif b/assets/gpack/travian_t4/img/u2rtl/u3.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u3.gif rename to assets/gpack/travian_t4/img/u2rtl/u3.gif diff --git a/gpack/travian_t4/img/u2rtl/u30.gif b/assets/gpack/travian_t4/img/u2rtl/u30.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u30.gif rename to assets/gpack/travian_t4/img/u2rtl/u30.gif diff --git a/gpack/travian_t4/img/u2rtl/u4.gif b/assets/gpack/travian_t4/img/u2rtl/u4.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u4.gif rename to assets/gpack/travian_t4/img/u2rtl/u4.gif diff --git a/gpack/travian_t4/img/u2rtl/u5.gif b/assets/gpack/travian_t4/img/u2rtl/u5.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u5.gif rename to assets/gpack/travian_t4/img/u2rtl/u5.gif diff --git a/gpack/travian_t4/img/u2rtl/u6.gif b/assets/gpack/travian_t4/img/u2rtl/u6.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u6.gif rename to assets/gpack/travian_t4/img/u2rtl/u6.gif diff --git a/gpack/travian_t4/img/u2rtl/u7.gif b/assets/gpack/travian_t4/img/u2rtl/u7.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u7.gif rename to assets/gpack/travian_t4/img/u2rtl/u7.gif diff --git a/gpack/travian_t4/img/u2rtl/u8.gif b/assets/gpack/travian_t4/img/u2rtl/u8.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u8.gif rename to assets/gpack/travian_t4/img/u2rtl/u8.gif diff --git a/gpack/travian_t4/img/u2rtl/u9.gif b/assets/gpack/travian_t4/img/u2rtl/u9.gif similarity index 100% rename from gpack/travian_t4/img/u2rtl/u9.gif rename to assets/gpack/travian_t4/img/u2rtl/u9.gif diff --git a/gpack/travian_default/lang/en/p/index.php b/assets/gpack/travian_t4/img/wm/index.php similarity index 100% rename from gpack/travian_default/lang/en/p/index.php rename to assets/gpack/travian_t4/img/wm/index.php diff --git a/gpack/travian_t4/img/wm/wm99.gif b/assets/gpack/travian_t4/img/wm/wm99.gif similarity index 100% rename from gpack/travian_t4/img/wm/wm99.gif rename to assets/gpack/travian_t4/img/wm/wm99.gif diff --git a/gpack/travian_default/lang/en/t1/index.php b/assets/gpack/travian_t4/index.php similarity index 100% rename from gpack/travian_default/lang/en/t1/index.php rename to assets/gpack/travian_t4/index.php diff --git a/gpack/travian_default/lang/en/t2/index.php b/assets/gpack/travian_t4/lang/en/a/index.php similarity index 100% rename from gpack/travian_default/lang/en/t2/index.php rename to assets/gpack/travian_t4/lang/en/a/index.php diff --git a/gpack/travian_t4/lang/en/a/plus.gif b/assets/gpack/travian_t4/lang/en/a/plus.gif similarity index 100% rename from gpack/travian_t4/lang/en/a/plus.gif rename to assets/gpack/travian_t4/lang/en/a/plus.gif diff --git a/gpack/travian_t4/lang/en/a/travian0.gif b/assets/gpack/travian_t4/lang/en/a/travian0.gif similarity index 100% rename from gpack/travian_t4/lang/en/a/travian0.gif rename to assets/gpack/travian_t4/lang/en/a/travian0.gif diff --git a/gpack/travian_t4/lang/en/a/travian1.gif b/assets/gpack/travian_t4/lang/en/a/travian1.gif similarity index 100% rename from gpack/travian_t4/lang/en/a/travian1.gif rename to assets/gpack/travian_t4/lang/en/a/travian1.gif diff --git a/gpack/travian_t4/lang/en/b/archiv.gif b/assets/gpack/travian_t4/lang/en/b/archiv.gif similarity index 100% rename from gpack/travian_t4/lang/en/b/archiv.gif rename to assets/gpack/travian_t4/lang/en/b/archiv.gif diff --git a/gpack/travian_t4/lang/en/b/back.gif b/assets/gpack/travian_t4/lang/en/b/back.gif similarity index 100% rename from gpack/travian_t4/lang/en/b/back.gif rename to assets/gpack/travian_t4/lang/en/b/back.gif diff --git a/gpack/travian_t4/lang/en/b/delete.gif b/assets/gpack/travian_t4/lang/en/b/delete.gif similarity index 100% rename from gpack/travian_t4/lang/en/b/delete.gif rename to assets/gpack/travian_t4/lang/en/b/delete.gif diff --git a/gpack/travian_t4/lang/en/b/demolish.gif b/assets/gpack/travian_t4/lang/en/b/demolish.gif similarity index 100% rename from gpack/travian_t4/lang/en/b/demolish.gif rename to assets/gpack/travian_t4/lang/en/b/demolish.gif diff --git a/gpack/travian_t4/lang/en/b/forward.gif b/assets/gpack/travian_t4/lang/en/b/forward.gif similarity index 100% rename from gpack/travian_t4/lang/en/b/forward.gif rename to assets/gpack/travian_t4/lang/en/b/forward.gif diff --git a/gpack/travian_default/lang/index.php b/assets/gpack/travian_t4/lang/en/b/index.php similarity index 100% rename from gpack/travian_default/lang/index.php rename to assets/gpack/travian_t4/lang/en/b/index.php diff --git a/gpack/travian_t4/lang/en/b/login.gif b/assets/gpack/travian_t4/lang/en/b/login.gif similarity index 100% rename from gpack/travian_t4/lang/en/b/login.gif rename to assets/gpack/travian_t4/lang/en/b/login.gif diff --git a/gpack/travian_t4/lang/en/b/ok.gif b/assets/gpack/travian_t4/lang/en/b/ok.gif similarity index 100% rename from gpack/travian_t4/lang/en/b/ok.gif rename to assets/gpack/travian_t4/lang/en/b/ok.gif diff --git a/gpack/travian_t4/lang/en/b/reply.gif b/assets/gpack/travian_t4/lang/en/b/reply.gif similarity index 100% rename from gpack/travian_t4/lang/en/b/reply.gif rename to assets/gpack/travian_t4/lang/en/b/reply.gif diff --git a/gpack/travian_t4/lang/en/b/save.gif b/assets/gpack/travian_t4/lang/en/b/save.gif similarity index 100% rename from gpack/travian_t4/lang/en/b/save.gif rename to assets/gpack/travian_t4/lang/en/b/save.gif diff --git a/gpack/travian_t4/lang/en/b/search.gif b/assets/gpack/travian_t4/lang/en/b/search.gif similarity index 100% rename from gpack/travian_t4/lang/en/b/search.gif rename to assets/gpack/travian_t4/lang/en/b/search.gif diff --git a/gpack/travian_t4/lang/en/b/send.gif b/assets/gpack/travian_t4/lang/en/b/send.gif similarity index 100% rename from gpack/travian_t4/lang/en/b/send.gif rename to assets/gpack/travian_t4/lang/en/b/send.gif diff --git a/gpack/travian_t4/lang/en/b/signup.gif b/assets/gpack/travian_t4/lang/en/b/signup.gif similarity index 100% rename from gpack/travian_t4/lang/en/b/signup.gif rename to assets/gpack/travian_t4/lang/en/b/signup.gif diff --git a/gpack/travian_t4/lang/en/b/train.gif b/assets/gpack/travian_t4/lang/en/b/train.gif similarity index 100% rename from gpack/travian_t4/lang/en/b/train.gif rename to assets/gpack/travian_t4/lang/en/b/train.gif diff --git a/gpack/travian_t4/lang/en/b/zurueck.html b/assets/gpack/travian_t4/lang/en/b/zurueck.html similarity index 100% rename from gpack/travian_t4/lang/en/b/zurueck.html rename to assets/gpack/travian_t4/lang/en/b/zurueck.html diff --git a/gpack/travian_t4/lang/en/compact.css b/assets/gpack/travian_t4/lang/en/compact.css similarity index 100% rename from gpack/travian_t4/lang/en/compact.css rename to assets/gpack/travian_t4/lang/en/compact.css diff --git a/gpack/travian_default/modules/index.php b/assets/gpack/travian_t4/lang/en/f/index.php similarity index 100% rename from gpack/travian_default/modules/index.php rename to assets/gpack/travian_t4/lang/en/f/index.php diff --git a/gpack/travian_t4/lang/en/f/newforum.gif b/assets/gpack/travian_t4/lang/en/f/newforum.gif similarity index 100% rename from gpack/travian_t4/lang/en/f/newforum.gif rename to assets/gpack/travian_t4/lang/en/f/newforum.gif diff --git a/gpack/travian_t4/lang/en/f/post.gif b/assets/gpack/travian_t4/lang/en/f/post.gif similarity index 100% rename from gpack/travian_t4/lang/en/f/post.gif rename to assets/gpack/travian_t4/lang/en/f/post.gif diff --git a/gpack/travian_t4/lang/en/f/reply.gif b/assets/gpack/travian_t4/lang/en/f/reply.gif similarity index 100% rename from gpack/travian_t4/lang/en/f/reply.gif rename to assets/gpack/travian_t4/lang/en/f/reply.gif diff --git a/gpack/travian_t4/lang/en/f/result.gif b/assets/gpack/travian_t4/lang/en/f/result.gif similarity index 100% rename from gpack/travian_t4/lang/en/f/result.gif rename to assets/gpack/travian_t4/lang/en/f/result.gif diff --git a/gpack/travian_t4/lang/en/f/vote.gif b/assets/gpack/travian_t4/lang/en/f/vote.gif similarity index 100% rename from gpack/travian_t4/lang/en/f/vote.gif rename to assets/gpack/travian_t4/lang/en/f/vote.gif diff --git a/gpack/travian_t4/lang/en/f/voting.gif b/assets/gpack/travian_t4/lang/en/f/voting.gif similarity index 100% rename from gpack/travian_t4/lang/en/f/voting.gif rename to assets/gpack/travian_t4/lang/en/f/voting.gif diff --git a/gpack/travian_t4/lang/en/gp_check.css b/assets/gpack/travian_t4/lang/en/gp_check.css similarity index 100% rename from gpack/travian_t4/lang/en/gp_check.css rename to assets/gpack/travian_t4/lang/en/gp_check.css diff --git a/gpack/travian_t4/images/index.php b/assets/gpack/travian_t4/lang/en/index.php similarity index 100% rename from gpack/travian_t4/images/index.php rename to assets/gpack/travian_t4/lang/en/index.php diff --git a/gpack/travian_t4/lang/en/lang.css b/assets/gpack/travian_t4/lang/en/lang.css similarity index 100% rename from gpack/travian_t4/lang/en/lang.css rename to assets/gpack/travian_t4/lang/en/lang.css diff --git a/gpack/travian_t4/lang/en/msg/block_bg24a.gif b/assets/gpack/travian_t4/lang/en/msg/block_bg24a.gif similarity index 100% rename from gpack/travian_t4/lang/en/msg/block_bg24a.gif rename to assets/gpack/travian_t4/lang/en/msg/block_bg24a.gif diff --git a/gpack/travian_t4/lang/en/msg/block_bg24b.gif b/assets/gpack/travian_t4/lang/en/msg/block_bg24b.gif similarity index 100% rename from gpack/travian_t4/lang/en/msg/block_bg24b.gif rename to assets/gpack/travian_t4/lang/en/msg/block_bg24b.gif diff --git a/gpack/travian_t4/img/a/index.php b/assets/gpack/travian_t4/lang/en/msg/index.php similarity index 100% rename from gpack/travian_t4/img/a/index.php rename to assets/gpack/travian_t4/lang/en/msg/index.php diff --git a/gpack/travian_t4/lang/en/new/gp_preview.png b/assets/gpack/travian_t4/lang/en/new/gp_preview.png similarity index 100% rename from gpack/travian_t4/lang/en/new/gp_preview.png rename to assets/gpack/travian_t4/lang/en/new/gp_preview.png diff --git a/gpack/travian_t4/img/artefact/index.php b/assets/gpack/travian_t4/lang/en/new/index.php similarity index 100% rename from gpack/travian_t4/img/artefact/index.php rename to assets/gpack/travian_t4/lang/en/new/index.php diff --git a/gpack/travian_t4/lang/en/p/autovv.gif b/assets/gpack/travian_t4/lang/en/p/autovv.gif similarity index 100% rename from gpack/travian_t4/lang/en/p/autovv.gif rename to assets/gpack/travian_t4/lang/en/p/autovv.gif diff --git a/gpack/travian_t4/lang/en/p/bfilter.gif b/assets/gpack/travian_t4/lang/en/p/bfilter.gif similarity index 100% rename from gpack/travian_t4/lang/en/p/bfilter.gif rename to assets/gpack/travian_t4/lang/en/p/bfilter.gif diff --git a/gpack/travian_t4/lang/en/p/dorf3.jpg b/assets/gpack/travian_t4/lang/en/p/dorf3.jpg similarity index 100% rename from gpack/travian_t4/lang/en/p/dorf3.jpg rename to assets/gpack/travian_t4/lang/en/p/dorf3.jpg diff --git a/gpack/travian_t4/img/f/index.php b/assets/gpack/travian_t4/lang/en/p/index.php similarity index 100% rename from gpack/travian_t4/img/f/index.php rename to assets/gpack/travian_t4/lang/en/p/index.php diff --git a/gpack/travian_t4/lang/en/p/p1.gif b/assets/gpack/travian_t4/lang/en/p/p1.gif similarity index 100% rename from gpack/travian_t4/lang/en/p/p1.gif rename to assets/gpack/travian_t4/lang/en/p/p1.gif diff --git a/gpack/travian_t4/lang/en/p/p3.gif b/assets/gpack/travian_t4/lang/en/p/p3.gif similarity index 100% rename from gpack/travian_t4/lang/en/p/p3.gif rename to assets/gpack/travian_t4/lang/en/p/p3.gif diff --git a/gpack/travian_t4/lang/en/p/p4.gif b/assets/gpack/travian_t4/lang/en/p/p4.gif similarity index 100% rename from gpack/travian_t4/lang/en/p/p4.gif rename to assets/gpack/travian_t4/lang/en/p/p4.gif diff --git a/gpack/travian_t4/lang/en/p/p5.gif b/assets/gpack/travian_t4/lang/en/p/p5.gif similarity index 100% rename from gpack/travian_t4/lang/en/p/p5.gif rename to assets/gpack/travian_t4/lang/en/p/p5.gif diff --git a/gpack/travian_t4/lang/en/p/p6.gif b/assets/gpack/travian_t4/lang/en/p/p6.gif similarity index 100% rename from gpack/travian_t4/lang/en/p/p6.gif rename to assets/gpack/travian_t4/lang/en/p/p6.gif diff --git a/gpack/travian_t4/lang/en/p/p7.gif b/assets/gpack/travian_t4/lang/en/p/p7.gif similarity index 100% rename from gpack/travian_t4/lang/en/p/p7.gif rename to assets/gpack/travian_t4/lang/en/p/p7.gif diff --git a/gpack/travian_t4/lang/en/p/p8.gif b/assets/gpack/travian_t4/lang/en/p/p8.gif similarity index 100% rename from gpack/travian_t4/lang/en/p/p8.gif rename to assets/gpack/travian_t4/lang/en/p/p8.gif diff --git a/gpack/travian_t4/lang/en/p/sort.jpg b/assets/gpack/travian_t4/lang/en/p/sort.jpg similarity index 100% rename from gpack/travian_t4/lang/en/p/sort.jpg rename to assets/gpack/travian_t4/lang/en/p/sort.jpg diff --git a/gpack/travian_t4/lang/en/p/st1.gif b/assets/gpack/travian_t4/lang/en/p/st1.gif similarity index 100% rename from gpack/travian_t4/lang/en/p/st1.gif rename to assets/gpack/travian_t4/lang/en/p/st1.gif diff --git a/gpack/travian_t4/lang/en/p/xxl_map.gif b/assets/gpack/travian_t4/lang/en/p/xxl_map.gif similarity index 100% rename from gpack/travian_t4/lang/en/p/xxl_map.gif rename to assets/gpack/travian_t4/lang/en/p/xxl_map.gif diff --git a/gpack/travian_t4/lang/en/t1/anmelden.gif b/assets/gpack/travian_t4/lang/en/t1/anmelden.gif similarity index 100% rename from gpack/travian_t4/lang/en/t1/anmelden.gif rename to assets/gpack/travian_t4/lang/en/t1/anmelden.gif diff --git a/gpack/travian_t4/img/g/index.php b/assets/gpack/travian_t4/lang/en/t1/index.php similarity index 100% rename from gpack/travian_t4/img/g/index.php rename to assets/gpack/travian_t4/lang/en/t1/index.php diff --git a/gpack/travian_t4/lang/en/t1/login.gif b/assets/gpack/travian_t4/lang/en/t1/login.gif similarity index 100% rename from gpack/travian_t4/lang/en/t1/login.gif rename to assets/gpack/travian_t4/lang/en/t1/login.gif diff --git a/gpack/travian_t4/lang/en/t1/passwort.gif b/assets/gpack/travian_t4/lang/en/t1/passwort.gif similarity index 100% rename from gpack/travian_t4/lang/en/t1/passwort.gif rename to assets/gpack/travian_t4/lang/en/t1/passwort.gif diff --git a/gpack/travian_t4/img/index.php b/assets/gpack/travian_t4/lang/en/t2/index.php similarity index 100% rename from gpack/travian_t4/img/index.php rename to assets/gpack/travian_t4/lang/en/t2/index.php diff --git a/gpack/travian_t4/lang/en/t2/u04.gif b/assets/gpack/travian_t4/lang/en/t2/u04.gif similarity index 100% rename from gpack/travian_t4/lang/en/t2/u04.gif rename to assets/gpack/travian_t4/lang/en/t2/u04.gif diff --git a/gpack/travian_t4/lang/en/t2/u05.gif b/assets/gpack/travian_t4/lang/en/t2/u05.gif similarity index 100% rename from gpack/travian_t4/lang/en/t2/u05.gif rename to assets/gpack/travian_t4/lang/en/t2/u05.gif diff --git a/gpack/travian_t4/lang/en/t2/u06.gif b/assets/gpack/travian_t4/lang/en/t2/u06.gif similarity index 100% rename from gpack/travian_t4/lang/en/t2/u06.gif rename to assets/gpack/travian_t4/lang/en/t2/u06.gif diff --git a/gpack/travian_t4/lang/en/t2/u07.gif b/assets/gpack/travian_t4/lang/en/t2/u07.gif similarity index 100% rename from gpack/travian_t4/lang/en/t2/u07.gif rename to assets/gpack/travian_t4/lang/en/t2/u07.gif diff --git a/gpack/travian_t4/lang/en/t2/u22.gif b/assets/gpack/travian_t4/lang/en/t2/u22.gif similarity index 100% rename from gpack/travian_t4/lang/en/t2/u22.gif rename to assets/gpack/travian_t4/lang/en/t2/u22.gif diff --git a/gpack/travian_t4/img/l/index.php b/assets/gpack/travian_t4/lang/index.php similarity index 100% rename from gpack/travian_t4/img/l/index.php rename to assets/gpack/travian_t4/lang/index.php diff --git a/gpack/travian_t4/img/m/index.php b/assets/gpack/travian_t4/modules/index.php similarity index 100% rename from gpack/travian_t4/img/m/index.php rename to assets/gpack/travian_t4/modules/index.php diff --git a/gpack/travian_t4/modules/new_colors.css b/assets/gpack/travian_t4/modules/new_colors.css similarity index 100% rename from gpack/travian_t4/modules/new_colors.css rename to assets/gpack/travian_t4/modules/new_colors.css diff --git a/gpack/travian_t4/modules/new_images.css b/assets/gpack/travian_t4/modules/new_images.css similarity index 100% rename from gpack/travian_t4/modules/new_images.css rename to assets/gpack/travian_t4/modules/new_images.css diff --git a/gpack/travian_t4/modules/new_layout_ltr.css b/assets/gpack/travian_t4/modules/new_layout_ltr.css similarity index 100% rename from gpack/travian_t4/modules/new_layout_ltr.css rename to assets/gpack/travian_t4/modules/new_layout_ltr.css diff --git a/gpack/travian_t4/naviSmall.png b/assets/gpack/travian_t4/naviSmall.png similarity index 100% rename from gpack/travian_t4/naviSmall.png rename to assets/gpack/travian_t4/naviSmall.png diff --git a/gpack/travian_t4/travian.css b/assets/gpack/travian_t4/travian.css similarity index 100% rename from gpack/travian_t4/travian.css rename to assets/gpack/travian_t4/travian.css diff --git a/img/admin/acc.gif b/assets/img/admin/acc.gif similarity index 100% rename from img/admin/acc.gif rename to assets/img/admin/acc.gif diff --git a/img/admin/acp.css b/assets/img/admin/acp.css similarity index 100% rename from img/admin/acp.css rename to assets/img/admin/acp.css diff --git a/img/admin/admin.css b/assets/img/admin/admin.css similarity index 100% rename from img/admin/admin.css rename to assets/img/admin/admin.css diff --git a/img/admin/admin.gif b/assets/img/admin/admin.gif similarity index 100% rename from img/admin/admin.gif rename to assets/img/admin/admin.gif diff --git a/img/admin/b/archiv.gif b/assets/img/admin/b/archiv.gif similarity index 100% rename from img/admin/b/archiv.gif rename to assets/img/admin/b/archiv.gif diff --git a/img/admin/b/back.gif b/assets/img/admin/b/back.gif similarity index 100% rename from img/admin/b/back.gif rename to assets/img/admin/b/back.gif diff --git a/img/admin/b/delete.gif b/assets/img/admin/b/delete.gif similarity index 100% rename from img/admin/b/delete.gif rename to assets/img/admin/b/delete.gif diff --git a/img/admin/b/demolish.gif b/assets/img/admin/b/demolish.gif similarity index 100% rename from img/admin/b/demolish.gif rename to assets/img/admin/b/demolish.gif diff --git a/img/admin/b/forward.gif b/assets/img/admin/b/forward.gif similarity index 100% rename from img/admin/b/forward.gif rename to assets/img/admin/b/forward.gif diff --git a/gpack/travian_t4/img/misc/index.php b/assets/img/admin/b/index.php similarity index 100% rename from gpack/travian_t4/img/misc/index.php rename to assets/img/admin/b/index.php diff --git a/img/admin/b/l1.gif b/assets/img/admin/b/l1.gif similarity index 100% rename from img/admin/b/l1.gif rename to assets/img/admin/b/l1.gif diff --git a/img/admin/b/l2.gif b/assets/img/admin/b/l2.gif similarity index 100% rename from img/admin/b/l2.gif rename to assets/img/admin/b/l2.gif diff --git a/img/admin/b/login.gif b/assets/img/admin/b/login.gif similarity index 100% rename from img/admin/b/login.gif rename to assets/img/admin/b/login.gif diff --git a/img/admin/b/ok.gif b/assets/img/admin/b/ok.gif similarity index 100% rename from img/admin/b/ok.gif rename to assets/img/admin/b/ok.gif diff --git a/img/admin/b/ok1.gif b/assets/img/admin/b/ok1.gif similarity index 100% rename from img/admin/b/ok1.gif rename to assets/img/admin/b/ok1.gif diff --git a/img/admin/b/ok2.gif b/assets/img/admin/b/ok2.gif similarity index 100% rename from img/admin/b/ok2.gif rename to assets/img/admin/b/ok2.gif diff --git a/img/admin/b/reply.gif b/assets/img/admin/b/reply.gif similarity index 100% rename from img/admin/b/reply.gif rename to assets/img/admin/b/reply.gif diff --git a/img/admin/b/save.gif b/assets/img/admin/b/save.gif similarity index 100% rename from img/admin/b/save.gif rename to assets/img/admin/b/save.gif diff --git a/img/admin/b/search.gif b/assets/img/admin/b/search.gif similarity index 100% rename from img/admin/b/search.gif rename to assets/img/admin/b/search.gif diff --git a/img/admin/b/send.gif b/assets/img/admin/b/send.gif similarity index 100% rename from img/admin/b/send.gif rename to assets/img/admin/b/send.gif diff --git a/img/admin/b/signup.gif b/assets/img/admin/b/signup.gif similarity index 100% rename from img/admin/b/signup.gif rename to assets/img/admin/b/signup.gif diff --git a/img/admin/b/train.gif b/assets/img/admin/b/train.gif similarity index 100% rename from img/admin/b/train.gif rename to assets/img/admin/b/train.gif diff --git a/img/admin/b/update.png b/assets/img/admin/b/update.png similarity index 100% rename from img/admin/b/update.png rename to assets/img/admin/b/update.png diff --git a/img/admin/b/zurueck.html b/assets/img/admin/b/zurueck.html similarity index 100% rename from img/admin/b/zurueck.html rename to assets/img/admin/b/zurueck.html diff --git a/img/admin/c4.gif b/assets/img/admin/c4.gif similarity index 100% rename from img/admin/c4.gif rename to assets/img/admin/c4.gif diff --git a/img/admin/del.gif b/assets/img/admin/del.gif similarity index 100% rename from img/admin/del.gif rename to assets/img/admin/del.gif diff --git a/img/admin/del_g.gif b/assets/img/admin/del_g.gif similarity index 100% rename from img/admin/del_g.gif rename to assets/img/admin/del_g.gif diff --git a/img/admin/edit.gif b/assets/img/admin/edit.gif similarity index 100% rename from img/admin/edit.gif rename to assets/img/admin/edit.gif diff --git a/img/admin/gold.gif b/assets/img/admin/gold.gif similarity index 100% rename from img/admin/gold.gif rename to assets/img/admin/gold.gif diff --git a/img/admin/gold_g.gif b/assets/img/admin/gold_g.gif similarity index 100% rename from img/admin/gold_g.gif rename to assets/img/admin/gold_g.gif diff --git a/gpack/travian_t4/img/msg/index.php b/assets/img/admin/icon/index.php similarity index 100% rename from gpack/travian_t4/img/msg/index.php rename to assets/img/admin/icon/index.php diff --git a/img/admin/icon/nav_arrow_gray.gif b/assets/img/admin/icon/nav_arrow_gray.gif similarity index 100% rename from img/admin/icon/nav_arrow_gray.gif rename to assets/img/admin/icon/nav_arrow_gray.gif diff --git a/gpack/travian_t4/img/new/index.php b/assets/img/admin/index.php similarity index 100% rename from gpack/travian_t4/img/new/index.php rename to assets/img/admin/index.php diff --git a/img/admin/logo.jpg b/assets/img/admin/logo.jpg similarity index 100% rename from img/admin/logo.jpg rename to assets/img/admin/logo.jpg diff --git a/img/admin/map.css b/assets/img/admin/map.css similarity index 100% rename from img/admin/map.css rename to assets/img/admin/map.css diff --git a/img/admin/map_0.gif b/assets/img/admin/map_0.gif similarity index 100% rename from img/admin/map_0.gif rename to assets/img/admin/map_0.gif diff --git a/img/admin/map_1.gif b/assets/img/admin/map_1.gif similarity index 100% rename from img/admin/map_1.gif rename to assets/img/admin/map_1.gif diff --git a/img/admin/map_11.gif b/assets/img/admin/map_11.gif similarity index 100% rename from img/admin/map_11.gif rename to assets/img/admin/map_11.gif diff --git a/img/admin/map_12.gif b/assets/img/admin/map_12.gif similarity index 100% rename from img/admin/map_12.gif rename to assets/img/admin/map_12.gif diff --git a/img/admin/map_13.gif b/assets/img/admin/map_13.gif similarity index 100% rename from img/admin/map_13.gif rename to assets/img/admin/map_13.gif diff --git a/img/admin/map_2.gif b/assets/img/admin/map_2.gif similarity index 100% rename from img/admin/map_2.gif rename to assets/img/admin/map_2.gif diff --git a/img/admin/map_3.gif b/assets/img/admin/map_3.gif similarity index 100% rename from img/admin/map_3.gif rename to assets/img/admin/map_3.gif diff --git a/img/admin/map_4.gif b/assets/img/admin/map_4.gif similarity index 100% rename from img/admin/map_4.gif rename to assets/img/admin/map_4.gif diff --git a/img/admin/map_5.gif b/assets/img/admin/map_5.gif similarity index 100% rename from img/admin/map_5.gif rename to assets/img/admin/map_5.gif diff --git a/img/admin/map_piece.jpg b/assets/img/admin/map_piece.jpg similarity index 100% rename from img/admin/map_piece.jpg rename to assets/img/admin/map_piece.jpg diff --git a/img/admin/r/1.gif b/assets/img/admin/r/1.gif similarity index 100% rename from img/admin/r/1.gif rename to assets/img/admin/r/1.gif diff --git a/img/admin/r/2.gif b/assets/img/admin/r/2.gif similarity index 100% rename from img/admin/r/2.gif rename to assets/img/admin/r/2.gif diff --git a/img/admin/r/3.gif b/assets/img/admin/r/3.gif similarity index 100% rename from img/admin/r/3.gif rename to assets/img/admin/r/3.gif diff --git a/img/admin/r/4.gif b/assets/img/admin/r/4.gif similarity index 100% rename from img/admin/r/4.gif rename to assets/img/admin/r/4.gif diff --git a/img/admin/r/4b.gif b/assets/img/admin/r/4b.gif similarity index 100% rename from img/admin/r/4b.gif rename to assets/img/admin/r/4b.gif diff --git a/img/admin/r/5.gif b/assets/img/admin/r/5.gif similarity index 100% rename from img/admin/r/5.gif rename to assets/img/admin/r/5.gif diff --git a/img/admin/r/5b.gif b/assets/img/admin/r/5b.gif similarity index 100% rename from img/admin/r/5b.gif rename to assets/img/admin/r/5b.gif diff --git a/img/admin/r/6.gif b/assets/img/admin/r/6.gif similarity index 100% rename from img/admin/r/6.gif rename to assets/img/admin/r/6.gif diff --git a/img/admin/r/7.gif b/assets/img/admin/r/7.gif similarity index 100% rename from img/admin/r/7.gif rename to assets/img/admin/r/7.gif diff --git a/img/admin/r/easter.gif b/assets/img/admin/r/easter.gif similarity index 100% rename from img/admin/r/easter.gif rename to assets/img/admin/r/easter.gif diff --git a/gpack/travian_t4/img/p/index.php b/assets/img/admin/r/index.php similarity index 100% rename from gpack/travian_t4/img/p/index.php rename to assets/img/admin/r/index.php diff --git a/img/admin/r/newy.gif b/assets/img/admin/r/newy.gif similarity index 100% rename from img/admin/r/newy.gif rename to assets/img/admin/r/newy.gif diff --git a/img/admin/r/xmas.gif b/assets/img/admin/r/xmas.gif similarity index 100% rename from img/admin/r/xmas.gif rename to assets/img/admin/r/xmas.gif diff --git a/img/admin/refresh.png b/assets/img/admin/refresh.png similarity index 100% rename from img/admin/refresh.png rename to assets/img/admin/refresh.png diff --git a/img/admin/senator_roemer.png b/assets/img/admin/senator_roemer.png similarity index 100% rename from img/admin/senator_roemer.png rename to assets/img/admin/senator_roemer.png diff --git a/img/admin/x.gif b/assets/img/admin/x.gif similarity index 100% rename from img/admin/x.gif rename to assets/img/admin/x.gif diff --git a/img/admin/x1 - copia.gif b/assets/img/admin/x1 - copia.gif similarity index 100% rename from img/admin/x1 - copia.gif rename to assets/img/admin/x1 - copia.gif diff --git a/img/admin/x1.gif b/assets/img/admin/x1.gif similarity index 100% rename from img/admin/x1.gif rename to assets/img/admin/x1.gif diff --git a/img/admin/x2 - copia.gif b/assets/img/admin/x2 - copia.gif similarity index 100% rename from img/admin/x2 - copia.gif rename to assets/img/admin/x2 - copia.gif diff --git a/img/admin/x2.gif b/assets/img/admin/x2.gif similarity index 100% rename from img/admin/x2.gif rename to assets/img/admin/x2.gif diff --git a/img/admin/x3 - copia.gif b/assets/img/admin/x3 - copia.gif similarity index 100% rename from img/admin/x3 - copia.gif rename to assets/img/admin/x3 - copia.gif diff --git a/img/admin/x3.gif b/assets/img/admin/x3.gif similarity index 100% rename from img/admin/x3.gif rename to assets/img/admin/x3.gif diff --git a/img/admin/x4 - copia.gif b/assets/img/admin/x4 - copia.gif similarity index 100% rename from img/admin/x4 - copia.gif rename to assets/img/admin/x4 - copia.gif diff --git a/img/admin/x4.gif b/assets/img/admin/x4.gif similarity index 100% rename from img/admin/x4.gif rename to assets/img/admin/x4.gif diff --git a/img/admin/x5 - copia.gif b/assets/img/admin/x5 - copia.gif similarity index 100% rename from img/admin/x5 - copia.gif rename to assets/img/admin/x5 - copia.gif diff --git a/img/admin/x5.gif b/assets/img/admin/x5.gif similarity index 100% rename from img/admin/x5.gif rename to assets/img/admin/x5.gif diff --git a/img/bezahlung/.htaccess b/assets/img/bezahlung/.htaccess similarity index 100% rename from img/bezahlung/.htaccess rename to assets/img/bezahlung/.htaccess diff --git a/img/bezahlung/Travian_paket_a.jpg b/assets/img/bezahlung/Travian_paket_a.jpg similarity index 100% rename from img/bezahlung/Travian_paket_a.jpg rename to assets/img/bezahlung/Travian_paket_a.jpg diff --git a/img/bezahlung/Travian_paket_b.jpg b/assets/img/bezahlung/Travian_paket_b.jpg similarity index 100% rename from img/bezahlung/Travian_paket_b.jpg rename to assets/img/bezahlung/Travian_paket_b.jpg diff --git a/img/bezahlung/Travian_paket_c.jpg b/assets/img/bezahlung/Travian_paket_c.jpg similarity index 100% rename from img/bezahlung/Travian_paket_c.jpg rename to assets/img/bezahlung/Travian_paket_c.jpg diff --git a/img/bezahlung/Travian_paket_d.jpg b/assets/img/bezahlung/Travian_paket_d.jpg similarity index 100% rename from img/bezahlung/Travian_paket_d.jpg rename to assets/img/bezahlung/Travian_paket_d.jpg diff --git a/img/bezahlung/Travian_paket_e.jpg b/assets/img/bezahlung/Travian_paket_e.jpg similarity index 100% rename from img/bezahlung/Travian_paket_e.jpg rename to assets/img/bezahlung/Travian_paket_e.jpg diff --git a/img/bezahlung/Travian_verdienen.jpg b/assets/img/bezahlung/Travian_verdienen.jpg similarity index 100% rename from img/bezahlung/Travian_verdienen.jpg rename to assets/img/bezahlung/Travian_verdienen.jpg diff --git a/img/bezahlung/call2pay.png b/assets/img/bezahlung/call2pay.png similarity index 100% rename from img/bezahlung/call2pay.png rename to assets/img/bezahlung/call2pay.png diff --git a/img/bezahlung/call2pay1.png b/assets/img/bezahlung/call2pay1.png similarity index 100% rename from img/bezahlung/call2pay1.png rename to assets/img/bezahlung/call2pay1.png diff --git a/img/bezahlung/ebank2pay.png b/assets/img/bezahlung/ebank2pay.png similarity index 100% rename from img/bezahlung/ebank2pay.png rename to assets/img/bezahlung/ebank2pay.png diff --git a/img/bezahlung/ebank2pay2.png b/assets/img/bezahlung/ebank2pay2.png similarity index 100% rename from img/bezahlung/ebank2pay2.png rename to assets/img/bezahlung/ebank2pay2.png diff --git a/img/bezahlung/handy2pay.png b/assets/img/bezahlung/handy2pay.png similarity index 100% rename from img/bezahlung/handy2pay.png rename to assets/img/bezahlung/handy2pay.png diff --git a/img/bezahlung/handy2pay2.png b/assets/img/bezahlung/handy2pay2.png similarity index 100% rename from img/bezahlung/handy2pay2.png rename to assets/img/bezahlung/handy2pay2.png diff --git a/gpack/travian_t4/img/q/index.php b/assets/img/bezahlung/index.php similarity index 100% rename from gpack/travian_t4/img/q/index.php rename to assets/img/bezahlung/index.php diff --git a/img/bezahlung/paypal.jpg b/assets/img/bezahlung/paypal.jpg similarity index 100% rename from img/bezahlung/paypal.jpg rename to assets/img/bezahlung/paypal.jpg diff --git a/img/bezahlung/paypal1.gif b/assets/img/bezahlung/paypal1.gif similarity index 100% rename from img/bezahlung/paypal1.gif rename to assets/img/bezahlung/paypal1.gif diff --git a/img/bezahlung/skrill.png b/assets/img/bezahlung/skrill.png similarity index 100% rename from img/bezahlung/skrill.png rename to assets/img/bezahlung/skrill.png diff --git a/img/bezahlung/skrill1.jpg b/assets/img/bezahlung/skrill1.jpg similarity index 100% rename from img/bezahlung/skrill1.jpg rename to assets/img/bezahlung/skrill1.jpg diff --git a/gpack/travian_t4/img/r/index.php b/assets/img/en/a/index.php similarity index 100% rename from gpack/travian_t4/img/r/index.php rename to assets/img/en/a/index.php diff --git a/img/en/a/travian0.gif b/assets/img/en/a/travian0.gif similarity index 100% rename from img/en/a/travian0.gif rename to assets/img/en/a/travian0.gif diff --git a/gpack/travian_t4/img/report/index.php b/assets/img/en/index.php similarity index 100% rename from gpack/travian_t4/img/report/index.php rename to assets/img/en/index.php diff --git a/gpack/travian_t4/img/s/index.php b/assets/img/en/s/index.php similarity index 100% rename from gpack/travian_t4/img/s/index.php rename to assets/img/en/s/index.php diff --git a/img/en/s/s1.png b/assets/img/en/s/s1.png similarity index 100% rename from img/en/s/s1.png rename to assets/img/en/s/s1.png diff --git a/img/en/s/s2.png b/assets/img/en/s/s2.png similarity index 100% rename from img/en/s/s2.png rename to assets/img/en/s/s2.png diff --git a/img/en/s/s3.png b/assets/img/en/s/s3.png similarity index 100% rename from img/en/s/s3.png rename to assets/img/en/s/s3.png diff --git a/img/en/s/s4.png b/assets/img/en/s/s4.png similarity index 100% rename from img/en/s/s4.png rename to assets/img/en/s/s4.png diff --git a/img/en/s/s5.png b/assets/img/en/s/s5.png similarity index 100% rename from img/en/s/s5.png rename to assets/img/en/s/s5.png diff --git a/img/en/s/s7.png b/assets/img/en/s/s7.png similarity index 100% rename from img/en/s/s7.png rename to assets/img/en/s/s7.png diff --git a/img/en/s/s8.png b/assets/img/en/s/s8.png similarity index 100% rename from img/en/s/s8.png rename to assets/img/en/s/s8.png diff --git a/gpack/travian_t4/img/scouts/index.php b/assets/img/en/t2/index.php similarity index 100% rename from gpack/travian_t4/img/scouts/index.php rename to assets/img/en/t2/index.php diff --git a/img/en/t2/newsbox1.gif b/assets/img/en/t2/newsbox1.gif similarity index 100% rename from img/en/t2/newsbox1.gif rename to assets/img/en/t2/newsbox1.gif diff --git a/img/en/t2/newsbox2.gif b/assets/img/en/t2/newsbox2.gif similarity index 100% rename from img/en/t2/newsbox2.gif rename to assets/img/en/t2/newsbox2.gif diff --git a/img/en/t2/newsbox3.gif b/assets/img/en/t2/newsbox3.gif similarity index 100% rename from img/en/t2/newsbox3.gif rename to assets/img/en/t2/newsbox3.gif diff --git a/img/en/tut/dorf_gross.jpg b/assets/img/en/tut/dorf_gross.jpg similarity index 100% rename from img/en/tut/dorf_gross.jpg rename to assets/img/en/tut/dorf_gross.jpg diff --git a/img/en/tut/dorf_klein.jpg b/assets/img/en/tut/dorf_klein.jpg similarity index 100% rename from img/en/tut/dorf_klein.jpg rename to assets/img/en/tut/dorf_klein.jpg diff --git a/img/en/tut/dorfzentrum1.gif b/assets/img/en/tut/dorfzentrum1.gif similarity index 100% rename from img/en/tut/dorfzentrum1.gif rename to assets/img/en/tut/dorfzentrum1.gif diff --git a/img/en/tut/dorfzentrum2.gif b/assets/img/en/tut/dorfzentrum2.gif similarity index 100% rename from img/en/tut/dorfzentrum2.gif rename to assets/img/en/tut/dorfzentrum2.gif diff --git a/gpack/travian_t4/img/special/index.php b/assets/img/en/tut/index.php similarity index 100% rename from gpack/travian_t4/img/special/index.php rename to assets/img/en/tut/index.php diff --git a/img/en/tut/karte.jpg b/assets/img/en/tut/karte.jpg similarity index 100% rename from img/en/tut/karte.jpg rename to assets/img/en/tut/karte.jpg diff --git a/img/en/tut/navi.jpg b/assets/img/en/tut/navi.jpg similarity index 100% rename from img/en/tut/navi.jpg rename to assets/img/en/tut/navi.jpg diff --git a/img/en/tut/rohstofffeld.gif b/assets/img/en/tut/rohstofffeld.gif similarity index 100% rename from img/en/tut/rohstofffeld.gif rename to assets/img/en/tut/rohstofffeld.gif diff --git a/img/en/tut/rohstofffeld2.gif b/assets/img/en/tut/rohstofffeld2.gif similarity index 100% rename from img/en/tut/rohstofffeld2.gif rename to assets/img/en/tut/rohstofffeld2.gif diff --git a/img/en/welten/en10_big.jpg b/assets/img/en/welten/en10_big.jpg similarity index 100% rename from img/en/welten/en10_big.jpg rename to assets/img/en/welten/en10_big.jpg diff --git a/img/en/welten/en10_big_g.jpg b/assets/img/en/welten/en10_big_g.jpg similarity index 100% rename from img/en/welten/en10_big_g.jpg rename to assets/img/en/welten/en10_big_g.jpg diff --git a/img/en/welten/en11_big.jpg b/assets/img/en/welten/en11_big.jpg similarity index 100% rename from img/en/welten/en11_big.jpg rename to assets/img/en/welten/en11_big.jpg diff --git a/img/en/welten/en11_big_g.jpg b/assets/img/en/welten/en11_big_g.jpg similarity index 100% rename from img/en/welten/en11_big_g.jpg rename to assets/img/en/welten/en11_big_g.jpg diff --git a/img/en/welten/en12_big.jpg b/assets/img/en/welten/en12_big.jpg similarity index 100% rename from img/en/welten/en12_big.jpg rename to assets/img/en/welten/en12_big.jpg diff --git a/img/en/welten/en12_big_g.jpg b/assets/img/en/welten/en12_big_g.jpg similarity index 100% rename from img/en/welten/en12_big_g.jpg rename to assets/img/en/welten/en12_big_g.jpg diff --git a/img/en/welten/en13_big.jpg b/assets/img/en/welten/en13_big.jpg similarity index 100% rename from img/en/welten/en13_big.jpg rename to assets/img/en/welten/en13_big.jpg diff --git a/img/en/welten/en13_big_g.jpg b/assets/img/en/welten/en13_big_g.jpg similarity index 100% rename from img/en/welten/en13_big_g.jpg rename to assets/img/en/welten/en13_big_g.jpg diff --git a/img/en/welten/en14_big.jpg b/assets/img/en/welten/en14_big.jpg similarity index 100% rename from img/en/welten/en14_big.jpg rename to assets/img/en/welten/en14_big.jpg diff --git a/img/en/welten/en14_big_g.jpg b/assets/img/en/welten/en14_big_g.jpg similarity index 100% rename from img/en/welten/en14_big_g.jpg rename to assets/img/en/welten/en14_big_g.jpg diff --git a/img/en/welten/en15_big.jpg b/assets/img/en/welten/en15_big.jpg similarity index 100% rename from img/en/welten/en15_big.jpg rename to assets/img/en/welten/en15_big.jpg diff --git a/img/en/welten/en15_big_g.jpg b/assets/img/en/welten/en15_big_g.jpg similarity index 100% rename from img/en/welten/en15_big_g.jpg rename to assets/img/en/welten/en15_big_g.jpg diff --git a/img/en/welten/en1_big.jpg b/assets/img/en/welten/en1_big.jpg similarity index 100% rename from img/en/welten/en1_big.jpg rename to assets/img/en/welten/en1_big.jpg diff --git a/img/en/welten/en1_big_g.jpg b/assets/img/en/welten/en1_big_g.jpg similarity index 100% rename from img/en/welten/en1_big_g.jpg rename to assets/img/en/welten/en1_big_g.jpg diff --git a/img/en/welten/en2_big.jpg b/assets/img/en/welten/en2_big.jpg similarity index 100% rename from img/en/welten/en2_big.jpg rename to assets/img/en/welten/en2_big.jpg diff --git a/img/en/welten/en2_big_g.jpg b/assets/img/en/welten/en2_big_g.jpg similarity index 100% rename from img/en/welten/en2_big_g.jpg rename to assets/img/en/welten/en2_big_g.jpg diff --git a/img/en/welten/en3_big.jpg b/assets/img/en/welten/en3_big.jpg similarity index 100% rename from img/en/welten/en3_big.jpg rename to assets/img/en/welten/en3_big.jpg diff --git a/img/en/welten/en3_big_g.jpg b/assets/img/en/welten/en3_big_g.jpg similarity index 100% rename from img/en/welten/en3_big_g.jpg rename to assets/img/en/welten/en3_big_g.jpg diff --git a/img/en/welten/en4_big.jpg b/assets/img/en/welten/en4_big.jpg similarity index 100% rename from img/en/welten/en4_big.jpg rename to assets/img/en/welten/en4_big.jpg diff --git a/img/en/welten/en4_big_g.jpg b/assets/img/en/welten/en4_big_g.jpg similarity index 100% rename from img/en/welten/en4_big_g.jpg rename to assets/img/en/welten/en4_big_g.jpg diff --git a/img/en/welten/en5_big.jpg b/assets/img/en/welten/en5_big.jpg similarity index 100% rename from img/en/welten/en5_big.jpg rename to assets/img/en/welten/en5_big.jpg diff --git a/img/en/welten/en5_big_g.jpg b/assets/img/en/welten/en5_big_g.jpg similarity index 100% rename from img/en/welten/en5_big_g.jpg rename to assets/img/en/welten/en5_big_g.jpg diff --git a/img/en/welten/en6_big.jpg b/assets/img/en/welten/en6_big.jpg similarity index 100% rename from img/en/welten/en6_big.jpg rename to assets/img/en/welten/en6_big.jpg diff --git a/img/en/welten/en6_big_g.jpg b/assets/img/en/welten/en6_big_g.jpg similarity index 100% rename from img/en/welten/en6_big_g.jpg rename to assets/img/en/welten/en6_big_g.jpg diff --git a/img/en/welten/en7_big.jpg b/assets/img/en/welten/en7_big.jpg similarity index 100% rename from img/en/welten/en7_big.jpg rename to assets/img/en/welten/en7_big.jpg diff --git a/img/en/welten/en7_big_g.jpg b/assets/img/en/welten/en7_big_g.jpg similarity index 100% rename from img/en/welten/en7_big_g.jpg rename to assets/img/en/welten/en7_big_g.jpg diff --git a/img/en/welten/en8_big.jpg b/assets/img/en/welten/en8_big.jpg similarity index 100% rename from img/en/welten/en8_big.jpg rename to assets/img/en/welten/en8_big.jpg diff --git a/img/en/welten/en8_big_g.jpg b/assets/img/en/welten/en8_big_g.jpg similarity index 100% rename from img/en/welten/en8_big_g.jpg rename to assets/img/en/welten/en8_big_g.jpg diff --git a/img/en/welten/en9_big.jpg b/assets/img/en/welten/en9_big.jpg similarity index 100% rename from img/en/welten/en9_big.jpg rename to assets/img/en/welten/en9_big.jpg diff --git a/img/en/welten/en9_big_g.jpg b/assets/img/en/welten/en9_big_g.jpg similarity index 100% rename from img/en/welten/en9_big_g.jpg rename to assets/img/en/welten/en9_big_g.jpg diff --git a/img/en/welten/enx_big.jpg b/assets/img/en/welten/enx_big.jpg similarity index 100% rename from img/en/welten/enx_big.jpg rename to assets/img/en/welten/enx_big.jpg diff --git a/img/en/welten/enx_big_g.jpg b/assets/img/en/welten/enx_big_g.jpg similarity index 100% rename from img/en/welten/enx_big_g.jpg rename to assets/img/en/welten/enx_big_g.jpg diff --git a/gpack/travian_t4/img/t/index.php b/assets/img/en/welten/index.php similarity index 100% rename from gpack/travian_t4/img/t/index.php rename to assets/img/en/welten/index.php diff --git a/img/img.css b/assets/img/img.css similarity index 100% rename from img/img.css rename to assets/img/img.css diff --git a/gpack/travian_t4/img/u/index.php b/assets/img/index.php similarity index 100% rename from gpack/travian_t4/img/u/index.php rename to assets/img/index.php diff --git a/img/lol.PNG b/assets/img/lol.PNG similarity index 100% rename from img/lol.PNG rename to assets/img/lol.PNG diff --git a/img/portal_ltr.css b/assets/img/portal_ltr.css similarity index 100% rename from img/portal_ltr.css rename to assets/img/portal_ltr.css diff --git a/img/rpage/.htaccess b/assets/img/rpage/.htaccess similarity index 100% rename from img/rpage/.htaccess rename to assets/img/rpage/.htaccess diff --git a/img/rpage/Gaul.jpg b/assets/img/rpage/Gaul.jpg similarity index 100% rename from img/rpage/Gaul.jpg rename to assets/img/rpage/Gaul.jpg diff --git a/img/rpage/Gaul1.jpg b/assets/img/rpage/Gaul1.jpg similarity index 100% rename from img/rpage/Gaul1.jpg rename to assets/img/rpage/Gaul1.jpg diff --git a/img/rpage/Natars.jpg b/assets/img/rpage/Natars.jpg similarity index 100% rename from img/rpage/Natars.jpg rename to assets/img/rpage/Natars.jpg diff --git a/img/rpage/Nature.jpg b/assets/img/rpage/Nature.jpg similarity index 100% rename from img/rpage/Nature.jpg rename to assets/img/rpage/Nature.jpg diff --git a/img/rpage/Roman.jpg b/assets/img/rpage/Roman.jpg similarity index 100% rename from img/rpage/Roman.jpg rename to assets/img/rpage/Roman.jpg diff --git a/img/rpage/Roman1.jpg b/assets/img/rpage/Roman1.jpg similarity index 100% rename from img/rpage/Roman1.jpg rename to assets/img/rpage/Roman1.jpg diff --git a/img/rpage/Teuton.jpg b/assets/img/rpage/Teuton.jpg similarity index 100% rename from img/rpage/Teuton.jpg rename to assets/img/rpage/Teuton.jpg diff --git a/img/rpage/Teuton1.jpg b/assets/img/rpage/Teuton1.jpg similarity index 100% rename from img/rpage/Teuton1.jpg rename to assets/img/rpage/Teuton1.jpg diff --git a/img/rpage/spc.jpg b/assets/img/rpage/spc.jpg similarity index 100% rename from img/rpage/spc.jpg rename to assets/img/rpage/spc.jpg diff --git a/img/rpage/travian_logo.png b/assets/img/rpage/travian_logo.png similarity index 100% rename from img/rpage/travian_logo.png rename to assets/img/rpage/travian_logo.png diff --git a/img/t4n/Teaser_Prelandingpage_EN.png b/assets/img/t4n/Teaser_Prelandingpage_EN.png similarity index 100% rename from img/t4n/Teaser_Prelandingpage_EN.png rename to assets/img/t4n/Teaser_Prelandingpage_EN.png diff --git a/gpack/travian_t4/img/u2/index.php b/assets/img/t4n/index.php similarity index 100% rename from gpack/travian_t4/img/u2/index.php rename to assets/img/t4n/index.php diff --git a/img/travian_basics.css b/assets/img/travian_basics.css similarity index 100% rename from img/travian_basics.css rename to assets/img/travian_basics.css diff --git a/img/tutorial/elements/country_sprite.gif b/assets/img/tutorial/elements/country_sprite.gif similarity index 100% rename from img/tutorial/elements/country_sprite.gif rename to assets/img/tutorial/elements/country_sprite.gif diff --git a/gpack/travian_t4/img/u2rtl/index.php b/assets/img/tutorial/elements/index.php similarity index 100% rename from gpack/travian_t4/img/u2rtl/index.php rename to assets/img/tutorial/elements/index.php diff --git a/img/tutorial/flaggs.css b/assets/img/tutorial/flaggs.css similarity index 100% rename from img/tutorial/flaggs.css rename to assets/img/tutorial/flaggs.css diff --git a/img/tutorial/images/artwork.jpg b/assets/img/tutorial/images/artwork.jpg similarity index 100% rename from img/tutorial/images/artwork.jpg rename to assets/img/tutorial/images/artwork.jpg diff --git a/img/tutorial/images/artwork1-ltr.jpg b/assets/img/tutorial/images/artwork1-ltr.jpg similarity index 100% rename from img/tutorial/images/artwork1-ltr.jpg rename to assets/img/tutorial/images/artwork1-ltr.jpg diff --git a/img/tutorial/images/buttons_screenshots_next.gif b/assets/img/tutorial/images/buttons_screenshots_next.gif similarity index 100% rename from img/tutorial/images/buttons_screenshots_next.gif rename to assets/img/tutorial/images/buttons_screenshots_next.gif diff --git a/img/tutorial/images/buttons_screenshots_prev.gif b/assets/img/tutorial/images/buttons_screenshots_prev.gif similarity index 100% rename from img/tutorial/images/buttons_screenshots_prev.gif rename to assets/img/tutorial/images/buttons_screenshots_prev.gif diff --git a/img/tutorial/images/content_background.jpg b/assets/img/tutorial/images/content_background.jpg similarity index 100% rename from img/tutorial/images/content_background.jpg rename to assets/img/tutorial/images/content_background.jpg diff --git a/img/tutorial/images/count_background.jpg b/assets/img/tutorial/images/count_background.jpg similarity index 100% rename from img/tutorial/images/count_background.jpg rename to assets/img/tutorial/images/count_background.jpg diff --git a/img/tutorial/images/country_background.jpg b/assets/img/tutorial/images/country_background.jpg similarity index 100% rename from img/tutorial/images/country_background.jpg rename to assets/img/tutorial/images/country_background.jpg diff --git a/img/tutorial/images/footer_background.jpg b/assets/img/tutorial/images/footer_background.jpg similarity index 100% rename from img/tutorial/images/footer_background.jpg rename to assets/img/tutorial/images/footer_background.jpg diff --git a/gpack/travian_t4/img/wm/index.php b/assets/img/tutorial/images/index.php similarity index 100% rename from gpack/travian_t4/img/wm/index.php rename to assets/img/tutorial/images/index.php diff --git a/img/tutorial/images/info_background.jpg b/assets/img/tutorial/images/info_background.jpg similarity index 100% rename from img/tutorial/images/info_background.jpg rename to assets/img/tutorial/images/info_background.jpg diff --git a/img/tutorial/images/logo_background.jpg b/assets/img/tutorial/images/logo_background.jpg similarity index 100% rename from img/tutorial/images/logo_background.jpg rename to assets/img/tutorial/images/logo_background.jpg diff --git a/img/tutorial/images/main_background_content.jpg b/assets/img/tutorial/images/main_background_content.jpg similarity index 100% rename from img/tutorial/images/main_background_content.jpg rename to assets/img/tutorial/images/main_background_content.jpg diff --git a/img/tutorial/images/main_background_front.jpg b/assets/img/tutorial/images/main_background_front.jpg similarity index 100% rename from img/tutorial/images/main_background_front.jpg rename to assets/img/tutorial/images/main_background_front.jpg diff --git a/img/tutorial/images/nav_left.gif b/assets/img/tutorial/images/nav_left.gif similarity index 100% rename from img/tutorial/images/nav_left.gif rename to assets/img/tutorial/images/nav_left.gif diff --git a/img/tutorial/images/nav_right.gif b/assets/img/tutorial/images/nav_right.gif similarity index 100% rename from img/tutorial/images/nav_right.gif rename to assets/img/tutorial/images/nav_right.gif diff --git a/img/tutorial/images/news_background.jpg b/assets/img/tutorial/images/news_background.jpg similarity index 100% rename from img/tutorial/images/news_background.jpg rename to assets/img/tutorial/images/news_background.jpg diff --git a/img/tutorial/images/news_footer.jpg b/assets/img/tutorial/images/news_footer.jpg similarity index 100% rename from img/tutorial/images/news_footer.jpg rename to assets/img/tutorial/images/news_footer.jpg diff --git a/img/tutorial/images/news_header.jpg b/assets/img/tutorial/images/news_header.jpg similarity index 100% rename from img/tutorial/images/news_header.jpg rename to assets/img/tutorial/images/news_header.jpg diff --git a/img/tutorial/images/news_spacer.jpg b/assets/img/tutorial/images/news_spacer.jpg similarity index 100% rename from img/tutorial/images/news_spacer.jpg rename to assets/img/tutorial/images/news_spacer.jpg diff --git a/img/tutorial/images/screenshots_background.jpg b/assets/img/tutorial/images/screenshots_background.jpg similarity index 100% rename from img/tutorial/images/screenshots_background.jpg rename to assets/img/tutorial/images/screenshots_background.jpg diff --git a/gpack/travian_t4/index.php b/assets/img/tutorial/index.php similarity index 100% rename from gpack/travian_t4/index.php rename to assets/img/tutorial/index.php diff --git a/img/tutorial/main.css b/assets/img/tutorial/main.css similarity index 100% rename from img/tutorial/main.css rename to assets/img/tutorial/main.css diff --git a/img/un/a/98.gif b/assets/img/un/a/98.gif similarity index 100% rename from img/un/a/98.gif rename to assets/img/un/a/98.gif diff --git a/img/un/a/99.gif b/assets/img/un/a/99.gif similarity index 100% rename from img/un/a/99.gif rename to assets/img/un/a/99.gif diff --git a/img/un/a/anl.gif b/assets/img/un/a/anl.gif similarity index 100% rename from img/un/a/anl.gif rename to assets/img/un/a/anl.gif diff --git a/img/un/a/btm.gif b/assets/img/un/a/btm.gif similarity index 100% rename from img/un/a/btm.gif rename to assets/img/un/a/btm.gif diff --git a/img/un/a/c2.gif b/assets/img/un/a/c2.gif similarity index 100% rename from img/un/a/c2.gif rename to assets/img/un/a/c2.gif diff --git a/img/un/a/car.gif b/assets/img/un/a/car.gif similarity index 100% rename from img/un/a/car.gif rename to assets/img/un/a/car.gif diff --git a/gpack/travian_t4/lang/en/a/index.php b/assets/img/un/a/index.php similarity index 100% rename from gpack/travian_t4/lang/en/a/index.php rename to assets/img/un/a/index.php diff --git a/img/un/a/n12.gif b/assets/img/un/a/n12.gif similarity index 100% rename from img/un/a/n12.gif rename to assets/img/un/a/n12.gif diff --git a/img/un/a/online.gif b/assets/img/un/a/online.gif similarity index 100% rename from img/un/a/online.gif rename to assets/img/un/a/online.gif diff --git a/img/un/a/rand.gif b/assets/img/un/a/rand.gif similarity index 100% rename from img/un/a/rand.gif rename to assets/img/un/a/rand.gif diff --git a/img/un/a/res2.gif b/assets/img/un/a/res2.gif similarity index 100% rename from img/un/a/res2.gif rename to assets/img/un/a/res2.gif diff --git a/img/un/a/specials.gif b/assets/img/un/a/specials.gif similarity index 100% rename from img/un/a/specials.gif rename to assets/img/un/a/specials.gif diff --git a/img/un/a/v1_romans2.gif b/assets/img/un/a/v1_romans2.gif similarity index 100% rename from img/un/a/v1_romans2.gif rename to assets/img/un/a/v1_romans2.gif diff --git a/img/un/a/v2_teutons2.gif b/assets/img/un/a/v2_teutons2.gif similarity index 100% rename from img/un/a/v2_teutons2.gif rename to assets/img/un/a/v2_teutons2.gif diff --git a/img/un/a/v3_gauls2.gif b/assets/img/un/a/v3_gauls2.gif similarity index 100% rename from img/un/a/v3_gauls2.gif rename to assets/img/un/a/v3_gauls2.gif diff --git a/img/un/a/v4_nature2.gif b/assets/img/un/a/v4_nature2.gif similarity index 100% rename from img/un/a/v4_nature2.gif rename to assets/img/un/a/v4_nature2.gif diff --git a/img/un/a/v5_natars2.gif b/assets/img/un/a/v5_natars2.gif similarity index 100% rename from img/un/a/v5_natars2.gif rename to assets/img/un/a/v5_natars2.gif diff --git a/img/un/a/v6_monsters2.gif b/assets/img/un/a/v6_monsters2.gif similarity index 100% rename from img/un/a/v6_monsters2.gif rename to assets/img/un/a/v6_monsters2.gif diff --git a/img/un/g/bg0.jpg b/assets/img/un/g/bg0.jpg similarity index 100% rename from img/un/g/bg0.jpg rename to assets/img/un/g/bg0.jpg diff --git a/img/un/g/bg1.jpg b/assets/img/un/g/bg1.jpg similarity index 100% rename from img/un/g/bg1.jpg rename to assets/img/un/g/bg1.jpg diff --git a/img/un/g/bg11.jpg b/assets/img/un/g/bg11.jpg similarity index 100% rename from img/un/g/bg11.jpg rename to assets/img/un/g/bg11.jpg diff --git a/img/un/g/bg12.jpg b/assets/img/un/g/bg12.jpg similarity index 100% rename from img/un/g/bg12.jpg rename to assets/img/un/g/bg12.jpg diff --git a/img/un/g/f1.jpg b/assets/img/un/g/f1.jpg similarity index 100% rename from img/un/g/f1.jpg rename to assets/img/un/g/f1.jpg diff --git a/img/un/g/f10.jpg b/assets/img/un/g/f10.jpg similarity index 100% rename from img/un/g/f10.jpg rename to assets/img/un/g/f10.jpg diff --git a/img/un/g/f2.jpg b/assets/img/un/g/f2.jpg similarity index 100% rename from img/un/g/f2.jpg rename to assets/img/un/g/f2.jpg diff --git a/img/un/g/f3.jpg b/assets/img/un/g/f3.jpg similarity index 100% rename from img/un/g/f3.jpg rename to assets/img/un/g/f3.jpg diff --git a/img/un/g/f4.jpg b/assets/img/un/g/f4.jpg similarity index 100% rename from img/un/g/f4.jpg rename to assets/img/un/g/f4.jpg diff --git a/img/un/g/f5.jpg b/assets/img/un/g/f5.jpg similarity index 100% rename from img/un/g/f5.jpg rename to assets/img/un/g/f5.jpg diff --git a/img/un/g/f6.jpg b/assets/img/un/g/f6.jpg similarity index 100% rename from img/un/g/f6.jpg rename to assets/img/un/g/f6.jpg diff --git a/img/un/g/f7.jpg b/assets/img/un/g/f7.jpg similarity index 100% rename from img/un/g/f7.jpg rename to assets/img/un/g/f7.jpg diff --git a/img/un/g/f8.jpg b/assets/img/un/g/f8.jpg similarity index 100% rename from img/un/g/f8.jpg rename to assets/img/un/g/f8.jpg diff --git a/img/un/g/f9.jpg b/assets/img/un/g/f9.jpg similarity index 100% rename from img/un/g/f9.jpg rename to assets/img/un/g/f9.jpg diff --git a/gpack/travian_t4/lang/en/b/index.php b/assets/img/un/g/index.php similarity index 100% rename from gpack/travian_t4/lang/en/b/index.php rename to assets/img/un/g/index.php diff --git a/img/un/h/att_all.gif b/assets/img/un/h/att_all.gif similarity index 100% rename from img/un/h/att_all.gif rename to assets/img/un/h/att_all.gif diff --git a/img/un/h/clock.gif b/assets/img/un/h/clock.gif similarity index 100% rename from img/un/h/clock.gif rename to assets/img/un/h/clock.gif diff --git a/img/un/h/def_c.gif b/assets/img/un/h/def_c.gif similarity index 100% rename from img/un/h/def_c.gif rename to assets/img/un/h/def_c.gif diff --git a/img/un/h/def_i.gif b/assets/img/un/h/def_i.gif similarity index 100% rename from img/un/h/def_i.gif rename to assets/img/un/h/def_i.gif diff --git a/img/un/h/faq_botschaft.jpg b/assets/img/un/h/faq_botschaft.jpg similarity index 100% rename from img/un/h/faq_botschaft.jpg rename to assets/img/un/h/faq_botschaft.jpg diff --git a/img/un/h/faq_vp.jpg b/assets/img/un/h/faq_vp.jpg similarity index 100% rename from img/un/h/faq_vp.jpg rename to assets/img/un/h/faq_vp.jpg diff --git a/img/un/h/gallier.jpg b/assets/img/un/h/gallier.jpg similarity index 100% rename from img/un/h/gallier.jpg rename to assets/img/un/h/gallier.jpg diff --git a/img/un/h/germane.jpg b/assets/img/un/h/germane.jpg similarity index 100% rename from img/un/h/germane.jpg rename to assets/img/un/h/germane.jpg diff --git a/img/un/h/gid10.gif b/assets/img/un/h/gid10.gif similarity index 100% rename from img/un/h/gid10.gif rename to assets/img/un/h/gid10.gif diff --git a/img/un/h/gid11.gif b/assets/img/un/h/gid11.gif similarity index 100% rename from img/un/h/gid11.gif rename to assets/img/un/h/gid11.gif diff --git a/img/un/h/gid12.gif b/assets/img/un/h/gid12.gif similarity index 100% rename from img/un/h/gid12.gif rename to assets/img/un/h/gid12.gif diff --git a/img/un/h/gid13.gif b/assets/img/un/h/gid13.gif similarity index 100% rename from img/un/h/gid13.gif rename to assets/img/un/h/gid13.gif diff --git a/img/un/h/gid14.gif b/assets/img/un/h/gid14.gif similarity index 100% rename from img/un/h/gid14.gif rename to assets/img/un/h/gid14.gif diff --git a/img/un/h/gid15.gif b/assets/img/un/h/gid15.gif similarity index 100% rename from img/un/h/gid15.gif rename to assets/img/un/h/gid15.gif diff --git a/img/un/h/gid16.gif b/assets/img/un/h/gid16.gif similarity index 100% rename from img/un/h/gid16.gif rename to assets/img/un/h/gid16.gif diff --git a/img/un/h/gid17.gif b/assets/img/un/h/gid17.gif similarity index 100% rename from img/un/h/gid17.gif rename to assets/img/un/h/gid17.gif diff --git a/img/un/h/gid18.gif b/assets/img/un/h/gid18.gif similarity index 100% rename from img/un/h/gid18.gif rename to assets/img/un/h/gid18.gif diff --git a/img/un/h/gid19.gif b/assets/img/un/h/gid19.gif similarity index 100% rename from img/un/h/gid19.gif rename to assets/img/un/h/gid19.gif diff --git a/img/un/h/gid20.gif b/assets/img/un/h/gid20.gif similarity index 100% rename from img/un/h/gid20.gif rename to assets/img/un/h/gid20.gif diff --git a/img/un/h/gid21.gif b/assets/img/un/h/gid21.gif similarity index 100% rename from img/un/h/gid21.gif rename to assets/img/un/h/gid21.gif diff --git a/img/un/h/gid22.gif b/assets/img/un/h/gid22.gif similarity index 100% rename from img/un/h/gid22.gif rename to assets/img/un/h/gid22.gif diff --git a/img/un/h/gid23.gif b/assets/img/un/h/gid23.gif similarity index 100% rename from img/un/h/gid23.gif rename to assets/img/un/h/gid23.gif diff --git a/img/un/h/gid25.gif b/assets/img/un/h/gid25.gif similarity index 100% rename from img/un/h/gid25.gif rename to assets/img/un/h/gid25.gif diff --git a/img/un/h/gid26.gif b/assets/img/un/h/gid26.gif similarity index 100% rename from img/un/h/gid26.gif rename to assets/img/un/h/gid26.gif diff --git a/img/un/h/gid28.gif b/assets/img/un/h/gid28.gif similarity index 100% rename from img/un/h/gid28.gif rename to assets/img/un/h/gid28.gif diff --git a/gpack/travian_t4/lang/en/f/index.php b/assets/img/un/h/index.php similarity index 100% rename from gpack/travian_t4/lang/en/f/index.php rename to assets/img/un/h/index.php diff --git a/img/un/h/roemer.jpg b/assets/img/un/h/roemer.jpg similarity index 100% rename from img/un/h/roemer.jpg rename to assets/img/un/h/roemer.jpg diff --git a/gpack/travian_t4/lang/en/index.php b/assets/img/un/index.php similarity index 100% rename from gpack/travian_t4/lang/en/index.php rename to assets/img/un/index.php diff --git a/gpack/travian_t4/lang/en/msg/index.php b/assets/img/un/l/index.php similarity index 100% rename from gpack/travian_t4/lang/en/msg/index.php rename to assets/img/un/l/index.php diff --git a/img/un/l/mp.gif b/assets/img/un/l/mp.gif similarity index 100% rename from img/un/l/mp.gif rename to assets/img/un/l/mp.gif diff --git a/img/un/l/mw.gif b/assets/img/un/l/mw.gif similarity index 100% rename from img/un/l/mw.gif rename to assets/img/un/l/mw.gif diff --git a/img/un/l/n1.gif b/assets/img/un/l/n1.gif similarity index 100% rename from img/un/l/n1.gif rename to assets/img/un/l/n1.gif diff --git a/img/un/l/n2.gif b/assets/img/un/l/n2.gif similarity index 100% rename from img/un/l/n2.gif rename to assets/img/un/l/n2.gif diff --git a/img/un/l/n3.gif b/assets/img/un/l/n3.gif similarity index 100% rename from img/un/l/n3.gif rename to assets/img/un/l/n3.gif diff --git a/img/un/l/n4.gif b/assets/img/un/l/n4.gif similarity index 100% rename from img/un/l/n4.gif rename to assets/img/un/l/n4.gif diff --git a/img/un/res/1.gif b/assets/img/un/res/1.gif similarity index 100% rename from img/un/res/1.gif rename to assets/img/un/res/1.gif diff --git a/img/un/res/2.gif b/assets/img/un/res/2.gif similarity index 100% rename from img/un/res/2.gif rename to assets/img/un/res/2.gif diff --git a/img/un/res/3.gif b/assets/img/un/res/3.gif similarity index 100% rename from img/un/res/3.gif rename to assets/img/un/res/3.gif diff --git a/img/un/res/4.gif b/assets/img/un/res/4.gif similarity index 100% rename from img/un/res/4.gif rename to assets/img/un/res/4.gif diff --git a/img/un/res/5.gif b/assets/img/un/res/5.gif similarity index 100% rename from img/un/res/5.gif rename to assets/img/un/res/5.gif diff --git a/gpack/travian_t4/lang/en/new/index.php b/assets/img/un/res/index.php similarity index 100% rename from gpack/travian_t4/lang/en/new/index.php rename to assets/img/un/res/index.php diff --git a/gpack/travian_t4/lang/en/p/index.php b/assets/img/un/s/index.php similarity index 100% rename from gpack/travian_t4/lang/en/p/index.php rename to assets/img/un/s/index.php diff --git a/img/un/s/s1s.jpg b/assets/img/un/s/s1s.jpg similarity index 100% rename from img/un/s/s1s.jpg rename to assets/img/un/s/s1s.jpg diff --git a/img/un/s/s2s.jpg b/assets/img/un/s/s2s.jpg similarity index 100% rename from img/un/s/s2s.jpg rename to assets/img/un/s/s2s.jpg diff --git a/img/un/s/s3s.jpg b/assets/img/un/s/s3s.jpg similarity index 100% rename from img/un/s/s3s.jpg rename to assets/img/un/s/s3s.jpg diff --git a/img/un/s/s4s.jpg b/assets/img/un/s/s4s.jpg similarity index 100% rename from img/un/s/s4s.jpg rename to assets/img/un/s/s4s.jpg diff --git a/img/un/s/s5s.jpg b/assets/img/un/s/s5s.jpg similarity index 100% rename from img/un/s/s5s.jpg rename to assets/img/un/s/s5s.jpg diff --git a/img/un/s/s7s.jpg b/assets/img/un/s/s7s.jpg similarity index 100% rename from img/un/s/s7s.jpg rename to assets/img/un/s/s7s.jpg diff --git a/img/un/s/s8s.jpg b/assets/img/un/s/s8s.jpg similarity index 100% rename from img/un/s/s8s.jpg rename to assets/img/un/s/s8s.jpg diff --git a/img/un/u/1.gif b/assets/img/un/u/1.gif similarity index 100% rename from img/un/u/1.gif rename to assets/img/un/u/1.gif diff --git a/img/un/u/10.gif b/assets/img/un/u/10.gif similarity index 100% rename from img/un/u/10.gif rename to assets/img/un/u/10.gif diff --git a/img/un/u/11.gif b/assets/img/un/u/11.gif similarity index 100% rename from img/un/u/11.gif rename to assets/img/un/u/11.gif diff --git a/img/un/u/12.gif b/assets/img/un/u/12.gif similarity index 100% rename from img/un/u/12.gif rename to assets/img/un/u/12.gif diff --git a/img/un/u/13.gif b/assets/img/un/u/13.gif similarity index 100% rename from img/un/u/13.gif rename to assets/img/un/u/13.gif diff --git a/img/un/u/14.gif b/assets/img/un/u/14.gif similarity index 100% rename from img/un/u/14.gif rename to assets/img/un/u/14.gif diff --git a/img/un/u/15.gif b/assets/img/un/u/15.gif similarity index 100% rename from img/un/u/15.gif rename to assets/img/un/u/15.gif diff --git a/img/un/u/16.gif b/assets/img/un/u/16.gif similarity index 100% rename from img/un/u/16.gif rename to assets/img/un/u/16.gif diff --git a/img/un/u/17.gif b/assets/img/un/u/17.gif similarity index 100% rename from img/un/u/17.gif rename to assets/img/un/u/17.gif diff --git a/img/un/u/18.gif b/assets/img/un/u/18.gif similarity index 100% rename from img/un/u/18.gif rename to assets/img/un/u/18.gif diff --git a/img/un/u/19.gif b/assets/img/un/u/19.gif similarity index 100% rename from img/un/u/19.gif rename to assets/img/un/u/19.gif diff --git a/img/un/u/2.gif b/assets/img/un/u/2.gif similarity index 100% rename from img/un/u/2.gif rename to assets/img/un/u/2.gif diff --git a/img/un/u/20.gif b/assets/img/un/u/20.gif similarity index 100% rename from img/un/u/20.gif rename to assets/img/un/u/20.gif diff --git a/img/un/u/21.gif b/assets/img/un/u/21.gif similarity index 100% rename from img/un/u/21.gif rename to assets/img/un/u/21.gif diff --git a/img/un/u/22.gif b/assets/img/un/u/22.gif similarity index 100% rename from img/un/u/22.gif rename to assets/img/un/u/22.gif diff --git a/img/un/u/23.gif b/assets/img/un/u/23.gif similarity index 100% rename from img/un/u/23.gif rename to assets/img/un/u/23.gif diff --git a/img/un/u/24.gif b/assets/img/un/u/24.gif similarity index 100% rename from img/un/u/24.gif rename to assets/img/un/u/24.gif diff --git a/img/un/u/25.gif b/assets/img/un/u/25.gif similarity index 100% rename from img/un/u/25.gif rename to assets/img/un/u/25.gif diff --git a/img/un/u/26.gif b/assets/img/un/u/26.gif similarity index 100% rename from img/un/u/26.gif rename to assets/img/un/u/26.gif diff --git a/img/un/u/27.gif b/assets/img/un/u/27.gif similarity index 100% rename from img/un/u/27.gif rename to assets/img/un/u/27.gif diff --git a/img/un/u/28.gif b/assets/img/un/u/28.gif similarity index 100% rename from img/un/u/28.gif rename to assets/img/un/u/28.gif diff --git a/img/un/u/29.gif b/assets/img/un/u/29.gif similarity index 100% rename from img/un/u/29.gif rename to assets/img/un/u/29.gif diff --git a/img/un/u/3.gif b/assets/img/un/u/3.gif similarity index 100% rename from img/un/u/3.gif rename to assets/img/un/u/3.gif diff --git a/img/un/u/30.gif b/assets/img/un/u/30.gif similarity index 100% rename from img/un/u/30.gif rename to assets/img/un/u/30.gif diff --git a/img/un/u/31.gif b/assets/img/un/u/31.gif similarity index 100% rename from img/un/u/31.gif rename to assets/img/un/u/31.gif diff --git a/img/un/u/32.gif b/assets/img/un/u/32.gif similarity index 100% rename from img/un/u/32.gif rename to assets/img/un/u/32.gif diff --git a/img/un/u/33.gif b/assets/img/un/u/33.gif similarity index 100% rename from img/un/u/33.gif rename to assets/img/un/u/33.gif diff --git a/img/un/u/34.gif b/assets/img/un/u/34.gif similarity index 100% rename from img/un/u/34.gif rename to assets/img/un/u/34.gif diff --git a/img/un/u/35.gif b/assets/img/un/u/35.gif similarity index 100% rename from img/un/u/35.gif rename to assets/img/un/u/35.gif diff --git a/img/un/u/36.gif b/assets/img/un/u/36.gif similarity index 100% rename from img/un/u/36.gif rename to assets/img/un/u/36.gif diff --git a/img/un/u/37.gif b/assets/img/un/u/37.gif similarity index 100% rename from img/un/u/37.gif rename to assets/img/un/u/37.gif diff --git a/img/un/u/38.gif b/assets/img/un/u/38.gif similarity index 100% rename from img/un/u/38.gif rename to assets/img/un/u/38.gif diff --git a/img/un/u/39.gif b/assets/img/un/u/39.gif similarity index 100% rename from img/un/u/39.gif rename to assets/img/un/u/39.gif diff --git a/img/un/u/4.gif b/assets/img/un/u/4.gif similarity index 100% rename from img/un/u/4.gif rename to assets/img/un/u/4.gif diff --git a/img/un/u/40.gif b/assets/img/un/u/40.gif similarity index 100% rename from img/un/u/40.gif rename to assets/img/un/u/40.gif diff --git a/img/un/u/41.gif b/assets/img/un/u/41.gif similarity index 100% rename from img/un/u/41.gif rename to assets/img/un/u/41.gif diff --git a/img/un/u/42.gif b/assets/img/un/u/42.gif similarity index 100% rename from img/un/u/42.gif rename to assets/img/un/u/42.gif diff --git a/img/un/u/43.gif b/assets/img/un/u/43.gif similarity index 100% rename from img/un/u/43.gif rename to assets/img/un/u/43.gif diff --git a/img/un/u/44.gif b/assets/img/un/u/44.gif similarity index 100% rename from img/un/u/44.gif rename to assets/img/un/u/44.gif diff --git a/img/un/u/45.gif b/assets/img/un/u/45.gif similarity index 100% rename from img/un/u/45.gif rename to assets/img/un/u/45.gif diff --git a/img/un/u/46.gif b/assets/img/un/u/46.gif similarity index 100% rename from img/un/u/46.gif rename to assets/img/un/u/46.gif diff --git a/img/un/u/47.gif b/assets/img/un/u/47.gif similarity index 100% rename from img/un/u/47.gif rename to assets/img/un/u/47.gif diff --git a/img/un/u/48.gif b/assets/img/un/u/48.gif similarity index 100% rename from img/un/u/48.gif rename to assets/img/un/u/48.gif diff --git a/img/un/u/49.gif b/assets/img/un/u/49.gif similarity index 100% rename from img/un/u/49.gif rename to assets/img/un/u/49.gif diff --git a/img/un/u/5.gif b/assets/img/un/u/5.gif similarity index 100% rename from img/un/u/5.gif rename to assets/img/un/u/5.gif diff --git a/img/un/u/50.gif b/assets/img/un/u/50.gif similarity index 100% rename from img/un/u/50.gif rename to assets/img/un/u/50.gif diff --git a/img/un/u/51.gif b/assets/img/un/u/51.gif similarity index 100% rename from img/un/u/51.gif rename to assets/img/un/u/51.gif diff --git a/img/un/u/52.gif b/assets/img/un/u/52.gif similarity index 100% rename from img/un/u/52.gif rename to assets/img/un/u/52.gif diff --git a/img/un/u/53.gif b/assets/img/un/u/53.gif similarity index 100% rename from img/un/u/53.gif rename to assets/img/un/u/53.gif diff --git a/img/un/u/54.gif b/assets/img/un/u/54.gif similarity index 100% rename from img/un/u/54.gif rename to assets/img/un/u/54.gif diff --git a/img/un/u/55.gif b/assets/img/un/u/55.gif similarity index 100% rename from img/un/u/55.gif rename to assets/img/un/u/55.gif diff --git a/img/un/u/56.gif b/assets/img/un/u/56.gif similarity index 100% rename from img/un/u/56.gif rename to assets/img/un/u/56.gif diff --git a/img/un/u/57.gif b/assets/img/un/u/57.gif similarity index 100% rename from img/un/u/57.gif rename to assets/img/un/u/57.gif diff --git a/img/un/u/58.gif b/assets/img/un/u/58.gif similarity index 100% rename from img/un/u/58.gif rename to assets/img/un/u/58.gif diff --git a/img/un/u/59.gif b/assets/img/un/u/59.gif similarity index 100% rename from img/un/u/59.gif rename to assets/img/un/u/59.gif diff --git a/img/un/u/6.gif b/assets/img/un/u/6.gif similarity index 100% rename from img/un/u/6.gif rename to assets/img/un/u/6.gif diff --git a/img/un/u/60.gif b/assets/img/un/u/60.gif similarity index 100% rename from img/un/u/60.gif rename to assets/img/un/u/60.gif diff --git a/img/un/u/7.gif b/assets/img/un/u/7.gif similarity index 100% rename from img/un/u/7.gif rename to assets/img/un/u/7.gif diff --git a/img/un/u/8.gif b/assets/img/un/u/8.gif similarity index 100% rename from img/un/u/8.gif rename to assets/img/un/u/8.gif diff --git a/img/un/u/9.gif b/assets/img/un/u/9.gif similarity index 100% rename from img/un/u/9.gif rename to assets/img/un/u/9.gif diff --git a/img/un/u/98.gif b/assets/img/un/u/98.gif similarity index 100% rename from img/un/u/98.gif rename to assets/img/un/u/98.gif diff --git a/img/un/u/99.gif b/assets/img/un/u/99.gif similarity index 100% rename from img/un/u/99.gif rename to assets/img/un/u/99.gif diff --git a/gpack/travian_t4/lang/en/t1/index.php b/assets/img/un/u/index.php similarity index 100% rename from gpack/travian_t4/lang/en/t1/index.php rename to assets/img/un/u/index.php diff --git a/img/un/u/point.gif b/assets/img/un/u/point.gif similarity index 100% rename from img/un/u/point.gif rename to assets/img/un/u/point.gif diff --git a/img/un/u/specials.gif b/assets/img/un/u/specials.gif similarity index 100% rename from img/un/u/specials.gif rename to assets/img/un/u/specials.gif diff --git a/img/un/u/v1_romans2.gif b/assets/img/un/u/v1_romans2.gif similarity index 100% rename from img/un/u/v1_romans2.gif rename to assets/img/un/u/v1_romans2.gif diff --git a/img/un/u/v2_teutons2.gif b/assets/img/un/u/v2_teutons2.gif similarity index 100% rename from img/un/u/v2_teutons2.gif rename to assets/img/un/u/v2_teutons2.gif diff --git a/img/un/u/v3_gauls2.gif b/assets/img/un/u/v3_gauls2.gif similarity index 100% rename from img/un/u/v3_gauls2.gif rename to assets/img/un/u/v3_gauls2.gif diff --git a/img/un/u/v4_nature2.gif b/assets/img/un/u/v4_nature2.gif similarity index 100% rename from img/un/u/v4_nature2.gif rename to assets/img/un/u/v4_nature2.gif diff --git a/img/un/u/v5_natars2.gif b/assets/img/un/u/v5_natars2.gif similarity index 100% rename from img/un/u/v5_natars2.gif rename to assets/img/un/u/v5_natars2.gif diff --git a/img/un/u/v6_monsters2.gif b/assets/img/un/u/v6_monsters2.gif similarity index 100% rename from img/un/u/v6_monsters2.gif rename to assets/img/un/u/v6_monsters2.gif diff --git a/img/un/x.gif b/assets/img/un/x.gif similarity index 100% rename from img/un/x.gif rename to assets/img/un/x.gif diff --git a/img/x.gif b/assets/img/x.gif similarity index 100% rename from img/x.gif rename to assets/img/x.gif diff --git a/mt-core.js b/assets/js/mt-core.js similarity index 100% rename from mt-core.js rename to assets/js/mt-core.js diff --git a/mt-full.js b/assets/js/mt-full.js similarity index 100% rename from mt-full.js rename to assets/js/mt-full.js diff --git a/mt-more.js b/assets/js/mt-more.js similarity index 100% rename from mt-more.js rename to assets/js/mt-more.js diff --git a/new.js b/assets/js/new.js similarity index 100% rename from new.js rename to assets/js/new.js diff --git a/new2.js b/assets/js/new2.js similarity index 100% rename from new2.js rename to assets/js/new2.js diff --git a/uncrypt.js b/assets/js/uncrypt.js similarity index 100% rename from uncrypt.js rename to assets/js/uncrypt.js diff --git a/assets/js/unx.js b/assets/js/unx.js new file mode 100644 index 00000000..af06d91a --- /dev/null +++ b/assets/js/unx.js @@ -0,0 +1,1755 @@ +window.dlang = 'ar'; // edit it to en if fullscreen map not working +window.reloading = false; +var xhttp = new XMLHttpRequest(); +var timer = new Object(); +var ab = new Object(); +var bb = new Object(); +var cb = db(); +var eb = 0; +var auto_reload = 1; +var fb = new Object(); +var is_opera = window.opera !== undefined; +var is_ie = document.all !== undefined && window.opera === undefined; +var is_ie6p = document.compatMode !== undefined && document.all !== undefined && window.opera === undefined; +var is_ie7 = document.documentElement !== undefined && document.documentElement.style.maxHeight !== undefined; +var is_ie6 = is_ie6p && !is_ie7; +var is_ff2p = window.Iterator !== undefined; +var is_ff3p = document.getElementsByClassName !== undefined; +var is_ff2 = is_ff2p && !is_ff3p + +automation(); + +function automation() { + this.xhttp.open("GET", "GameEngine/Automation.php", true); + this.xhttp.send(); + //setTimeout(function(){ automation(); }, 1000); +} + +function gb() { + return hb('height'); +} + +function ib() { + return hb('width'); +} + +function hb(jb) { + var kb = 0, + lb = 0; + if (typeof(window.innerWidth) == 'number') { + kb = window.innerWidth; + lb = window.innerHeight; + } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { + kb = document.documentElement.clientWidth; + lb = document.documentElement.clientHeight; + } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { + kb = document.body.clientWidth; + lb = document.body.clientHeight; + } + if (jb == 'height') return lb; + if (jb == 'width') return kb; +} +var gmwds = false; + +function start() { + mb("l1"); + mb("l2"); + mb("l3"); + mb("l4"); + initCounter(); + if (typeof init_local == 'function') { + init_local(); + } + if (quest.number === null) { + qst_handle(); + } + if (gmwds) { + gmwd(); + } +} + +function nb() { + return new Date().getTime(); +} + +function db() { + return Math.round(nb() / 1000); +} + +function ob(pb) { + p = pb.innerHTML.split(":"); + qb = p[0] * 3600 + p[1] * 60 + p[2] * 1; + return qb; +} + +function rb(s, sb) { + var tb, ub, vb; + if (s > -2) { + tb = Math.floor(s / 3600); + ub = Math.floor(s / 60) % 60; + vb = s % 60; + t = tb + ":"; + if (ub < 10) { + t += "0"; + } + t += ub + ":"; + if (vb < 10) { + t += "0"; + } + t += vb; + } else { + t = '0:00:00'; + if (!window.reloading) { + document.location.reload(); + window.reloading = true; + } + } + return t; +} + +function fi2(qact, qact2, qact3) { + if (qact === undefined) { + qact = false; + } + + if (qact2 === undefined) { + qact2 = false; + } + + if (qact3 === undefined) { + qact3 = false; + } + + var gi = 'ajax.php?f=qst'; + var ci = (Math.abs(quest.number) + 1) / (Math.abs(quest.last) + 1); + return gi + '&cr=' + bi(4, ci) + '&qact=' + qact + '&qact2=' + qact2 + '&qact3=' + qact3; +} + +function qst_next2(jf, act, act2, act3) { + + var id; + + if (jf) { + id = { + 'x': document.getElementById('qst_val_x').value, + 'y': document.getElementById('qst_val_y').value + }; + } else { + id = { + 'val': document.getElementById('qst_val').value + }; + } + + pi(); + + fd(fi2(act, act2, act3), function(mf) { + for (var qd in mf) { + quest[qd] = mf[qd]; + } + }, 'POST', id); + + qst_wfm(); +} + +function initCounter() { + for (var i = 1;; i++) { + pb = document.getElementById("tp" + i); + if (pb != null) { + ab[i] = new Object(); + ab[i].node = pb; + ab[i].counter_time = ob(pb); + } else { + break; + } + } + + pb = document.getElementsByClassName("timer"); + + [].forEach.call(pb, function(item, index){ + if (item != null) { + bb[index] = new Object(); + bb[index].node = item; + bb[index].counter_time = ob(item); + } + }); + + executeCounter(); +} + +function executeCounter() { + for (var i in ab) { + wb = db() - cb; + if (ab[i] && ab[i]['counter_time']) { + xb = rb(ab[i].counter_time + wb); + } else { + xb = 0; + } + ab[i].node.innerHTML = xb; + } + for (i in bb) { + wb = db() - cb; + + if (bb[i] && bb[i]['counter_time']) { + yb = bb[i].counter_time - wb; + } else { + eb = 0; + yb = -1; + } + + if (eb == 0 && yb < 0) { + bb[i] = null; + eb = 1; + if (!window.reloading) { + setTimeout(function() { + window.location.href = window.location.href; + }, 1000); + window.reloading = true; + } + } else { + xb = rb(yb); + bb[i].node.innerHTML = xb; + } + } + setTimeout("executeCounter()", 1000); +} + +function mb(zb) { + pb = document.getElementById(zb); + if (pb != null) { + fb[zb] = new Object(); + var $b = pb.innerHTML.match(/(\d+)\/(\d+)/); + element = $b[0].split("/"); + _b = parseInt(element[0]); + ac = parseInt(element[1]); + bc = pb.title; + if (bc != 0) { + cc = nb(); + timer[zb] = new Object(); + timer[zb].start = cc; + timer[zb].production = bc; + timer[zb].start_res = _b; + timer[zb].max_res = ac; + timer[zb].ms = 3600000 / bc; + dc = 100; + if (timer[zb].ms < dc) { + timer[zb].ms = dc; + } + timer[zb].node = pb; + executeTimer(zb); + } else { + timer[zb] = new Object(); + fb[zb].value = _b; + } + } +} + +function executeTimer(zb) { + wb = nb() - timer[zb].start; + if (wb >= 0) { + ec = Math.round(timer[zb].start_res + wb * (timer[zb].production / 3600000)); + if (ec >= timer[zb].max_res) { + ec = timer[zb].max_res; + } else { + window.setTimeout("executeTimer('" + zb + "')", timer[zb].ms); + } + fb[zb].value = ec; + timer[zb].node.innerHTML = ec + '/' + timer[zb].max_res; + } +} +var fc = new Array(0, 0, 0, 0, 0); + +function add_res(res, gc) { + hc = fb['l' + (5 - gc)].value; + ic = haendler * carry; + fc[gc] = jc(fc[gc], hc, ic, carry); + document.getElementById(res).value = fc[gc]; +} + +function upd_res(res, gc, kc) { + hc = fb['l' + (5 - gc)].value; + ic = haendler * carry; + if (kc) { + lc = hc; + } else { + lc = parseInt(document.getElementById(res).value); + } + if (isNaN(lc)) { + lc = 0; + } + fc[gc] = jc(parseInt(lc), hc, ic, 0); + document.getElementById(res).value = fc[gc]; +} + +function jc(mc, nc, oc, pc) { + qc = mc + pc; + if (qc > nc) { + qc = nc; + } + if (qc > oc) { + qc = oc; + } + if (qc == 0) { + qc = ''; + } + return qc; +} + +function rc(n, d) { + var p, i, x; + if (!d) d = document; + if ((p = n.indexOf("?")) > 0 && parent.frames.length) { + d = parent.frames[n.substring(p + 1)].document; + n = n.substring(0, p); + } + if (!(x = d[n]) && d.all) x = d.all[n]; + for (var i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n]; + for (var i = 0; !x && d.layers && i < d.layers.length; i++) x = rc(n, d.layers[i].document); + return x; +} + +function btm0() { + var i, x, a = document.MM_sr; + for (var i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc; +} + +function btm1() { + var i, j = 0, + x, a = btm1.arguments; + document.MM_sr = new Array; + for (var i = 0; i < (a.length - 2); i += 3) + if ((x = rc(a[i])) != null) { + document.MM_sr[j++] = x; + if (!x.oSrc) x.oSrc = x.src; + x.src = a[i + 2]; + } +} + +function Popup(i, j, sc) { + if (typeof sc == 'undefined') { + sc = 's'; + } + pb = document.getElementById("ce"); + if (pb != null) { + var + iframeHeight = 440, + iframeWidth = 412; + + var tc = '
' + 'Move' + '' + '
'; + pb.innerHTML = tc; + uc(); + } + vc(); + if (!is_ie6 && !wc) return false; + else return true; +} + +function PopupMap(i) { + if (typeof sc == 'undefined') { + sc = 's'; + } + pb = document.getElementById("ce"); + if (pb != null) { + var + iframeHeight = 575, + iframeWidth = 1000; + if (window.dlang == 'ar') { + var tc = ''; + } else { + var tc = ''; + } + pb.innerHTML = tc; + uc2(); + } + vc(); + if (!is_ie6 && !wc) return false; + else return true; +} + +function uc() { + if ($('drag')) { + return; + } + $$('.popup3')[0].grab(new Element('div', { + 'id': 'drag' + }), 'top').makeDraggable({ + 'handle': 'drag' + }); + if ($$('body')[0].getStyle('direction').toLowerCase() == 'rtl') { + $$('.popup3')[0].setStyle('direction', 'rtl').getParent().setStyle('direction', 'ltr'); + } +} + +function uc2() { + if ($('drag')) { + return; + } + if (window.dlang == 'ar') { + //$$('.popup_map')[0].grab(new Element('div',{'id':'drag', "style": "width: 1000px;height: 10px;background-color: #fff0;position: absolute;cursor: move;"}),'top').makeDraggable({'handle':'drag'}); + } else { + //$$('.popup_map')[0].grab(new Element('div',{'id':'drag'}),'top').makeDraggable({'handle':'drag'}); + } + if ($$('body')[0].getStyle('direction').toLowerCase() == 'rtl') { + $$('.popup_map')[0].setStyle('direction', 'rtl').getParent().setStyle('direction', 'ltr'); + } +} + +function vc() { + var frm = document.getElementById("Frame"); + if (!frm || frm == null || typeof(frm) == 'undefined') { + frm = document.getElementById("ce"); + } + //if(gb()<700||ib()<700){ + frm.style.position = 'absolute'; + wc = true; + //} else{ + //frm.style.position='fixed';wc=false; + //} +} + +window.addEvent('resize', function() { + $f = $$('#Frame'); + + if (typeof($f) != 'undefined' && typeof($f[0]) != 'undefined' && $f[0].src.indexOf('manual.php') === -1) { + $f[0].style.left = (Math.round((documentWidth() - $f[0].width) / 2)) + 'px'; + $f[0].style.top = (Math.round((documentHeight() - $f[0].height) / 2)) + 'px'; + } +}); + +function Close() { + pb = document.getElementById("ce"); + if (pb != null) { + pb.innerHTML = ''; + } + if (quest.anmstep !== false) { + quest.anmstep = false; + } +} + +function Allmsg() { + for (var x = 0; x < document.msg.elements.length; x++) { + var y = document.msg.elements[x]; + if (y.name != 's10') y.checked = document.msg.s10.checked; + } +} + +function xy() { + xc = screen.width + ":" + screen.height; + document.snd.w.value = xc; +} + +function my_village() { + var yc = Math.round(0); + var zc; + var e = document.snd.dname.value; + for (var i = 0; i < dorfnamen.length; i++) { + if (dorfnamen[i].indexOf(e) > -1) { + yc++; + zc = dorfnamen[i]; + } + } + if (yc == 1) { + document.snd.dname.value = zc; + } +} +var $c = document.getElementById ? 1 : 0; +var _c = document.all ? 1 : 0; +var ad = (navigator.userAgent.indexOf("Mac") > -1) ? 1 : 0; +var bd = (_c && (!ad) && (typeof(window.offscreenBuffering) != 'undefined')) ? 1 : 0; +var cd = bd; +var dd = bd && (window.navigator.userAgent.indexOf("SV1") != -1); + +function changeOpacity(ed, opacity) { + if (bd) { + ed.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + (opacity * 100) + ')'; + } else if ($c) { + ed.style.MozOpacity = opacity; + } +} + +function fd(url, gd, hd, id) { + if (hd === undefined) { + hd = 'GET'; + } + var jd; + if (window.XMLHttpRequest) { + jd = new XMLHttpRequest(); + } else if (window.ActiveXObject) { + try { + jd = new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + jd = new ActiveXObject("Microsoft.XMLHTTP"); + } catch (e) {} + } + } else { + throw 'Can not create XMLHTTP-instance'; + } + jd.onreadystatechange = function() { + if (jd.readyState == 4) { + if (jd.status == 200) { + var kd = jd.getResponseHeader('Content-Type'); + if (kd.indexOf(';') > -1) { + kd = kd.substr(0, kd.indexOf(';')); + } + switch (kd) { + case 'application/json': + if (jd.responseText.indexOf('[]') < 0) { + gd(jd.responseText == '' ? null : eval('(' + jd.responseText + ')')); + } + break; + case 'text/plain': + case 'text/html': + gd(jd.responseText); + break; + default: + throw 'Illegal content type'; + } + } else { + throw 'An error has occurred during request'; + } + } + }; + jd.open(hd, url, true); + if (hd == 'POST') { + jd.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=utf-8'); + var ld = md(id); + } else { + var ld = null; + } + jd.send(ld); +} + +function md(nd) { + var od = ''; + var pd = true; + for (var qd in nd) { + od += (pd ? '' : '&') + qd + '=' + window.encodeURI(nd[qd]); + if (pd) { + pd = false; + } + } + return od; +} + +function mreload() { + param = 'reload=auto'; + url = window.location.href; + if (url.indexOf(param) == -1) { + if (url.indexOf('?') == -1) { + url += '?' + param; + } else { + url += '&' + param; + } + } + if (!window.reloading) { + document.location.href = url; + window.reloading = true; + } +} +var rd = { + 'index': 0, + 'dir': 0, + 'size': null, + 'fields': [], + 'cindex': 0, + 'usealternate': false +}; +var m_c = rd; +var sd; +var td; +var ud; +var vd; +var wd; +var xd; +var yd; +var zd; +var $d; +var _d = false; +var ae; +var be; +var ce; +var de = []; +de[38] = 1; +de[39] = 2; +de[40] = 3; +de[37] = 4; +var ee = {}; +var fe; +var ge; + +function map_init() { + sd = false; + td = false; + ud = false; + vd = false; + xd = 0; + wd = 0; + fe = he('karte2'); + ie(['i', 'a', 't']); + if (null == m_c.az) { + throw 'm_c.az muss seitenspezifisch initialisiert werden.'; + } + for (var p in m_c.az) { + document.getElementById('ma_' + p).onclick = je; + } + var ke = ['mcx', 'mcy', 'x', 'y', 'map_infobox']; + for (var i = 0; i < ke.length; i++) { + ee[ke[i]] = document.getElementById(ke[i]); + } + ke = ['mcx', 'mcy']; + for (var i = 0; i < ke.length; i++) { + ee[ke[i]].onfocus = function() { + vd = true; + }; + ee[ke[i]].onblur = function() { + vd = false; + }; + } + + ee.ibox_cells = []; + ee.ibox_cells[0] = ee.map_infobox.firstChild.firstChild.lastChild; + for (var i = 1; i <= 3; i++) { + ee.ibox_cells[i] = ee.map_infobox.firstChild.nextSibling.childNodes[i - 1].lastChild; + } + document.onkeyup = le; + document.onkeydown = me; + document.onkeypress = ne; + document.map_coords.onsubmit = oe; + ee.mx = []; + ee.my = []; + for (var i = 0; i < mdim.x; i++) { + for (var j = 0; j < mdim.y; j++) { + area = pe(i, j, 'a'); + area.onmouseover = qe; + area.onmouseout = re; + if (fe) { + area.onclick = se; + } + te(m_c.ad[i][j], area); + } + ee.mx[i] = document.getElementById('mx' + i); + ee.my[i] = document.getElementById('my' + i); + } + //var ue=document.getElementById('map_makelarge'); + //if(ue){ue.onclick=ve;} + if (mdim.x == 13) { + document.getElementById('map_popclose').onclick = we; + } +} + +function se() { + opener.location = this.href; + return false; +} +//function xe(ye){var ze=document.getElementById('map_makelarge');ze.className=ye?'loading':'';} +function $e(_e) { + var af; + var bf; + if (ee.map_infobox != null) { + if (_e.normal_field) { + var cf = df(_e.nr * 1); + af = [text_k.verlassenes_tal + ': ' + cf.join('-')]; + bf = 'empty'; + } else if (_e.free_oasis && !_e.classic_oasis) { + af = [text_k.freie_oase]; + bf = 'oasis_empty'; + } else if (_e.occupied_oasis && !_e.classic_oasis) { + af = [text_k.besetztes_tal, _e.name, _e.ew, _e.ally]; + bf = 'oasis'; + } else if (_e.village) { + var text = '' + _e.dname + ''; + af = [text, _e.name, _e.ew, _e.ally]; + bf = 'village'; + } else { + af = [text_k.details]; + bf = 'default'; + } + } + for (var i = 0; i < 4; i++) { + ee.ibox_cells[i].innerHTML = (af[i] === undefined || af[i] === '') ? '-' : af[i].replace(/\&/g, "&"); + } + ee.map_infobox.className = bf; +} + +function ef(ff, gf) { + return ((ff - 1) * 10) + gf +} + +function hf(jf) { + ee.x.firstChild.nodeValue = jf.x; + ee.y.firstChild.nodeValue = jf.y; +} + +function kf(jf) { + ee.mcx.value = jf.x; + ee.mcy.value = jf.y; + l = $$('div.cropfinder_icon a').set('href', 'cropfinder.php?x=' + jf.x + '&y=' + jf.y); +} + +function lf(x, y) { + var world_max = m_c.world_max; + var world_max_double = (world_max * 2) + 1; + return (world_max + x) + (world_max - y) * world_max_double + 1; +} + +function ve() { + if (mmode) { + zd = window.open(this.href, "map", "top=100,left=25,width=1007,height=585"); + zd.focus(); + } else { + xe(true); + fd('ajax.php?f=kp&z=' + lf(m_c.z.x, m_c.z.y), function(mf) { + xe(false); + ae = document.getElementsByTagName('body')[0]; + be = document.getElementsByTagName('html')[0]; + ae.parentNode.removeChild(ae); + ce = document.createElement('body'); + ce.innerHTML = mf.lm; + ce.style.backgroundColor = '#ffffff'; + be.appendChild(ce); + m_c = []; + for (var qd in mf.dat.m_c) { + m_c[qd] = mf.dat.m_c[qd]; + } + m_c.fields = []; + mdim = mf.dat.mdim; + mmode = mf.dat.mmode; + map_init(); + }); + } + return false; +} + +function we() { + if (fe) { + pb = parent.document.getElementById("drag2"); + if (pb != null) { + pb.innerHTML = '' + } else { + window.close(); + } + } else { + mdim = { + 'x': 7, + 'y': 7, + 'rad': 3 + }; + var nf = []; + for (var i = 0; i < mdim.x; i++) { + nf[i] = []; + for (var j = 0; j < mdim.y; j++) { + nf[i][j] = pe(i + 3, j + 3, 'a').details; + } + } + be.removeChild(ce); + be.appendChild(ae); + map_init(); + var of ; + var area; + for (var i = 0; i < mdim.x; i++) { + for (var j = 0; j < mdim.y; j++) { + area = pe(i, j, 'a'); of = pe(i, j, 'i'); + area.details = nf[i][j]; + area.details.fresh = {}; of .className = nf[i][j].img; + pf(area, of ); + } + } + hf(m_c.z); + kf(m_c.z); + } + return false; +} + +//this function is executed on map direction icon clicking +//ma_n1, ma_n2, ma_n3, ma_n4 +// document.getElementById('ma_'+p).onclick=je; +function je() { + var qf = 1 * this.id.substring(4, 5); + var rf = 1 * (this.id.substring(5, 7) == 'p7' ? mdim.x : 1); + // console.log(this.id + "--" + qf+"-"+rf); + map_scroll(qf, rf); + return false; +} + +function sf(z) { + var x = z.x - mdim.rad; + var y = z.y - mdim.rad; + var tf = z.x + mdim.rad; + var uf = z.y + mdim.rad; + return { + 'x': x, + 'y': y, + 'xx': tf, + 'yy': uf + }; +} + +function vf(qf, rf, wf) { + if (wf == null) { + wf = 0; + } + if (m_c.size == null) { + throw 'Globale Variable m_c.size muss auf den Wert von $travian[map_prefetch_rows]) gesetzt werden.'; + } + var xf, yf; + if (null === rf || 1 === rf) { + yf = m_c.size - 1; + } else if (mdim.x == rf) { + xf = mdim.x; + yf = -(mdim.x - 1); + } else { + throw 'Parameter steps muss 1 oder Breite der Karte in Feldern sein.'; + } + var x, y, tf, uf, z; + var z = m_c.z; + switch (qf) { + case 1: + x = z.x + mdim.rad; + y = z.y + mdim.rad + wf; + tf = z.x - mdim.rad; + uf = y + yf; + break; + case 2: + x = z.x + mdim.rad + wf; + y = z.y - mdim.rad; + tf = x + yf; + uf = z.y + mdim.rad; + break; + case 3: + x = z.x + mdim.rad; + y = z.y - mdim.rad - wf; + tf = z.x - mdim.rad; + uf = y - yf; + break; + case 4: + x = z.x - mdim.rad - wf; + y = z.y - mdim.rad; + tf = x - yf; + uf = z.y + mdim.rad; + break; + } + return { + 'x': x, + 'y': y, + 'xx': tf, + 'yy': uf + }; +} + +function zf($f) { + var world_max = m_c.world_max; + var world_max_double = (world_max * 2) + 1; + if ($f > world_max) { + $f -= world_max_double; + } + if ($f < -world_max) { + $f += world_max_double; + } + return $f; +} + +function _f($f) { + if ($f > m_c.world_max) { + $f = m_c.world_max; + } + if ($f < -m_c.world_max) { + $f = -m_c.world_max; + } + return $f; +} + +//tientn: m_c is the object hold all global variables +function ag(qf, rf) { + var z = {}; + z.x = m_c.z.x * 1; + z.y = m_c.z.y * 1; + switch (qf) { + case 1: + z.y += rf; + break; + case 2: + z.x += rf; + break; + case 3: + z.y -= rf; + break; + case 4: + z.x -= rf; + break; + } + m_c.z.x = zf(z.x); + m_c.z.y = zf(z.y); +} + +function bg(cg) { + return 'ajax.php?f=k7&x=' + cg.x + '&y=' + cg.y + '&xx=' + cg.xx + '&yy=' + cg.yy; +} + +function map_scroll(qf, rf, dg) { + var cg, eg; + if (sd) { + return false; + } + if (fg()) { + if (td) { + return false; + } + sd = true; + gg(); + m_c.usealternate = false; + m_c.cindex = 0; + if (dg !== undefined) { + m_c.z.x = _f(dg.x); + m_c.z.y = _f(dg.y); + cg = sf(m_c.z); + } else { + ag(qf, rf); + cg = vf(qf, rf); + } + hg = bg(cg); + fd(hg, ig); + } else { + if (jg()) { + if (td) { + return false; + } + td = true; + ag(qf, rf); + cg = vf(qf, rf, 2); + hg = bg(cg); + fd(hg, ig); + } else if (kg()) { + ag(qf, rf); + lg(); + gg(); + } else { + ag(qf, rf); + } + mg(qf, rf); + } + + function ig(ng) { + var og; + if (jg()) { + og = pg(m_c.cindex); + m_c.usealternate = false; + td = false; + } else { + og = m_c.cindex; + } + m_c.fields[og] = ng; + if (fg()) { + if (dg !== undefined) { + mg(0, 0, m_c.z); + qg('x'); + qg('y'); + } else { + mg(qf, rf); + qg(qf); + } + sd = false; + } + } + + function jg() { + return m_c.usealternate; + } + + function fg() { + return (qf != m_c.dir || rf == mdim.x || (rf == 1 && rf != m_c.steps) || dg !== undefined); + } + + function kg() { + return (m_c.index == m_c.size); + } +} //end of map_scroll + +function rg(qf, rf) { + m_c.dir = qf; + m_c.steps = rf; +} + +function gg() { + m_c.index = 0; +} + +function sg() { + m_c.index++; + if (m_c.index == m_c.size - 2) { + m_c.usealternate = true; + } +} + +function lg() { + m_c.cindex = pg(m_c.cindex); +} + +function mg(qf, rf, dg) { + var tg = document.getElementById('map_content'); + var ug = tg.parentNode; + if (1 == rf) { + vg(qf); + wg(m_c.fields[m_c.cindex], qf, rf); + qg(qf); + sg(); + } else if (mdim.x == rf || dg !== undefined) { + xg(m_c.fields[m_c.cindex]); + } + if (wd == 0) { + kf(m_c.z); + } + hf(m_c.z); + rg(qf, rf); +} + +function pg(og) { + return (og == 0 ? 1 : 0); +} + +function xg(ng) { + for (var i = 0; i < mdim.x; i++) { + for (var j = 0; j < mdim.y; j++) { + yg(i, j, ng[i][j]); + } + } +} + +function zg($g, _g) { + _g.details.href = $g; +} + +function yg(ah, bh, _e) { + var of = pe(ah, bh, 'i'); + var area = pe(ah, bh, 'a'); + te(_e, area); of .className = area.details.img; + pf(area, of ); +} + +function pf(area, of ) { + if (area.details.atyp) { + if (! of .firstChild) { of .appendChild(document.createElement('span')); + } of .firstChild.className = 'm' + area.details.atyp; + } else { + if ( of .firstChild) { of .removeChild( of .firstChild); + } + } +} + +function te(_e, area) { + area.details = {}; + var ch = ['x', 'y', 'nr', 'typ', 'querystring', 'img', 'atyp', 'dname', 'name', 'ew', 'ally', 'vid', 'atime']; + for (var i = 0; i < _e.length; i++) { + area.details[ch[i]] = _e[i]; + } + area.details.normal_field = area.details.name === undefined && area.details.typ == 0; + area.details.free_oasis = area.details.name === undefined && area.details.typ != 0; + area.details.occupied_oasis = area.details.name !== undefined && area.details.typ != 0; + area.details.village = area.details.name !== undefined && area.details.typ == 0; + area.details.fresh = {}; + area.details.classic_oasis = area.details.querystring === ''; +} + +function df(dh) { + switch (dh) { + case 1: + return [3, 3, 3, 9]; + case 2: + return [3, 4, 5, 6]; + case 3: + return [4, 4, 4, 6]; + case 4: + return [4, 5, 3, 6]; + case 5: + return [5, 3, 4, 6]; + case 6: + return [1, 1, 1, 15]; + case 7: + return [4, 4, 3, 7]; + case 8: + return [3, 4, 4, 7]; + case 9: + return [4, 3, 4, 7]; + case 10: + return [3, 5, 4, 6]; + case 11: + return [4, 3, 5, 6]; + case 12: + return [5, 4, 3, 6]; + default: + return false; + } +} +//document.map_coords.onsubmit=oe; +function oe() { + var x = parseInt(this.xp.value); + var y = parseInt(this.yp.value); + if (!isNaN(x) && !isNaN(y)) { + map_scroll(0, 0, { + 'x': x, + 'y': y + }); + } + return false; +} +//document.onkeypress=ne; +function ne(e) { + if (vd) { + return true; + } + var qd = (window.event) ? event.keyCode : e.keyCode; + var qf = eh(qd); + if (qf != 0) { + return false; + } +} + +function qe() { + _d = true; + hf(this.details); + $e(this.details); + fh(this); + ge = this; +} + +function fh(area) { + if (!area.details.fresh.href) { + if (area.details.classic_oasis) { + area.removeAttribute('href'); + area.style.cursor = 'default'; + } else { + area.href = 'karte.php?' + area.details.querystring; + area.style.cursor = 'pointer'; + } + area.details.fresh.href = true; + } + if (!area.details.fresh.title) { + area.details.fresh.title = gh(area); + } +} + +function gh(area) { + if (area.details.normal_field) { + area.title = ''; + } else if (area.details.free_oasis && !area.details.classic_oasis) { + area.title = text_k.freie_oase; + } else if (area.details.occupied_oasis && !area.details.classic_oasis) { + area.title = text_k.besetztes_tal; + } else if (area.details.village) { + if (area.details.atime !== undefined) { + area.title = area.details.dname + ' ' + rb(area.details.atime - Math.floor(new Date().getTime() / 1000), true); + return false; + } else { + area.title = area.details.dname; + } + } else { + area.title = ''; + } + return true; +} + +function re() { + var area = this; + window.setTimeout(function() { + if (ge == area) { + _d = false; + hf(m_c.z); + hh(); + } + }, 50); +} + +function wg(ng, qf) { + var ih, jh; + for (var i = 0; i < mdim.x; i++) { + switch (qf) { + case 1: + ih = i; + jh = mdim.x - 1; + _e = ng[i][m_c.index]; + break; + case 2: + ih = mdim.x - 1; + jh = i; + _e = ng[m_c.index][i]; + break; + case 3: + ih = i; + jh = 0; + _e = ng[i][m_c.size - m_c.index - 1]; + break; + case 4: + ih = 0; + jh = i; + _e = ng[m_c.size - m_c.index - 1][i]; + break; + } + yg(ih, jh, _e); + } +} + +function kh(x, y, tf, uf) { + var of = pe(x, y, 'i'); + var lh = pe(tf, uf, 'i'); + mh( of , lh); + if ( of .firstChild) { + if (!lh.firstChild) { + lh.appendChild(document.createElement('span')) + } + lh.firstChild.className = of .firstChild.className; + } else { + if (lh.firstChild) { + lh.removeChild(lh.firstChild); + } + } + nh(x, y, tf, uf); +} + +function nh(x, y, tf, uf) { + _e = pe(x, y, 'a'); + oh = pe(tf, uf, 'a'); + oh.details = _e.details; + oh.details.fresh = {}; +} + +function mh( of , lh) { + lh.className = of .className; +} + +function vg(qf) { + for (var i = 0; i < mdim.x; i++) { + for (var j = 1; j < mdim.x; j++) { + switch (qf) { + case 1: + kh(i, j, i, j - 1); + break; + case 2: + kh(j, i, j - 1, i); + break; + case 3: + kh(i, mdim.x - 1 - j, i, mdim.x - j); + break; + case 4: + kh(mdim.x - 1 - j, i, mdim.x - j, i); + break; + } + } + } +} + +function eh(qd) { + if (de[qd] !== undefined) { + return de[qd]; + } + return 0; +} +//document.onkeyup=le; +function le(e) { + if (vd) { + return true; + } + var qd = ((window.event) ? event.keyCode : e.keyCode); + if (16 == qd) { + ud = false; + } + var qf = eh(qd); + if (qf == wd && wd != 0) { + wd = 0; + kf(m_c.z); + ph(); + } +} + +function m_r(qf, qh) { + if (wd == qf && qh == xd) { + window.setTimeout(function() { + m_r(qf, qh) + }, 100); + map_scroll(qf, 1); + } +} + +function qg(rh) { + var jb; + switch (rh) { + case 2: + case 4: + case 'x': + jb = 'x'; + break; + case 1: + case 3: + case 'y': + jb = 'y'; + break; + } + var sh = 'm' + jb; + var th; + var uh; + var vh = 0; + var wh = 0; + for (var i = 0; i < mdim.x; i++) { + if (jb == 'x') { + vh = i; + } else { + wh = i; + } + if (ee[sh][i]) { + th = pe(vh, wh, 'a').details[jb]; + ee[sh][i].firstChild.nodeValue = th; + } + } +} +//document.onkeydown=me; +function me(e) { + if (vd) { + return true; + } + var qd = (window.event) ? event.keyCode : e.keyCode; + if (qd == 16) { + ud = true; + } + var qf = eh(qd); + if (qf != 0 && qf != wd) { + var rf = (ud ? mdim.x : 1); + map_scroll(qf, rf); + var qh = new Date().getTime(); + if (rf == 1) { + window.setTimeout(function() { + m_r(qf, qh) + }, 500); + } + xd = qh; + wd = qf; + ph(); + } + if (qf != 0) { + return false; + } +} + +function ph() { + window.setTimeout(function() { + if (_d) { + $e(ge.details); + } + }, 60); +} +var xh = {}; + +function pe(ah, bh, yh) { + if (xh) { + return xh[yh][ah][bh]; + } +} + +function ie(zh) { + var yh; + for (var i = 0; i < zh.length; i++) { + yh = zh[i]; + xh[yh] = []; + for (var ah = 0; ah < mdim.x; ah++) { + xh[yh][ah] = []; + for (var bh = 0; bh < mdim.y; bh++) { + xh[yh][ah][bh] = document.getElementById(yh + '_' + ah + '_' + bh); + } + } + } +} + +function hh() { + $e({ + $h: '', + name: '', + _h: '', + ai: '', + x: m_c.z.x, + y: m_c.z.y + }); +} +var quest = { + 'anmstep': false +}; + +function bi(length, ci) { + if (length === undefined) { + length = 8; + } + if (ci === undefined) { + ci = 0.5; + } + var di = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'; + var bi = ''; + for (var i = 0; i < length; i++) { + var ei = Math.floor((Math.random() + ci) * 0.5 * di.length); + bi += di.substring(ei, ei + 1); + } + return bi; +} + +function fi(qact, qact2) { + if (qact === undefined) { + qact = false; + } + + if (qact2 === undefined) { + qact2 = false; + } + + var gi = 'ajax.php?f=qst'; + var ci = (Math.abs(quest.number) + 1) / (Math.abs(quest.last) + 1); + return gi + '&cr=' + bi(4, ci) + '&qact=' + qact + '&qact2=' + qact2; +} + +function qst_next(jf, act, act2) { + + var id; + + if (jf) { + id = { + 'x': document.getElementById('qst_val_x').value, + 'y': document.getElementById('qst_val_y').value + }; + } else { + id = { + 'val': document.getElementById('qst_val').value + }; + } + + pi(); + + fd(fi(act, act2), function(mf) { + for (var qd in mf) { + quest[qd] = mf[qd]; + } + }, 'POST', id); + + qst_wfm(); +} + + + +function hi() { + document.getElementById('ce').innerHTML = ''; + var step; + if (quest.anmstep === false) { + step = { + 'step': {}, + 'source': {}, + 'current': {}, + 'target': { + 'width': 448, + 'height': 482, + 'top': -1 + }, + 'fps': 50, + 'n': 10, + 'i': 0, + 'anm': {} + }; + step.target[quest.rtl ? 'right' : 'left'] = '-502'; + } else { + step = quest.anmstep; + ii(false); + } + step.anm = document.getElementById('anm'); + for (var ji in step.target) { + step.source[ji] = Number(step.anm.style[ji].substr(0, step.anm.style[ji].length - 2)); + step.current[ji] = step.source[ji]; + step.step[ji] = Math.round((step.target[ji] - step.source[ji]) / step.n); + } + step.timeout = 1000 / step.fps; + quest.cstep = step; + quest.anmlock = true; + window.setTimeout(anm_step, step.timeout); +} + +function ki(step) { + for (var ji in step.target) { + step.anm.style[ji] = step.current[ji] + 'px'; + } +} + +function li(step) { + step.i++; + if (step.i == 2) { + step.anm.style.visibility = 'visible'; + } + for (var ji in step.target) { + step.current[ji] += step.step[ji]; + } + return step; +} + +function ii(mi) { + if (mi === undefined) { + mi == false; + } + var ni = document.getElementById('ce'); + if (mi) { + var oi = '
Close
'; + ni.innerHTML = oi; + pi(); + qst_wfm(); + vc(); + qi(true); + uc(); + } else { + ni.innerHTML = ''; + qi(false); + } +} + +function qi(vis) { + if (!is_ie6) { + return; + } + var ri = vis ? 'hidden' : 'visible'; + var si = document.getElementsByTagName('select'); + var n = si.length; + for (var i = 0; i < n; i++) { + si[i].style.visibility = ri; + } +} + +function anm_step() { + step = li(quest.cstep); + ki(step); + if (step.i < step.n) { + window.setTimeout('anm_step()', step.timeout); + } else { + step.anm.style.visibility = 'hidden'; + quest.anmlock = false; + quest.cstep = false; + if (quest.anmstep === false) { + step.current = step.target; + step.target = step.source; + step.source = step.current; + ki(step); + step.i = 0; + ii(true); + quest.anmstep = step; + } else { + quest.anmstep = false; + if (quest.number >= quest.last || quest.altstep == 9) { + document.getElementById('qge').innerHTML = ''; + } + } + } +} + +function ti() { + var timer = document.getElementById('qst_timer'); + if (timer && timer.parentNode.style.display != 'none') { + if (!timer.timestamp) { + timer.timestamp = db() + ob(timer); + } else { + var ui = timer.timestamp - db(); + if (ui < 0) { + timer.parentNode.style.display = 'none'; + document.getElementById('qst_reshere').style.display = 'block'; + } else { + timer.innerHTML = rb(ui); + } + } + window.setTimeout(ti, 1000); + } +} + +function qst_fhandle() { + id = { + 'val': 1 + }; + fd(fi(), function(mf) {}, 'POST', id); + qst_handle(); +} + +function qst_handle() { + if (quest.anmlock) { + return false; + } + quest.markup = false; + if (quest.anmstep === false) { + fd(fi(), function(mf) { + for (var qd in mf) { + quest[qd] = mf[qd]; + } + }); + } + hi(); + + if (quest.ar) { + auto_reload = quest.ar; + quest.ar = undefined; + if (!window.reloading) { + document.location.href = (document.location.href.indexOf('#') > -1 ? document.location.href.substring(0, document.location.href.indexOf('#')) : document.location.href); + window.reloading = true; + } + } + +} + +function qst_wfm() { + var vi = document.getElementById('popup3'); + if (!quest.markup || !vi) { + if (!quest.anmlock) { + window.setTimeout('qst_wfm(true)', 50); + } + } else { + wi(quest); + vi.innerHTML = quest.markup; + uc(); + xi = false; + + if (quest.reward.finish && window.bld) { + var yi = document.getElementById('building_contract'); + if (bld.length < 2 && bld[0].gid == 1) { + yi.innerHTML = ''; + xi = 0; + } else { + for (var i in bld) { + if (bld[i].stufe == 1 && bld[i].gid == 1) { + yi.getElementsByTagName('table')[0].deleteRow(i); + xi = i; + break; + } + } + } + + if (xi !== false) { + var zi = $$('#t3 .rf' + bld[xi].aid)[0]; + if (zi) { + zi.removeClass('rf' + bld[xi].stufe); + zi.addClass('rf' + bld[xi].stufe + 1); + } else { + $$('.f3')[0].appendChild(new Element('img', { + 'class': ('reslevel rf' + bld[xi].aid + ' level' + bld[xi].stufe), + 'src': 'img/x.gif' + })); + } + } + + quest.ar = auto_reload; + auto_reload = -1; + } + + if (quest.reward.plus) { + var of = document.getElementById('logo').className = 'plus'; + } + + quest.markup = false; + quest.msg = false; + } + +} + +function qst_weiter() { + pi(); + fd(fi(), function(mf) { + document.getElementById('popup3').innerHTML = mf.markup; + var $i = document.getElementById('qgei'); + $i.className = mf.qgsrc; + wi(mf); + uc(); + }); +} + +function pi() { + document.getElementById('popup3').innerHTML = ''; +} + +function qst_enter(jf) { + if (jf === undefined) { + jf = false; + } + var id; + if (jf) { + id = { + 'x': document.getElementById('qst_val_x').value, + 'y': document.getElementById('qst_val_y').value + }; + } else { + id = { + 'val': document.getElementById('qst_val').value + }; + } + pi(); + fd(fi(), function(mf) { + for (var qd in mf) { + quest[qd] = mf[qd]; + } + }, 'POST', id); + qst_wfm(); +} + +function qst_enter_coords() { + qst_enter(true); +} + +function wi(_i) { + var $i = document.getElementById('qgei'); + if ($i && _i.qgsrc) { + $i.className = _i.qgsrc; + } + var aj = document.getElementById('n5'); + if (aj && _i.msrc) { + aj.className = _i.msrc; + } + if (_i.cookie) { + var date = new Date(); + date.setTime(date.getTime() + 300000); + document.cookie = 't3fw=1; expires=' + date.toUTCString() + ';'; + } + if (_i.fest && he('dorf2')) { + document.getElementById('content').innerHTML += _i.fest; + } + window.setTimeout(ti, 30); +} + +function he(bj) { + return window.location.href.indexOf(bj + '.php') != -1; +} + +function vil_levels_toggle() { + var cj = $('levels'), + dj = $('lswitch'); + cj.toggleClass('on'); + dj.toggleClass('on'); + if (cj.hasClass('on')) { + document.cookie = 'SHOWLEVELS=1; expires=Wed, 1 Jan 2020 00:00:00 GMT'; + } else { + document.cookie = 'SHOWLEVELS=1; expires=Thu, 01-Jan-1970 00:00:01 GMT'; + } +} + +function gmwd() { + if (is_ff2 && document.getElementById("gmwi").offsetWidth < 50) { + document.cookie = "a3=2; expires=Wed, 1 Jan 2020 00:00:00 GMT"; + } else { + document.cookie = "a3=1; expires=Wed, 1 Jan 2020 00:00:00 GMT"; + } +} + +function gmc() { + document.getElementById("gmw").style.display = "none"; + document.cookie = "a3=3; expires=Wed, 1 Jan 2020 00:00:00 GMT"; +} + +function documentWidth() { + return Math.max( + document.documentElement.clientWidth, + document.body.scrollWidth, + document.documentElement.scrollWidth, + document.body.offsetWidth, + document.documentElement.offsetWidth + ); +} + +function documentHeight() { + return Math.max( + document.documentElement.clientHeight, + //document.body.scrollHeight, + //document.documentElement.scrollHeight, + document.body.offsetHeight, + document.documentElement.offsetHeight + ); +} \ No newline at end of file diff --git a/autoloader.php b/autoloader.php deleted file mode 100644 index 29caea20..00000000 --- a/autoloader.php +++ /dev/null @@ -1,23 +0,0 @@ -access == BANNED){
- +
- +




@@ -76,8 +76,8 @@ include("Templates/news.tpl");
diff --git a/berichte.php b/berichte.php index add05dbf..f8d02e50 100644 --- a/berichte.php +++ b/berichte.php @@ -74,9 +74,9 @@ if(isset($_GET['newdid'])) {
- +
- +

Reports

@@ -113,15 +113,15 @@ if (isset($_GET['id'])) if(isset($type)) include("Templates/Notice/".$message->getReportType($type).".tpl"); unset($type); } -else include("Templates/Notice/all.tpl"); +else include("templates/Notice/all.tpl"); ?>




@@ -130,8 +130,8 @@ include("Templates/news.tpl");
diff --git a/build.php b/build.php index 6a5239af..5d9feea6 100644 --- a/build.php +++ b/build.php @@ -1,352 +1,2 @@ 40 && ($_GET['id'] == 99 && $village->natar == 0 || $_GET['id'] != 99))){ - header("Location: dorf2.php"); - exit; -} - -$pagestart = $generator->pageLoadTimeStart(); -$alliance->procAlliForm($_POST); -$technology->procTech($_POST); -$market->procMarket($_POST); - -if ( isset( $_GET['gid'] ) ) { - $_GET['id'] = strval( $building->getTypeField( preg_replace( "/[^a-zA-Z0-9_-]/", "", $_GET['gid'] ) ) ); -} else if ( isset( $_POST['id'] ) ) { - $_GET['id'] = preg_replace( "/[^a-zA-Z0-9_-]/", "", $_POST['id'] ); // WTF is this? -} - -if ( isset( $_POST['t'] ) ) { - $_GET['t'] = preg_replace( "/[^a-zA-Z0-9_-]/", "", $_POST['t'] ); -} - -if ( isset( $_GET['id'] ) ) { - if ( ! ctype_digit( preg_replace( "/[^a-zA-Z0-9_-]/", "", $_GET['id'] ) ) ) { - $_GET['id'] = "1"; - } - - $checkBuildings = [0, 16, 17, 25, 26, 27]; - - if ( $_GET['id'] < 19 || ( isset( $_GET['gid'] ) && ! in_array( $_GET['gid'], $checkBuildings ) ) ) { - $_GET['t'] = ""; - $_GET['s'] = ""; - } - - if ( $village->resarray[ 'f' . $_GET['id'] . 't' ] == 17 ) { - $market->procRemove( $_GET ); - } - - if ( $village->resarray[ 'f' . $_GET['id'] . 't' ] == 18 ) { - $alliance->procAlliance( $_GET ); - } - - if ( $village->resarray[ 'f' . $_GET['id'] . 't' ] == 12 || $village->resarray[ 'f' . $_GET['id'] . 't' ] == 13 || $village->resarray[ 'f' . $_GET['id'] . 't' ] == 22 ) { - $technology->procTechno( $_GET ); - } -} - -if ($session->goldclub == 1 && count($session->villages) > 1) { - if (isset($_POST['routeid'])) $routeid = $_POST['routeid']; - - if (isset($_POST['action']) && $_POST['action'] == 'addRoute') { - if ($session->gold >= 2 && $session->goldclub == 1) { - for ($i = 1; $i <= 4; $i ++) { - if (empty($_POST['r'.$i])) $_POST['r'.$i] = 0; - } - - $totalres = preg_replace("/[^0-9]/", "", $_POST['r1']) + preg_replace("/[^0-9]/", "", $_POST['r2']) + preg_replace("/[^0-9]/", "", $_POST['r3']) + preg_replace("/[^0-9]/", "", $_POST['r4']); - $reqMerc = ceil(($totalres - 0.1) / $market->maxcarry); - $second = date("s"); - $minute = date("i"); - $hour = date("G") - $_POST['start']; - - if (date("G") > $_POST['start']) $day = 1; - else $day = 0; - - $timestamp = strtotime("-$hour hours -$second second -$minute minutes +$day day"); - - if ($totalres > 0 && $_POST['tvillage'] != $village->wid && in_array($_POST['tvillage'], $session->villages) && ($_POST['start'] >= 0 && $_POST['start'] <= 23) && ($_POST['deliveries'] >= 1 && $_POST['deliveries'] <= 3)) { - $database->createTradeRoute($session->uid, $_POST['tvillage'], $village->wid, $_POST['r1'], $_POST['r2'], $_POST['r3'], $_POST['r4'], $_POST['start'], $_POST['deliveries'], $reqMerc, $timestamp); - $route = 1; - header("Location: build.php?gid=17&t=4"); - exit; - } else { - $route = 1; - header("Location: build.php?gid=17&t=4&create"); - exit; - } - } - } - - if (isset($_POST['routeid']) && isset($_POST['action']) && $_POST['action'] == 'extendRoute') { - if ($session->gold >= 2 && $session->goldclub == 1) { - $traderoute = $database->getTradeRouteUid($_POST['routeid']); - if ($traderoute == $session->uid) { - $database->editTradeRoute($_POST['routeid'], "timeleft", 604800, 1); - $newgold = $session->gold - 2; - $database->updateUserField($session->uid, 'gold', $newgold, 1); - } - } - $route = 1; - unset($routeid); - header("Location: build.php?gid=17&t=4"); - exit; - } - - if (isset($_POST['routeid']) && isset($_POST['action']) && $_POST['action'] == 'editRoute2') { - if($session->goldclub == 1){ - for ($i = 1; $i <= 4; $i ++) { - if (empty($_POST['r'.$i])) { - $_POST['r'.$i] = 0; - } - } - $totalres = preg_replace("/[^0-9]/", "", $_POST['r1']) + preg_replace("/[^0-9]/", "", $_POST['r2']) + preg_replace("/[^0-9]/", "", $_POST['r3']) + preg_replace("/[^0-9]/", "", $_POST['r4']); - $reqMerc = ceil(($totalres - 0.1) / $market->maxcarry); - - $traderoute = $database->getTradeRouteUid($_POST['routeid']); - if ($totalres > 0 && $traderoute == $session->uid && ($_POST['start'] >= 0 && $_POST['start'] <= 23) && ($_POST['deliveries'] >= 1 && $_POST['deliveries'] <= 3)) { - $database->editTradeRoute($_POST['routeid'], "wood", $_POST['r1'], 0); - $database->editTradeRoute($_POST['routeid'], "clay", $_POST['r2'], 0); - $database->editTradeRoute($_POST['routeid'], "iron", $_POST['r3'], 0); - $database->editTradeRoute($_POST['routeid'], "crop", $_POST['r4'], 0); - $database->editTradeRoute($_POST['routeid'], "start", $_POST['start'], 0); - $database->editTradeRoute($_POST['routeid'], "deliveries", $_POST['deliveries'], 0); - $database->editTradeRoute($_POST['routeid'], "merchant", $reqMerc, 0); - $second = date("s"); - $minute = date("i"); - $hour = date("G") - $_POST['start']; - if (date("G") > $_POST['start']) $day = 1; - else $day = 0; - $timestamp = strtotime("-$hour hours -$second seconds -$minute minutes +$day day"); - $database->editTradeRoute($_POST['routeid'], "timestamp", $timestamp, 0); - } - - $route = 1; - unset($routeid); - header("Location: build.php?gid=17&t=4"); - exit; - } - } - - if (isset($_POST['routeid']) && isset($_POST['action']) && $_POST['action'] == 'delRoute') { - if($session->goldclub == 1){ - $traderoute = $database->getTradeRouteUid($_POST['routeid']); - if ($traderoute == $session->uid) $database->deleteTradeRoute($_POST['routeid']); - $route = 1; - unset($routeid); - header("Location: build.php?gid=17&t=4"); - exit; - } - } -} - -if ($session->goldclub == 1) { - if (isset($_GET['t']) == 99) { - if(isset($_GET['action'])){ - if($_GET['action'] == 'addList') $create = 1; - elseif($_GET['action'] == 'addraid') $create = 2; - elseif($_GET['action'] == 'showSlot' && $_GET['eid']) $create = 3; - } - else $create = 0; - - if(isset($_GET['slid']) && $_GET['slid']){ - $FLData = $database->getFLData($_GET['slid']); - if ($FLData['owner'] == $session->uid) $checked[$_GET['slid']] = 1; - } - - if(isset($_GET['action']) && $_GET['action'] == 'deleteList') { - $database->delFarmList($_GET['lid'], $session->uid); - header("Location: build.php?id=39&t=99"); - exit; - } elseif(isset($_GET['action']) && $_GET['action'] == 'deleteSlot') { - $database->delSlotFarm($_GET['eid'], $session->uid, $_GET['lid']); - header("Location: build.php?id=39&t=99"); - exit; - } - - if(isset($_POST['action']) && $_POST['action'] == 'startRaid') $units->startRaidList($_POST); - - if(isset($_GET['slid']) && is_numeric($_GET['slid'])) { - $FLData = $database->getFLData($_GET['slid']); - if ($FLData['owner'] == $session->uid) $checked[$_GET['slid']] = 1; - } - - if(isset($_GET['evasion']) && is_numeric($_GET['evasion'])) { - $evasionvillage = $database->getVillage($_GET['evasion']); - if($evasionvillage['owner'] == $session->uid) $database->setVillageEvasion($_GET['evasion']); - - header("Location: build.php?id=39&t=99"); - exit; - } - - if (isset($_POST['maxevasion']) && is_numeric($_POST['maxevasion'])) { - $database->updateUserField($session->uid, "maxevasion", $_POST['maxevasion'], 1); - header("Location: build.php?id=39&t=99" ); - exit; - } - } -} -else $create = 0; - -if(isset($_POST['a']) == 533374 && isset($_POST['id']) == 39) $units->Settlers($_POST); - -if(isset($_GET['mode']) && $_GET['mode'] == 'troops' && isset($_GET['cancel']) && $_GET['cancel'] == 1){ - $oldmovement = $database->getMovementById($_GET['moveid']); - $now = time(); - if(($now - $oldmovement[0]['starttime']) < 90 && $oldmovement[0]['from'] == $village->wid){ - $qc = "SELECT Count(*) as Total FROM " . TB_PREFIX . "movement where proc = 0 and moveid = " . $database->escape((int)$_GET['moveid']); - $resultc = mysqli_fetch_array(mysqli_query($database->dblink, $qc), MYSQLI_ASSOC); - if($resultc['Total'] == 1){ - $q = "UPDATE " . TB_PREFIX . "movement set proc = 1 where proc = 0 and moveid = " . $database->escape((int)$_GET['moveid']); - $database->query($q); - $end = $now + ($now - $oldmovement[0]['starttime']); - $q2 = "SELECT id FROM " . TB_PREFIX . "send ORDER BY id DESC"; - $lastid = mysqli_fetch_array(mysqli_query($database->dblink, $q2)); - $database->addMovement(4, $oldmovement[0]['to'], $oldmovement[0]['from'], $oldmovement[0]['ref'], $now, $end); - } - } - header("Location: " . $_SERVER['PHP_SELF'] . "?id=" . $_GET['id']); - exit(); -} - -?> - - - - <?php echo SERVER_NAME; ?> - - - - - - - - - - - - - gpack == null || GP_ENABLE == false) { - echo " - - "; - } else { - echo " - - "; - } - ?> - - - - - -
- -
-
- -
- -
-resarray['f99t'] == 40){ - include("Templates/Build/ww.tpl"); - } elseif($village->resarray['f'.$_GET['id'].'t'] == 0 && $_GET['id'] >= 19) { - include("Templates/Build/avaliable.tpl"); - } - else { - if(isset($_GET['t'])) { - if($_GET['t'] == 1) $_SESSION['loadMarket'] = 1; - include("Templates/Build/".$village->resarray['f'.$_GET['id'].'t']."_".$_GET['t'].".tpl"); - } elseif(isset($_GET['s'])) { - include("Templates/Build/".$village->resarray['f'.$_GET['id'].'t']."_".$_GET['s'].".tpl"); - } - else include("Templates/Build/".$village->resarray['f'.$_GET['id'].'t'].".tpl"); - - if((isset($_GET['buildingFinish'])) && $_GET['buildingFinish'] == 1) { - if($session->gold >= 2) { - $building->finishAll("build.php?gid=".$_GET['id']."&ty=".$_GET['ty']); - exit; - } - } - } -}else{ -header("Location: ".$_SERVER['PHP_SELF']."?id=39"); -exit; -} -?> - -
- -



- -
-
- - -
- - -
-
-
- pageLoadTimeEnd()-$pagestart)*1000); -?> ms - -
Server time: -
-
-
- -
- - - \ No newline at end of file +require 'index.php'; \ No newline at end of file diff --git a/composer.json b/composer.json new file mode 100644 index 00000000..29ca4683 --- /dev/null +++ b/composer.json @@ -0,0 +1,10 @@ +{ + "autoload" : { + "psr-4" : { + "TravianZ\\" : "src/" + } + }, + "require" : { + "smarty/smarty" : "3.1.32" + } +} \ No newline at end of file diff --git a/composer.lock b/composer.lock new file mode 100644 index 00000000..b9aa7f61 --- /dev/null +++ b/composer.lock @@ -0,0 +1,71 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "81bdfdac2e2e68c387f6bb9cec4c6937", + "packages": [ + { + "name": "smarty/smarty", + "version": "v3.1.32", + "source": { + "type": "git", + "url": "https://github.com/smarty-php/smarty.git", + "reference": "ac9d4b587e5bf53381e21881820a9830765cb459" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/smarty-php/smarty/zipball/ac9d4b587e5bf53381e21881820a9830765cb459", + "reference": "ac9d4b587e5bf53381e21881820a9830765cb459", + "shasum": "" + }, + "require": { + "php": ">=5.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev" + } + }, + "autoload": { + "files": [ + "libs/bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "authors": [ + { + "name": "Monte Ohrt", + "email": "monte@ohrt.com" + }, + { + "name": "Uwe Tews", + "email": "uwe.tews@googlemail.com" + }, + { + "name": "Rodney Rehm", + "email": "rodney.rehm@medialize.de" + } + ], + "description": "Smarty - the compiling PHP template engine", + "homepage": "http://www.smarty.net", + "keywords": [ + "templating" + ], + "time": "2018-04-24T14:53:33+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [] +} diff --git a/config/config.php b/config/config.php new file mode 100644 index 00000000..20f9ea54 --- /dev/null +++ b/config/config.php @@ -0,0 +1,365 @@ + diff --git a/crop_finder.php b/crop_finder.php index 7b4b6780..33b5529c 100644 --- a/crop_finder.php +++ b/crop_finder.php @@ -87,12 +87,12 @@ $start_timer = $generator->pageLoadTimeStart();




@@ -219,8 +219,8 @@ include("Templates/news.tpl");
diff --git a/dorf1.php b/dorf1.php index 1fc4137b..1258da52 100644 --- a/dorf1.php +++ b/dorf1.php @@ -1,118 +1,2 @@ pageLoadTimeStart(); - -################################################################################# -## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ## -## --------------------------------------------------------------------------- ## -## Filename dorf1.php ## -## Developed by: Dzoki ## -## License: TravianX Project ## -## Copyright: TravianX (c) 2010-2011. All rights reserved. ## -## ## -################################################################################# -use App\Utils\AccessLogger; - -include_once("GameEngine/Village.php"); -AccessLogger::logRequest(); - -if(isset($_GET['ok'])){ - $database->updateUserField($session->uid,'ok', 0, 1); - $_SESSION['ok'] = '0'; -} - -if(isset($_GET['newdid'])) { - $_SESSION['wid'] = $_GET['newdid']; - $database->query("UPDATE ".TB_PREFIX."users SET village_select=".$database->escape((int) $_GET['newdid'])." WHERE id=".$session->uid); - header("Location: ".$_SERVER['PHP_SELF']); - exit; -} -else $building->procBuild($_GET); -?> - - - - <?php echo SERVER_NAME . ' - Village overview » ' . $village->vname; ?> - - - - - - - - - - - - gpack == null || GP_ENABLE == false) { - echo " - - "; - } else { - echo " - - "; - } - ?> - - - - - -
- -
-
- -
- -
-

vname; if($village->loyalty!='100'){ if($village->loyalty>'33'){ $color="gr"; }else{ $color="re"; } ?>
loyalty); ?>%

-
capital!='0') { echo "(Capital)"; } ?>
- -
-

-NewBuilding) include("Templates/Building.tpl"); -?> -
-



- -
-
-
- -
- - -
-
-
- pageLoadTimeEnd()-$start_timer)*1000); -?> ms - -
-
-
-
- -
- - +require 'index.php'; diff --git a/dorf2.php b/dorf2.php index 656a422f..5d9feea6 100644 --- a/dorf2.php +++ b/dorf2.php @@ -1,106 +1,2 @@ pageLoadTimeStart(); - -################################################################################# -## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ## -## --------------------------------------------------------------------------- ## -## Filename dorf2.php ## -## Developed by: Dzoki ## -## License: TravianX Project ## -## Copyright: TravianX (c) 2010-2011. All rights reserved. ## -## ## -################################################################################# -use App\Utils\AccessLogger; - -include_once("GameEngine/Village.php"); -AccessLogger::logRequest(); - -if(isset($_GET['newdid'])) { - $_SESSION['wid'] = $_GET['newdid']; - $database->query("UPDATE ".TB_PREFIX."users SET village_select=".$database->escape((int) $_GET['newdid'])." WHERE id=".$session->uid); - header("Location: ".$_SERVER['PHP_SELF']); - exit; -} -else $building->procBuild($_GET); - -?> - - - - - <?php echo SERVER_NAME. ' - Village Centre » ' . $village->vname ?> - - - - - - - - - - - - gpack == null || GP_ENABLE == false) { - echo " - - "; - } else { - echo " - - "; - } - ?> - - - - - -
- -
-
- -
- -
-

vname; if($village->loyalty!='100'){ if($village->loyalty>'33'){ $color="green"; }else{ $color="red"; } ?>
loyalty); ?>%

-NewBuilding) { - include("Templates/Building.tpl"); -} -?> -
-



- -
-
-
- -
- -
-
-
- pageLoadTimeEnd()-$start_timer)*1000); -?> ms - -
-
-
-
-
- - +require 'index.php'; \ No newline at end of file diff --git a/dorf3.php b/dorf3.php index 58db23a2..1258da52 100644 --- a/dorf3.php +++ b/dorf3.php @@ -1,125 +1,2 @@ pageLoadTimeStart(); - -################################################################################# -## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ## -## --------------------------------------------------------------------------- ## -## Filename dorf3.php ## -## Developed by: Dzoki ## -## License: TravianX Project ## -## Copyright: TravianX (c) 2010-2011. All rights reserved. ## -## ## -################################################################################# - - -use App\Utils\AccessLogger; - -include_once("GameEngine/Village.php"); -AccessLogger::logRequest(); - -if(isset($_GET['newdid'])) { - $_SESSION['wid'] = $_GET['newdid']; - $database->query("UPDATE ".TB_PREFIX."users SET village_select=".$database->escape((int) $_GET['newdid'])." WHERE id=".$session->uid); - if(isset($_GET['s'])){ - header("Location: ".$_SERVER['PHP_SELF']."?s=".$_GET['s']); - exit; - }else{ - header("Location: ".$_SERVER['PHP_SELF']); - exit; -} -} -?> - - - - - <?php echo SERVER_NAME ?> - Cross-Village Totals - - - - - - - - - - - - gpack == null || GP_ENABLE == false) { - echo " - - "; - } else { - echo " - - "; - } - ?> - - - - - -
- -
-
- -
- -
- -plus){ - if(isset($_GET['s'])){ - if($_GET['s'] == 2){ - include("Templates/dorf3/2.tpl"); - }elseif($_GET['s'] == 3){ - include("Templates/dorf3/3.tpl"); - }elseif($_GET['s'] == 4){ - include("Templates/dorf3/4.tpl"); - }elseif($_GET['s'] == 5){ - include("Templates/dorf3/5.tpl"); - } - }else{ - include("Templates/dorf3/1.tpl"); - } -}else{ - include("Templates/dorf3/noplus.tpl"); -} -?> -
- -



- -
-
-
- -
- -
-
-
- pageLoadTimeEnd()-$start_timer)*1000); -?> ms - -
-
-
-
-
- - +require 'index.php'; diff --git a/img/admin/index.php b/img/admin/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/admin/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/admin/r/index.php b/img/admin/r/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/admin/r/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/bezahlung/index.php b/img/bezahlung/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/bezahlung/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/en/a/index.php b/img/en/a/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/en/a/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/en/index.php b/img/en/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/en/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/en/s/index.php b/img/en/s/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/en/s/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/en/t2/index.php b/img/en/t2/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/en/t2/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/en/tut/index.php b/img/en/tut/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/en/tut/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/en/welten/index.php b/img/en/welten/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/en/welten/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/index.php b/img/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/t4n/index.php b/img/t4n/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/t4n/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/tutorial/elements/index.php b/img/tutorial/elements/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/tutorial/elements/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/tutorial/images/index.php b/img/tutorial/images/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/tutorial/images/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/tutorial/index.php b/img/tutorial/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/tutorial/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/un/a/index.php b/img/un/a/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/un/a/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/un/g/index.php b/img/un/g/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/un/g/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/un/h/index.php b/img/un/h/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/un/h/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/un/index.php b/img/un/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/un/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/un/l/index.php b/img/un/l/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/un/l/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/un/res/index.php b/img/un/res/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/un/res/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/un/s/index.php b/img/un/s/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/un/s/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/img/un/u/index.php b/img/un/u/index.php deleted file mode 100644 index 98297c7a..00000000 --- a/img/un/u/index.php +++ /dev/null @@ -1,19 +0,0 @@ - -
-
-

404 - File not found

- Not Found
-

We looked 404 times already but can't find anything, Not even an X marking the spot.

-

This system is not complete yet. So the page probably does not exist.


-
-
\ No newline at end of file diff --git a/index.php b/index.php index 17392619..e0a3729a 100644 --- a/index.php +++ b/index.php @@ -1,300 +1,15 @@ - - - - <?php echo SERVER_NAME; ?> - - - - - - - - - - - - - -
-
-
- - -
- - - -
- - Travian 4 - -
- -
- - -
-
-
-
-
-

-

-

-
-
- - - - - - - - - - - - - - - - - - - - -
:
: ".(time() - (3600*24))." AND tribe IN(1, 2, 3)"); - echo !empty($return) ? mysqli_fetch_assoc($return)['Total'] : 0; - - ?>
: ".(time() - (60*10))." AND tribe IN(1, 2, 3)"); - echo ($online = !empty($return) ? mysqli_fetch_assoc($return)['Total'] : 0); - - ?>
-
-
-

:

-
    -
  • -
  • -
  • -
-
-
-
-
-

- -
-
    -
  • Screenshot
  • -
  • Screenshot
  • -
  • Screenshot
  • -
  • Screenshot
  • -
  • Screenshot
  • -
  • Screenshot
  • -
  • Screenshot
  • -
-
-
-
-

-
-
-
-
-
-
- -
-
-
-
-

- Close -
    -
  • - World" /> -
    :
    -
    :
    -
    -
    -
  • -
- -
-
-
-
-
-

- Close -
    -
  • - World" /> -
    :
    -
    :
    -
    -
    -
  • -
- -
-
-
-
-
- Close -

-
- -
-
-
-
-
-

- Close -
-

- Screenshot -
-
- - - -
-
- - - +$frontController = new FrontController(); \ No newline at end of file diff --git a/install/index.php b/install/index.php index 7586f6a0..9c56a97b 100644 --- a/install/index.php +++ b/install/index.php @@ -131,7 +131,7 @@ function proceed() {
- +
diff --git a/karte.php b/karte.php index 72252678..de0c91e2 100644 --- a/karte.php +++ b/karte.php @@ -75,11 +75,11 @@ else{
- +
-getMapCheck($_GET['d']) == $_GET['c']) include("Templates/Map/vilview.tpl"); + if($generator->getMapCheck($_GET['d']) == $_GET['c']) include("templates/Map/vilview.tpl"); else { header("Location: dorf1.php"); @@ -87,14 +87,14 @@ if(isset($_GET['d']) && !empty($_GET['d']) && isset($_GET['c']) && !empty($_GET[ } } else { - include("Templates/Map/mapview.tpl"); + include("templates/Map/mapview.tpl"); } ?>



@@ -103,8 +103,8 @@ include("Templates/news.tpl");
diff --git a/karte2.php b/karte2.php index 0441daee..a97ae8fc 100644 --- a/karte2.php +++ b/karte2.php @@ -34,7 +34,7 @@ if($session->plus){ + include("templates/Map/mapviewlarge.tpl");?>
diff --git a/login.php b/login.php index fbb02e71..db71b01b 100644 --- a/login.php +++ b/login.php @@ -1,241 +1,2 @@ - - - - - <?php echo SERVER_NAME; ?> - Login - - - - - - - - - - - - - - - - - -
-
-
- -
- - - -
- -
- -
-
- - -
- - -
- - +pageLoadTimeStart(); - -################################################################################# -## -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =- ## -## --------------------------------------------------------------------------- ## -## Filename logout.php ## -## Developed by: Dzoki ## -## License: TravianX Project ## -## Copyright: TravianX (c) 2010-2011. All rights reserved. ## -## ## -################################################################################# - - -use App\Utils\AccessLogger; - -include("GameEngine/Account.php"); -AccessLogger::logRequest(); - -?> - - - - <?php echo SERVER_NAME; ?> - Logged Out - - - - - - - - - - - - gpack == null || GP_ENABLE == false) { - echo " - - "; - } else { - echo " - - "; - } - ?> - - - - - -
- -
-
- - -
- -
-

Logout successful.

Thank you for your visit.

- -

If other people use this computer too, you should delete your cookies for your own safety:
» delete cookies

-
- -



- -
-
-
- -
- - -
-
-
- pageLoadTimeEnd()-$start_timer)*1000); -?> ms - -
-
-
-
-
- - +require 'index.php'; diff --git a/maintenance.php b/maintenance.php index 341062d4..4a7d36f6 100644 --- a/maintenance.php +++ b/maintenance.php @@ -82,9 +82,9 @@ if($_SESSION['ok'] == 2){
- +
- +

Presently, the server is not available due to maintenance.

@@ -92,9 +92,9 @@ if($_SESSION['ok'] == 2){




@@ -102,8 +102,8 @@ if($_SESSION['ok'] == 2){
diff --git a/manual.php b/manual.php index bf7e12e5..c1321403 100644 --- a/manual.php +++ b/manual.php @@ -41,16 +41,16 @@ if (isset($_GET['typ']) && !ctype_digit($_GET['typ'])) { $_GET['typ'] = null; } if(!isset($_GET['typ']) && !isset($_GET['s'])) { - include("Templates/Manual/00.tpl"); + include("templates/Manual/00.tpl"); } else if (!isset($_GET['typ']) && $_GET['s'] == 1) { - include("Templates/Manual/00.tpl"); + include("templates/Manual/00.tpl"); } else if (!isset($_GET['typ']) && $_GET['s'] == 2) { - include("Templates/Manual/direct.tpl"); + include("templates/Manual/direct.tpl"); } else if (isset($_GET['typ']) && $_GET['typ'] == 5 && $_GET['s'] == 3) { - include("Templates/Manual/medal.tpl"); + include("templates/Manual/medal.tpl"); } else { if(isset($_GET['gid'])) { diff --git a/massmessage.php b/massmessage.php index 67ad6d1c..3a78fec8 100644 --- a/massmessage.php +++ b/massmessage.php @@ -155,9 +155,9 @@ if (isset($_GET['send']) && isset($_GET['from']))
- +
- +