-
Posts
33 -
Joined
-
Last visited
-
Days Won
2 -
Feedback
0%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by cndR_s
-
-
I really do not see the difficult for blocking m2bob. Client argument metamorphic + find pattern in files programs , when m2bob make a dir in directory.
- 1
-
56 minutes ago, .NyanCat said:
Hey please send me your skype addy. Im interested in the pro version
Send me a PM.
-
6 minutes ago, charparodar said:
Do you need any help translating to Portugese (PT-PT)?
Thanks for the release
Yes, you can. Request my skype in PM.
-
-
On 12/08/2016 at 2:58 PM, ladcatalin said:
Can you give me this files? I dont have this in extern/include/boost
boost/property_tree/ptree.hpp boost/property_tree/ini_parser.hpp
Depends of your visual studio version. I using vs2010, anyway : https://sourceforge.net/projects/boost/files/boost/1.61.0/
- 1
- 4
-
18 hours ago, ladcatalin said:
This looks very good, but i have a error when i try to compile binary source:
Error 1 fatal error C1083: Cannot open include file: 'boost/property_tree/ptree.hpp': No such file or directory e:\Sursa server\SursaLauncher BUNA\UserInterface\PythonSystem.cpp 6 UserInterface Error 2 error BK1506 : cannot open file '.\Release\PythonSystem.sbr': No such file or directory BSCMAKE UserInterface
You need library boost in extern folder
-
-
1 minute ago, Tr3l said:
I pressed the play and the error occurs and does not turn that down .
Run administrator mode or verify if you antivirus block application (GameLauncher.exe)
Spoiler -
1 hour ago, Crystal™ said:
Please can you share with us the GameLauncher.exe's source?
Only Paid, sorry
37 minutes ago, Tr3l said:Romanian (RO)
Why not download the files ?
You may have set config wrong.
Spoiler -
47 minutes ago, .T4Ump said:
Can i translate to my langauge? Czech.
Yes, add skype.
-
1 hour ago, Tr3l said:
No download :-? Delete " Face" and leave only the " Can not close " in there as well .
Which language? I would like to help translate the language of your country?
SpoilerSpoiler -
-
Added Rev. 090816.2
[ChangeLog 090816.2]
- Removed limit bandwith of Community Version: because failing to download multiple files/ buffer fail.
-
Added Rev. 090816.1
[ChangeLog 090816.1]
- Fix Application crash when all files updated.
-
#Bug (only community version) : When all files updates, application crash . (Correction in progress)
-
Spoiler
Features
- Written in c++, best performance with multithreading
- Beautiful GUI, inspired in Blizzard
- All errors and exceptions throw user friendly messages
- International Multilanguage
- Fast download files
- Method of Hash (CRC32) by default
- Banner in home (Promotion, Event, New Image, etc...) + News / Patch notes
- Initialize client with arguments
- Tool user friendly for generate serverlist hashs
- New config game for Metin built-in (Requirements: metin2client source)
Languages Availables
- English (US) (Full language correctly)
- Espanhol (ES) (Translate by : Jesús )
- Portuguese (BR) (Full language correctly)
- Romanian (RO) (Translate by: Abel (Tiger) )
- German (DE) (Translate by : Core | Simplex2 )
- Turkish (TR) (Need review)
- Czech (Translate by : Joseph Lochy )
If your language needs review, or you want to help translate the language of their country to add to the list, you can contact me by skype and help correct .
Some Community version limitations
- News/PatchNotes maximum 255 characters
- Without support for client initialize with arguments
- Without change Icon Application
- Without change Logo (Metin2 logo default)
- Without change Background
- Without custom Layout
- Without possibility of choose hash method
- Receive updates direct in Topic/forum
- Without support Skype
- Binarie name default for initialize: metin2client.exeINSTALL PART SERVER
Rev: 140816 :
[ChangeLog 090816.1]
- Fix Application crash when all files updated.
[ChangeLog 090816.2]
- Removed limit bandwith of Community Version: because failing to download multiple files/ buffer fail.
[ChangeLog 140816]
- Added Language Czech (translate by : Joseph Lochy )
- Update Language Spanish ( translate by : Jesús )
- Update Language Romanian ( translate by: Abel (Tiger) )
VirusScan :
1. In his HOST, upload the files from the "Host Files"
2. Open GameLauncher_Manager.exe select "TAB" Server Hash.
3. Select the client directory and generate the Hash
4. Put the new "serverlist.data" in /gamelauncher/conf/
Structure
[patch.notes] = Here you put an text (news/patch notes)
[serverlist.data] = Responsible for client hash
[slide1.png] = Banner image. The extension must be .png and same size .5. Put the client files in the folder "/gamelauncher/data/" (host)
INSTALL PART CLIENT
Structure
[ldata] = Folder that stores settings (This folder is the one that does not create automatic. It must exist for GameLauncher work.)
[gameconfig.ini] = Metin2 client config
[LauncherConfig.ini] = Launcher Config
[serverconf.data] = Host configs1. Open GameLauncher_Manager.exe and select "TAB" Config for GameLauncher
Fill in the fields
Homepage: Here you put the link to your website. This link must be prefixed with http://
URL Hosting: Here you put the link from the main folder where you will create the folder "gamelauncher" e.g. metin2server.net (public_html)2. Click in "Save". Will generate a file "serverconf.data".Place in the "ldata" folder within the client.
INSTALL PART CLIENT SOURCE
1. In "PythonSystem.cpp", put in header
//Boost #include <boost/property_tree/ptree.hpp> #include <boost/property_tree/ini_parser.hpp> #include <boost/lexical_cast.hpp> #define ENABLE_NEWGAMECONFIG
2. In "PythonSystem.cpp" search function "LoadConfig()"
And replace with :bool CPythonSystem::LoadConfig() { #ifdef ENABLE_NEWGAMECONFIG boost::property_tree::ptree r_pt; /** * File exists? */ try { boost::property_tree::ini_parser::read_ini("ldata/gameconfig.ini", r_pt); //resolution m_Config.width = r_pt.get<DWORD>("Metin2.WIDTH"); m_Config.height = r_pt.get<DWORD>("Metin2.HEIGHT"); //frequency m_Config.frequency = r_pt.get<DWORD>("Metin2.FREQUENCY"); //gamma m_Config.gamma = r_pt.get<int>("Metin2.GAMMA"); //windowmode //fullscreen m_Config.bWindowed = r_pt.get<bool>("Metin2.WINDOW_MODE"); //software cursor m_Config.is_software_cursor = r_pt.get<bool>("Metin2.SOFTWARE_CURSOR"); //Sound Music m_Config.music_volume = r_pt.get<float>("Metin2.MUSIC", 0.0f); //Sound Effects m_Config.voice_volume = (char)r_pt.get<int>("Metin2.EFFECTS"); //fog m_Config.iDistance = r_pt.get<int>("Metin2.VISIBILITY"); //tln m_Config.bSoftwareTiling = (r_pt.get<std::string>("Metin2.SOFTWARE_TILING").length() > 1 ? 0 : r_pt.get<int>("Metin2.SOFTWARE_TILING")); //INT in byte //shadow m_Config.iShadowLevel = r_pt.get<int>("Metin2.SHADOW"); //IME GAME m_Config.bUseDefaultIME = r_pt.get<bool>("Metin2.GAME_IME"); //IME Extern m_Config.bUseDefaultIME = r_pt.get<bool>("Metin2.EXTERN_IME"); //Others m_Config.bDecompressDDS = r_pt.get<bool>("Metin2.DECOMPRESSED_TEXTURE"); m_Config.bViewChat = r_pt.get<bool>("Metin2.VIEW_CHAT"); m_Config.bAlwaysShowName = r_pt.get<bool>("Metin2.ALWAYS_VIEW_NAME"); m_Config.bShowDamage = r_pt.get<bool>("Metin2.SHOW_DAMAGE"); m_Config.bShowSalesText = r_pt.get<bool>("Metin2.SHOW_SALESTEXT"); m_Config.bNoSoundCard = false; if (m_Config.bWindowed) { unsigned screen_width = GetSystemMetrics(SM_CXFULLSCREEN); unsigned screen_height = GetSystemMetrics(SM_CYFULLSCREEN); if (m_Config.width >= screen_width) { m_Config.width = screen_width; } if (m_Config.height >= screen_height) { m_Config.height = screen_height; } } m_OldConfig = m_Config; } catch (boost::property_tree::ini_parser_error &e) { fprintf(stderr, "Game Config Error: %s\n", e.message().c_str()); } catch(const boost::property_tree::ptree_error &e) { fprintf(stderr, "Game Config Error: %s\n", e.what()); } return true; #else FILE * fp = NULL; if (NULL == (fp = fopen("metin2.cfg", "rt"))) return false; char buf[256]; char command[256]; char value[256]; while (fgets(buf, 256, fp)) { if (sscanf(buf, " %s %s\n", command, value) == EOF) break; if (!stricmp(command, "WIDTH")) m_Config.width = atoi(value); else if (!stricmp(command, "HEIGHT")) m_Config.height = atoi(value); else if (!stricmp(command, "BPP")) m_Config.bpp = atoi(value); else if (!stricmp(command, "FREQUENCY")) m_Config.frequency = atoi(value); else if (!stricmp(command, "SOFTWARE_CURSOR")) m_Config.is_software_cursor = atoi(value) ? true : false; else if (!stricmp(command, "OBJECT_CULLING")) m_Config.is_object_culling = atoi(value) ? true : false; else if (!stricmp(command, "VISIBILITY")) m_Config.iDistance = atoi(value); else if (!stricmp(command, "MUSIC_VOLUME")) { if(strchr(value, '.') == 0) { // Old compatiability m_Config.music_volume = pow(10.0f, (-1.0f + (((float) atoi(value)) / 5.0f))); if(atoi(value) == 0) m_Config.music_volume = 0.0f; } else m_Config.music_volume = atof(value); } else if (!stricmp(command, "VOICE_VOLUME")) m_Config.voice_volume = (char) atoi(value); else if (!stricmp(command, "GAMMA")) m_Config.gamma = atoi(value); else if (!stricmp(command, "IS_SAVE_ID")) m_Config.isSaveID = atoi(value); else if (!stricmp(command, "SAVE_ID")) strncpy(m_Config.SaveID, value, 20); else if (!stricmp(command, "PRE_LOADING_DELAY_TIME")) g_iLoadingDelayTime = atoi(value); else if (!stricmp(command, "WINDOWED")) { m_Config.bWindowed = atoi(value) == 1 ? true : false; } else if (!stricmp(command, "USE_DEFAULT_IME")) m_Config.bUseDefaultIME = atoi(value) == 1 ? true : false; else if (!stricmp(command, "SOFTWARE_TILING")) m_Config.bSoftwareTiling = atoi(value); else if (!stricmp(command, "SHADOW_LEVEL")) m_Config.iShadowLevel = atoi(value); else if (!stricmp(command, "DECOMPRESSED_TEXTURE")) m_Config.bDecompressDDS = atoi(value) == 1 ? true : false; else if (!stricmp(command, "NO_SOUND_CARD")) m_Config.bNoSoundCard = atoi(value) == 1 ? true : false; else if (!stricmp(command, "VIEW_CHAT")) m_Config.bViewChat = atoi(value) == 1 ? true : false; else if (!stricmp(command, "ALWAYS_VIEW_NAME")) m_Config.bAlwaysShowName = atoi(value) == 1 ? true : false; else if (!stricmp(command, "SHOW_DAMAGE")) m_Config.bShowDamage = atoi(value) == 1 ? true : false; else if (!stricmp(command, "SHOW_SALESTEXT")) m_Config.bShowSalesText = atoi(value) == 1 ? true : false; } if (m_Config.bWindowed) { unsigned screen_width = GetSystemMetrics(SM_CXFULLSCREEN); unsigned screen_height = GetSystemMetrics(SM_CYFULLSCREEN); if (m_Config.width >= screen_width) { m_Config.width = screen_width; } if (m_Config.height >= screen_height) { m_Config.height = screen_height; } } m_OldConfig = m_Config; fclose(fp); // Tracef("LoadConfig: Resolution: %dx%d %dBPP %dHZ Software Cursor: %d, Music/Voice Volume: %d/%d Gamma: %d\n", // m_Config.width, // m_Config.height, // m_Config.bpp, // m_Config.frequency, // m_Config.is_software_cursor, // m_Config.music_volume, // m_Config.voice_volume, // m_Config.gamma); return true; #endif // ENABLE_NEWGAMECONFIG }
3. Search function "SaveConfig()" and replace with:
bool CPythonSystem::SaveConfig() { #ifdef ENABLE_NEWGAMECONFIG boost::property_tree::ptree pt; pt.put("Metin2.WIDTH", m_Config.width); pt.put("Metin2.HEIGHT", m_Config.height); pt.put("Metin2.FREQUENCY", m_Config.frequency); pt.put("Metin2.GAMMA", m_Config.gamma); pt.put("Metin2.WINDOW_MODE", (m_Config.bWindowed == 1 ? 1 : 0)); pt.put("Metin2.FULLSCREEN", (m_Config.bWindowed == 1 ? 0 : 1)); pt.put("Metin2.SOFTWARE_CURSOR", boost::lexical_cast<std::string>(m_Config.is_software_cursor)); pt.put("Metin2.MUSIC", m_Config.music_volume); pt.put("Metin2.EFFECTS", m_Config.voice_volume); pt.put("Metin2.VISIBILITY", m_Config.iDistance); pt.put("Metin2.SOFTWARE_TILING", m_Config.bSoftwareTiling); //tln pt.put("Metin2.SHADOW", m_Config.iShadowLevel); pt.put("Metin2.GAME_IME", (m_Config.bUseDefaultIME == true ? 0 : 1)); pt.put("Metin2.EXTERN_IME", (m_Config.bUseDefaultIME == true ? 1 : 0)); //Game Config Others pt.put("Metin2.DECOMPRESSED_TEXTURE", (m_Config.bDecompressDDS == true ? 1 : 0)); pt.put("Metin2.VIEW_CHAT", (m_Config.bViewChat == true ? 1 : 0)); pt.put("Metin2.ALWAYS_VIEW_NAME", (m_Config.bAlwaysShowName == true ? 1 : 0)); pt.put("Metin2.SHOW_DAMAGE", (m_Config.bShowDamage == true ? 1 : 0)); pt.put("Metin2.SHOW_SALESTEXT", (m_Config.bShowSalesText == true ? 1 : 0)); try { boost::property_tree::ini_parser::write_ini("ldata/gameconfig.ini", pt); } catch (boost::property_tree::ini_parser_error &e) { fprintf(stderr, "Game Config Error: %s\n", e.message().c_str()); } catch(const boost::property_tree::ptree_error &e) { fprintf(stderr, "Game Config Error: %s\n", e.what()); } return true; #else FILE *fp; if (NULL == (fp = fopen("metin2.cfg", "wt"))) return false; fprintf(fp, "WIDTH %d\n" "HEIGHT %d\n" "BPP %d\n" "FREQUENCY %d\n" "SOFTWARE_CURSOR %d\n" "OBJECT_CULLING %d\n" "VISIBILITY %d\n" "MUSIC_VOLUME %.3f\n" "VOICE_VOLUME %d\n" "GAMMA %d\n" "IS_SAVE_ID %d\n" "SAVE_ID %s\n" "PRE_LOADING_DELAY_TIME %d\n" "DECOMPRESSED_TEXTURE %d\n", m_Config.width, m_Config.height, m_Config.bpp, m_Config.frequency, m_Config.is_software_cursor, m_Config.is_object_culling, m_Config.iDistance, m_Config.music_volume, m_Config.voice_volume, m_Config.gamma, m_Config.isSaveID, m_Config.SaveID, g_iLoadingDelayTime, m_Config.bDecompressDDS); if (m_Config.bWindowed == 1) fprintf(fp, "WINDOWED %d\n", m_Config.bWindowed); if (m_Config.bViewChat == 0) fprintf(fp, "VIEW_CHAT %d\n", m_Config.bViewChat); if (m_Config.bAlwaysShowName != DEFAULT_VALUE_ALWAYS_SHOW_NAME) fprintf(fp, "ALWAYS_VIEW_NAME %d\n", m_Config.bAlwaysShowName); if (m_Config.bShowDamage == 0) fprintf(fp, "SHOW_DAMAGE %d\n", m_Config.bShowDamage); if (m_Config.bShowSalesText == 0) fprintf(fp, "SHOW_SALESTEXT %d\n", m_Config.bShowSalesText); fprintf(fp, "USE_DEFAULT_IME %d\n", m_Config.bUseDefaultIME); fprintf(fp, "SOFTWARE_TILING %d\n", m_Config.bSoftwareTiling); fprintf(fp, "SHADOW_LEVEL %d\n", m_Config.iShadowLevel); fprintf(fp, "\n"); fclose(fp); return true; #endif // ENABLE_NEWGAMECONFIG }
Notes: Any doubt or mistake you can ask here on the topic. To more details about the PRO version, you can contact me by skype.
Request in my profile or PM- 48
- 1
- 1
- 1
- 2
- 1
- 1
- 20
- 3
- 58
-
- 1
-
Will the taste of each. I personally like . Things " exclusive " are usually sold , no one wants to work for free . The back-end is all done , you simply change the css and html . Do not leeching if you do not like it, do not use. The community is full of it , people who want everything ready and in the best possible way.Best regards
-
I found in my disk an old project of itemshop and i decided to share with community. It works perfectly.
Features:
- AES crypt hash
- PIN Security
- Buy Itens Stackable, With Time and Simple
- Language: English (I'm sorry, but some column in db are in Portuguese, i speak portuguese, but i explained in the topic end)
Home
Buy Item
Historic
Struct of tables
mall_categories ([id] = id, [categorieName] = Name of Category)
mall_historic_buys ( [conta] = account , [item] = item, [valorGasto] = amount spent, [dataBuy] = date of purchase )
mall_itens ([item_id] = ID of item in item_proto, [item_name] = Name of item, [item_desc] = Description of item, [item_img] = Relative to the path //assets//detail_view//item_img.png and path detail_view_full, [item_cat] = ID relative to the category, [item_type] = here is a enum(simple, expire or stackable), [item_count] = quantity, [socket0] = time for for items to of type expire, [socket1] and [socket2] do not fill.)
mall_pinusers ([accountName] = account login relative to the account.account, [pinCode] = pin security)
SQL
-- MySQL dump -- -- --------------------------------------------------------- /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -- --------------------------------------------------------- -- CREATE DATABASE "ingamemall" ---------------------------- CREATE DATABASE IF NOT EXISTS `ingamemall` CHARACTER SET latin1 COLLATE latin1_swedish_ci; USE `ingamemall`; -- --------------------------------------------------------- -- CREATE TABLE "mall_categories" -------------------------- CREATE TABLE `mall_categories` ( `id` Int( 11 ) AUTO_INCREMENT NOT NULL, `CategorieName` VarChar( 255 ) NOT NULL, PRIMARY KEY ( `id` ) ) ENGINE = InnoDB AUTO_INCREMENT = 4; -- --------------------------------------------------------- -- CREATE TABLE "mall_historic_buys" ----------------------- CREATE TABLE `mall_historic_buys` ( `id` Int( 11 ) AUTO_INCREMENT NOT NULL, `conta` VarChar( 255 ) NOT NULL, `item` VarChar( 255 ) NOT NULL, `valorGasto` VarChar( 255 ) NOT NULL, `dataBuy` DateTime NOT NULL, PRIMARY KEY ( `id` ) ) ENGINE = InnoDB AUTO_INCREMENT = 11; -- --------------------------------------------------------- -- CREATE TABLE "mall_itens" ------------------------------- CREATE TABLE `mall_itens` ( `id` Int( 11 ) AUTO_INCREMENT NOT NULL, `item_id` Int( 11 ) NOT NULL, `item_name` VarChar( 255 ) NOT NULL, `item_price` Int( 255 ) NOT NULL, `item_desc` VarChar( 255 ) NOT NULL, `item_img` VarChar( 255 ) NOT NULL, `item_cat` Int( 255 ) NOT NULL, `item_type` Enum( 'simple', 'expire', 'stackable' ) NOT NULL DEFAULT 'simple', `item_count` Int( 11 ) NOT NULL, `socket0` Int( 255 ) NULL DEFAULT '0', `socket1` Int( 255 ) NULL DEFAULT '0', `socket2` Int( 255 ) NULL DEFAULT '0', PRIMARY KEY ( `id` ) ) ENGINE = InnoDB AUTO_INCREMENT = 4; -- --------------------------------------------------------- -- CREATE TABLE "mall_pinusers" ---------------------------- CREATE TABLE `mall_pinusers` ( `id` Int( 11 ) AUTO_INCREMENT NOT NULL, `accountName` VarChar( 255 ) NOT NULL, `pinCode` VarChar( 255 ) NOT NULL, PRIMARY KEY ( `id` ) ) ENGINE = InnoDB AUTO_INCREMENT = 3; -- --------------------------------------------------------- -- Dump data of "mall_categories" -------------------------- INSERT INTO `mall_categories`(`id`,`CategorieName`) VALUES ( '1', 'Swords' ); INSERT INTO `mall_categories`(`id`,`CategorieName`) VALUES ( '2', 'Costumes' ); INSERT INTO `mall_categories`(`id`,`CategorieName`) VALUES ( '3', 'Others' ); -- --------------------------------------------------------- -- Dump data of "mall_historic_buys" ----------------------- INSERT INTO `mall_historic_buys`(`id`,`conta`,`item`,`valorGasto`,`dataBuy`) VALUES ( '14', 'mkIvi3', 'Traje do Deserto', '5000', '2016-07-31 20:52:53' ); INSERT INTO `mall_historic_buys`(`id`,`conta`,`item`,`valorGasto`,`dataBuy`) VALUES ( '15', 'mkIvi3', 'Esferas da Benção', '5000', '2016-07-31 21:05:25' ); INSERT INTO `mall_historic_buys`(`id`,`conta`,`item`,`valorGasto`,`dataBuy`) VALUES ( '16', 'mkIvi3', 'Espada +9', '2500', '2016-07-31 21:05:43' ); -- --------------------------------------------------------- -- Dump data of "mall_itens" ------------------------------- INSERT INTO `mall_itens`(`id`,`item_id`,`item_name`,`item_price`,`item_desc`,`item_img`,`item_cat`,`item_type`,`item_count`,`socket0`,`socket1`,`socket2`) VALUES ( '1', '19', 'Espada +9', '2500', 'Espada +9 para Guerreiro', '00010', '1', 'simple', '1', '0', '0', '0' ); INSERT INTO `mall_itens`(`id`,`item_id`,`item_name`,`item_price`,`item_desc`,`item_img`,`item_cat`,`item_type`,`item_count`,`socket0`,`socket1`,`socket2`) VALUES ( '2', '41003', 'Traje do Deserto', '5000', 'Traje do Deserto', '41003', '2', 'expire', '1', '1470084001', '0', '0' ); INSERT INTO `mall_itens`(`id`,`item_id`,`item_name`,`item_price`,`item_desc`,`item_img`,`item_cat`,`item_type`,`item_count`,`socket0`,`socket1`,`socket2`) VALUES ( '3', '70024', 'Esferas da Benção', '5000', 'Esferas da Benção', '70024', '3', 'stackable', '200', '0', '0', '0' ); -- --------------------------------------------------------- -- Dump data of "mall_pinusers" ---------------------------- INSERT INTO `mall_pinusers`(`id`,`accountName`,`pinCode`) VALUES ( '4', 'mkIvi3', '123456' ); -- --------------------------------------------------------- /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -- ---------------------------------------------------------
Game Source
In cmd_general.cpp (header includes)
add
#include <cryptopp/aes.h> #include <cryptopp/modes.h> #include <cryptopp/base64.h> #include <boost/lexical_cast.hpp>
Search for
ACMD(do_in_game_mall)
above add
std::string aes_encrypt(const std::string& str_in, const std::string& key, const std::string& iv) { std::string str_out; CryptoPP::CFB_Mode<CryptoPP::AES>::Encryption encryption((byte*)key.c_str(), key.length(), (byte*)iv.c_str()); CryptoPP::StringSource encryptor(str_in, true, new CryptoPP::StreamTransformationFilter(encryption, new CryptoPP::Base64Encoder( new CryptoPP::StringSink(str_out), false ) ) ); return str_out; }
in function
ACMD(do_in_game_mall)
//REPLACE char buf[512+1]; char sas[33]; MD5_CTX ctx; const char sas_key[] = "GF9001"; snprintf(buf, sizeof(buf), "%u%u%s", ch->GetPlayerID(), ch->GetAID(), sas_key); MD5Init(&ctx); MD5Update(&ctx, (const unsigned char *) buf, strlen(buf)); #ifdef __FreeBSD__ MD5End(&ctx, sas); #else static const char hex[] = "0123456789abcdef"; unsigned char digest[16]; MD5Final(digest, &ctx); int i; for (i = 0; i < 16; ++i) { sas[i+i] = hex[digest[i] >> 4]; sas[i+i+1] = hex[digest[i] & 0x0f]; } sas[i+i] = '\0'; // WITH THIS std::string GameKeyShop = "RZN942"; std::string key = "96582146752486249517535915478532"; // 32 bytes std::string iv = "5476325954125471"; // 16 bytes std::string encryptKeyAES = boost::lexical_cast<std::string>(ch->GetPlayerID()) + boost::lexical_cast<std::string>(ch->GetAID()) + GameKeyShop; std::string str_encrypted = aes_encrypt(encryptKeyAES, key, iv); char buffer[512+1]; snprintf(buffer, sizeof(buffer), "mall http://%s/index.php?pid=%u&sas=%s", g_strWebMallURL.c_str(), ch->GetPlayerID(), str_encrypted.c_str()); //ch->ChatPacket(CHAT_TYPE_INFO, buffer); //Debug output ch->ChatPacket(CHAT_TYPE_COMMAND, buffer);
And remove the rest
snprintf(buf, sizeof(buf), "mall http://%s/ishop?pid=%u&c=%s&sid=%d&sas=%s", ......
PHP Files Config
//manage//Classes//Configurations//GameConfig.php /* Defines for Connection*/ $SisDbHost = "192.168.25.57"; //IP SERVER $SisDbUser = "root"; //user db $SisDbPass = "password"; //password db $SisDbTB = "account"; // db by default //Game Tables $Account_db = "account"; //YOUR GAME ACCOUNT DB (live_account, account, some_account) $Player_db = "player"; //YOUR GAME PLAYER DB (live_player, player, some_player) $GameKeyShop = "RZN942"; //KEY string, change this, and change in source game $AES_IV = '5476325954125471'; //16 bytes CHANGE HERE AND CHANGE in SOURCE GAME $AES_KEY = '96582146752486249517535915478532'; //32 bytes CHANGE HERE AND CHANGE in SOURCE GAME
And Core CONFIG
MALL_URL: localhost/m2ingameshop
Column in account by default 'cash'
Download
Scan
- 2
- 1
- 5
-
Correction:
Because $MYSQLDUMP its not recognized.
Get directorie mysqldump
which mysqldump and copy result before "-u"
# Dump and compress
for db in $DATABASES
do
FILE=$db.$FILETIME.gz
echo -e "033[32mDumping $db!033[0m"
/usr/local/bin/mysqldump -u $MYSQL_USER -p$MYSQL_PASS $db | $GZIP -9 > $LOCAL_FOLDER/$DAY/$TIME_NOW/$FILE
done[/code/
Debug:
env -i SHELL=/bin/sh PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin LOCALSCRIPT.SH
-
You already tried to truncate the table and add some items to test?
-
What exactly do you want to change the name?
Can be here:
Alignment
668 - int iAlignmentGrade = GetAlignmentGrade();
Name:
const std::string & c_rstrTitleName = itor->second; CPythonTextTail::Instance().AttachTitle(GetVirtualID(), c_rstrTitleName.c_str(), GetTitleColor());
- 1
-
UserInterfaceInstanceBaseEffect.cpp
sprintf(szText, "Lv %d", level);
- 1
-
Errors
"No module named xxx" are of case sensitive.
Change uitooltip for uiToolTip.
How To Install Global GameLauncher Community Version
in Guides & HowTo
Posted
Only paid version
All bugs fixeds in paid version