[Release] DTWeb 2.0 Release (r00tme version)

Status
Not open for further replies.
Upon Installation of the new version . . .
Problems:
- When going to Download, Statistics, Information it's stuck at "Load Web Module . . . Please wait" but in v.4 it is ok.
- When going to Auction . . . Access forbidden! error 403 but in v.4 its ok.

Your problem is caused by .htaccess file, you can remove it or you can use the latest version 0.71 in my previous post.
 
Last edited:
  • Like
Reactions: CAPITOL
I have it developed, but it needs some improvements before including it into this web and this will take some time, something I do not have at the moment.
 
Last edited:
Whats new in v0.75:​
Fixes
- Fixed total users in Guild Ranking - Bug Reported by Eraser
- Fixed Some market link bugs and removed select from browser field - Suggestion/Report given by Eraser
- Fixed unique serial number with jewels
Updates
- Now you do not have to add administrator account manually. It will be added automatically,
you need to set it up into the config file.
- Now they are 3 GM levels: Administrator- level 666, Trusted GM - level 2, New GM - level 1. Each level has different access.
New Modules:

GM Admin Panel (Some functions from DAMIAN admin panel and Savoy Inventory view have been used)
- Item Adder with unique serial number for the items always starting with '666xxxxx'
- Inventory view with item serial number viewing (Must be selected 1 in web config)
- Edit Account and Character: Resources, Adding Boxes to the GM Bank, Set Vip, Set GM level and IP, Check Login Logs, Move Char to specific Map coordinates and etc.
- Clear Warehouse
- Delete a specific item from warehouse
- Switch session with selected account
- Accounts and Character partial and full name search with pagination
- GM and Administrator search with pagination
- Item adder detailed logs: item added, date added, IP, gm account, added to account
This panel needs a lot of improvements, which will be added later. Anyway, at this stage it works excellent and no issues have been reported yet. If you find any, please do not hesitate to contact me.

GM Box Adder (Only GM level 1 and 2 can use this module)
Explanation:
This module has been designed to make your admin life easier. It takes a control of the boxes given to the GM's and saving your time.
Every GM has own Box Bank Storage which is controlled by the Administrator. Only the administrator can add boxes into the GM box bank.
The admin can setup a specific timing for each GM level and the boxes amount which can be added for this time.
- Setup specific timing for every GM level 1 or 2
- Setup specific box limitations for every GM level
- Unique serial numbers for the boxes
- Detailed logs (gm account,to whom is added,GM IP, date added, what type of boxes, box amount)


d3ad04d285c24695af8c1aef9529dbfa.png


5b824e6580294a22926b744ad432b0bf.png


bf804ace2f3d4f4685ec5702b08ebc7e.png


a519b4fbd80d43be9c18df6f5fe10c86.png



Download Link:
DT web 2. (rtme v.75) -fixed.rar - Google Диск
 
Last edited:
@r00tme Respect Project... Friend Add Pm GamesMaster add Report Character Acc Please
 
Hello I have Two problem Add Box WOrking Rank 1 2 Is Not Working For Administrator 2 problem is connection fail edit acc check photo
image.png

image.png
 
Do you read the instructions?(tmi)
You can not use this module as an Administrator. As an administrator what's the point of this module while you have item editor to add whatever you want? This module is for GM-s to get boxes from the store. Think before posting such questions, or at least read the instructions first. Do not persuade me to think that @feature21 is right about Yoda...

Administrator level: 666
Trusted GM level : 2
Beginner GM level : 1
You can set it up manualy from GM_Accounts table or just use the Admin panel provided and change the account status. Then log in with this account and the module will work.

Do not forget that you have a configurations in the config.php for this module.

PHP:
    //GM Box Adder Config
	
	$option['Box_timer_test']    = 0;       // *Imortant to be 0, If it is 1 the timer will be 1 minute for testing
	//////////////////////////
	
	$option['Box_timer_GM1']     = 24 ;     // Box Timer for GM level 1 /in hours/
	$option['Box_timer_GM2']     = 12 ;     // Box Timer for GM level 2 /in hours/
	
	/////////////////////////                         
	$option['GM_1_box1']         = 10 ;     // How many boxes +1 GM level 1 can add on day
	$option['GM_1_box2']         = 7  ;     // How many boxes +2 GM level 1 can add on day
	$option['GM_1_box3']         = 5  ;     // How many boxes +3 GM level 1 can add on day
	$option['GM_1_box4']         = 2  ;     // How many boxes +4 GM level 1 can add on day
	$option['GM_1_box5']         = 1  ;     // How many boxes +5 GM level 1 can add on day
	//////////////////////////              
	$option['GM_2_box1']         = 20 ;     // How many boxes +1 GM level 2 can add on day
	$option['GM_2_box2']         = 14 ;     // How many boxes +2 GM level 2 can add on day
	$option['GM_2_box3']         = 10 ;     // How many boxes +3 GM level 2 can add on day
	$option['GM_2_box4']         = 4  ;     // How many boxes +4 GM level 2 can add on day
	$option['GM_2_box5']         = 2  ;     // How many boxes +5 GM level 2 can add on day
	////////////////////////
 
Last edited:
To keep you interested and as I promised, three new templates are added into this update.\ along with some other things.

Update Includes:

- Now the Lotto has an option to choose how many balls to be displayed in each row to avoid future design issues.
- Now the Lotto has green color for the selected numbers to be more readable. I am planning future improvements to this module as well.
e272e622f58f407f902f680ddba12685.png

http://image.prntscr.com/image/e272e622f58f407f902f680ddba12685.png
bf30eadbbdd64bd4a84e36f90d70c87c.png

http://image.prntscr.com/image/bf30eadbbdd64bd4a84e36f90d70c87c.png

- New module "Send gift" along with user information module has been added (Suggestion given by found)

- Now you can look/redirect on to the user market items from the ranking tables



3 New Templates:

- Elfita It's very interesting template and I have spent a day to code it properly. It has a very wide options for future developments, such as event timer on the front panel with the latest 5 market items, facebook links, rankings and etc.

JQSz1sdQEctVOCRj65MG--__236sjhi3KESVSoK8kaJlIA25Bv_IZc-0qEXSlEMrZZEeKgaP8I3C4IU=w1920-h942-rw

elf.png - Google Диск

c0456dce220e46a5a2ae5c7d43d42c0b.png

1154e51f6c384402b032f210c0a6dd1c.png

Screenshot by Lightshot



- Legend Clean but dark design with simple main menus
ab8de72661fa425ca2da8bc3eec222c6.png

http://image.prntscr.com/image/ab8de72661fa425ca2da8bc3eec222c6.png

3f4e1fea8fcf4768b8daeb485b79100c.png

http://image.prntscr.com/image/3f4e1fea8fcf4768b8daeb485b79100c.png

- Respect Very bright and soft look template with clean and tidy design, really like it.
59d866136c05473b9a62a906ff137bae.png

http://image.prntscr.com/image/59d866136c05473b9a62a906ff137bae.png
88187875b37b4d259ecb4f33401fb603.png

http://image.prntscr.com/image/88187875b37b4d259ecb4f33401fb603.png





Please note that these templates have been originally developed for other CM system's such as DMN, so keep this in mind when/if you use it.

Also this templates are not finished at 100% so you may find some of the tables not in place or with missing pieces or something. I do not have a time to fix all the details, but at this stage they are in full working order which is a good basis to develop your own well finished project.


Download Link:

https://drive.google.com/file/d/0B05hygU4o1Ncbjd1QU5LWll1Uk0/view?usp=sharing
 
Ban / Warning Module added

Ban/Warn character and/or account module is added into DTWeb 2.0 r00tme v.0.79

Features:
- Only one module for Warn / Ban character or account
- Fully automatic system
- Dynamic search account/character with suggestions
- Countdown timer, it starts whenever the ban/warning is active
- Postpone your ban/warning table for later time and go on holiday, the script will do his work while you ate drinking cocktails somewhere :)
- Choose your ban/warning time duration with no limits with datetime picker
- Option to stack more than just three warning reasons before the ban get started (option is added into the main config)
Video : DT Web 2. Automate Ban / Warning System module - YouTube


ec908bba2e804686bbccc17a757a9c12.png



Download Link:: DT web 2. (rtme v.79).rar - Google Диск
 
Адмирации за положените труд и време (clap)
Имам само една забележка - помисли как да направиш представянето в таблицата така че да си подхожда с дизайна на сайта
 
  • Like
Reactions: dota-sdso
Най-вероятно ще добавя още няколко теми в бъдеще, но не мисля вече при всеки нов модул да продължавам да оправям стиловете на всяка тема по отделно от тук нататък в детайли. Все пак се касае за рендиране на съндъци, акцион, таймери, маркета и т.н, което при всяка тема си иска прецицно заиграване не е само до таблиците.

Все пак темите станаха четири (без да броим стандартните) и съм ги докарал до едно фунцкионално ниво в приличен вид и с приравнени имена на стиловете, така че който иска да ги използва ще си ги доработва допълнително според желанията.
 
  • Like
Reactions: pafa7a
Понеже гледам, че сайтът работи само с PHP 5.3 мога да ти помогна. Преди време си поиграх да напиша Polyfill за mssql функциите като използвам sqlsrv и сега моите сайтове работят с PHP 7. Ако искаш да подобрим съвместимостта може да ти дам кода :)
 
  • Like
Reactions: dota-sdso
Това би било, чудесно естествено бих искал да я подобрим. Пращай на лично :)
 
Скрипта съм го писал за PHP 5.6 и PHP 7, но може да тръгва и на по-стари версии.

mssql2sqlsrv.php
PHP:
<?php
if (!class_exists('mssqlQuery')) {
    class mssqlQuery
    {
        private $data = [];
        private $rowsCount = 0;
        private $fieldsCount = null;

        public function __construct($resource)
        {
            if ($resource) {
                while ($data = sqlsrv_fetch_array($resource)) {
                    $this->addData($data);
                }

                sqlsrv_free_stmt($resource);
            }
        }

        public function getRowsCount()
        {
            return $this->rowsCount;
        }

        public function getFieldsCount()
        {
            if ($this->fieldsCount === null) {
                $this->fieldsCount = 0;
                $data = reset($this->data);

                if ($data) {
                    foreach ($data as $key => $value) {
                        if (is_numeric($key)) {
                            $this->fieldsCount++;
                        }
                    }
                }
            }

            return $this->fieldsCount;
        }

        private function addData($data)
        {
            $this->rowsCount++;
            $this->data[] = $data;
        }

        public function getData()
        {
            return $this->data;
        }

        public function shiftData($resultType = SQLSRV_FETCH_BOTH)
        {
            $data = array_shift($this->data);

            if (!$data) {
                return false;
            }

            if ($resultType == SQLSRV_FETCH_NUMERIC) {
                foreach ($data as $key => $value) {
                    if (!is_numeric($key)) {
                        unset($data[$key]);
                    }
                }
            } else {
                if ($resultType == SQLSRV_FETCH_ASSOC) {
                    foreach ($data as $key => $value) {
                        if (is_numeric($key)) {
                            unset($data[$key]);
                        }
                    }
                }
            }

            return $data;
        }
    }
}


if (!function_exists('mssql_connect')) {
    function mssql_connect($servername, $username, $password, $newLink = false)
    {
        if (empty($GLOBALS['_sqlsrvConnection'])) {
            $connectionInfo = [
                "CharacterSet" => "UTF-8",
                "UID" => $username,
                "PWD" => $password,
                "ReturnDatesAsStrings" => true
            ];

            $GLOBALS['_sqlsrvConnection'] = sqlsrv_connect($servername, $connectionInfo);

            if ($GLOBALS['_sqlsrvConnection'] === false) {
                foreach (sqlsrv_errors() as $error) {
                    echo "SQLSTATE: " . $error['SQLSTATE'] . "<br />";
                    echo "code: " . $error['code'] . "<br />";
                    echo "message: " . $error['message'] . "<br />";
                }
            }
        }

        return $GLOBALS['_sqlsrvConnection'];
    }
}

if (!function_exists('mssql_pconnect')) {
    function mssql_pconnect($servername, $username, $password, $newLink = false)
    {
        if (empty($GLOBALS['_sqlsrvConnection'])) {
            $connectionInfo = [
                "CharacterSet" => "UTF-8",
                "UID" => $username,
                "PWD" => $password,
                "ReturnDatesAsStrings" => true
            ];

            $GLOBALS['_sqlsrvConnection'] = sqlsrv_connect($servername, $connectionInfo);

            if ($GLOBALS['_sqlsrvConnection'] === false) {
                foreach (sqlsrv_errors() as $error) {
                    echo "SQLSTATE: " . $error['SQLSTATE'] . "<br />";
                    echo "code: " . $error['code'] . "<br />";
                    echo "message: " . $error['message'] . "<br />";
                }
            }
        }

        return $GLOBALS['_sqlsrvConnection'];
    }
}

if (!function_exists('mssql_close')) {
    function mssql_close($linkIdentifier = null)
    {
        sqlsrv_close($GLOBALS['_sqlsrvConnection']);
        $GLOBALS['_sqlsrvConnection'] = null;
    }
}

if (!function_exists('mssql_select_db')) {
    function mssql_select_db($databaseName, $linkIdentifier = null)
    {
        $query = "USE " . $databaseName;

        $resource = sqlsrv_query($GLOBALS['_sqlsrvConnection'], $query);

        if ($resource === false) {
            if (($errors = sqlsrv_errors()) != null) {
                foreach ($errors as $error) {
                    echo "SQLSTATE: " . $error['SQLSTATE'] . "<br />";
                    echo "code: " . $error['code'] . "<br />";
                    echo "message: " . $error['message'] . "<br />";
                }
            }
        }

        return $resource;
    }
}

if (!function_exists('mssql_query')) {
    function mssql_query($query, $linkIdentifier = null, $batchSize = 0)
    {
        if (preg_match('/^\s*exec/i', $query)) {
            $query = 'SET NOCOUNT ON;' . $query;
        }

        $resource = sqlsrv_query($GLOBALS['_sqlsrvConnection'], $query);

        if ($resource === false) {
            if (($errors = sqlsrv_errors()) != null) {
                foreach ($errors as $error) {
                    echo "SQLSTATE: " . $error['SQLSTATE'] . "<br />";
                    echo "code: " . $error['code'] . "<br />";
                    echo "message: " . $error['message'] . "<br />";
                }
            }
        }

        return new mssqlQuery($resource);
    }
}

if (!function_exists('mssql_fetch_array')) {
    function mssql_fetch_array($mssqlQuery, $resultType = SQLSRV_FETCH_BOTH)
    {
        if (!$mssqlQuery instanceof mssqlQuery) {
            return null;
        }

        switch ($resultType) {
            case 'MSSQL_BOTH' :
                $resultType = SQLSRV_FETCH_BOTH;
                break;
            case 'MSSQL_NUM':
                $resultType = SQLSRV_FETCH_NUMERIC;
                break;
            case 'MSSQL_ASSOC':
                $resultType = SQLSRV_FETCH_ASSOC;
                break;
        }

        return $mssqlQuery->shiftData($resultType);
    }
}

if (!function_exists('mssql_fetch_assoc')) {
    function mssql_fetch_assoc($mssqlQuery)
    {
        if (!$mssqlQuery instanceof mssqlQuery) {
            return null;
        }

        return $mssqlQuery->shiftData(SQLSRV_FETCH_ASSOC);
    }
}

if (!function_exists('mssql_fetch_row')) {
    function mssql_fetch_row($mssqlQuery)
    {
        if (!$mssqlQuery instanceof mssqlQuery) {
            return null;
        }

        return $mssqlQuery->shiftData(SQLSRV_FETCH_NUMERIC);
    }
}

if (!function_exists('mssql_num_rows')) {
    function mssql_num_rows($mssqlQuery)
    {
        if (!$mssqlQuery instanceof mssqlQuery) {
            return null;
        }

        return $mssqlQuery->getRowsCount();
    }
}

if (!function_exists('mssql_num_fields')) {
    function mssql_num_fields($mssqlQuery)
    {
        if (!$mssqlQuery instanceof mssqlQuery) {
            return null;
        }

        return $mssqlQuery->getFieldsCount();
    }
}

if (!function_exists('mssql_fetch_object')) {
    function mssql_fetch_object($mssqlQuery)
    {
        if (!$mssqlQuery instanceof mssqlQuery) {
            return null;
        }

        return (object)$mssqlQuery->shiftData(SQLSRV_FETCH_ASSOC);
    }
}

if (!function_exists('mssql_get_last_message')) {
    function mssql_get_last_message()
    {
        preg_match('/^\[Microsoft.*SQL.*Server\](.*)$/i', sqlsrv_errors(SQLSRV_ERR_ALL)[0]['message'], $matches);
        return $matches[1];
    }
}

if (!function_exists('mssql_result')) {
    function mssql_result($mssqlQuery, $row = 0, $field = 0)
    {
        if (!$mssqlQuery instanceof mssqlQuery) {
            return null;
        }

        return $mssqlQuery->getData()[$row][$field];
    }
}

Ако ползваш по-ново PHP и ако вземаш Vault Hex-а с функцията mssql_get_last_message() ще трябва да промениш кода и да използваш примерно
PHP:
$vaultHex = '0x' . strtoupper(bin2hex(mssql_fetch_row(mssql_query("SELECT [Items] FROM [warehouse] WHERE [AccountID]='" . $acc . "'"))[0]));
 
Last edited:
With this new Script i cant create with MuMaker account, but in web yes
when i wanna loget in i write my pass and account and its saying to me Account invalid.
With old Script i can registred in web too and in MuMkaer too and i logged in to game... what i must to do ?
 
Status
Not open for further replies.