This is HighGamer owner of
biggest gold seller in AO..
I wrote a whole tutorial here to help you guys out
Download OGRealms Client:
New link for OGRealms Client [Good Client]:
New link for OGRealms Client [Bad Client]:
My Server files they are v3.0.0 but already setup mostly:
Video Tutorial to setup:
First of all rename authserver folder to AuthServer
save in the directory where all the folders are a file call it like "Run Servers.cmd"
Inside put
Code:
cd AccountDBManager
START AccountDBManager.exe
cd ..
cd AtlanticaDBManager
START AtlanticaDBManager.exe
cd ..
cd AuthServer
START AuthServer.exe
cd ..
cd CommunityServer
START CommunityServer.exe
START CommunityDBManager.exe
cd ..
cd FrontServer
START FrontServer.exe
cd ..
cd LogDBManager
START LogDBManager.exe
cd ..
cd MasterServer
START MasterServer.exe
cd ..
cd NGMDBManager
START NGMDBManager.exe
cd ..
cd NGMServer
START NGMServer.exe
cd ..
cd ServerAgent
START ServerAgent.exe
cd ..
cd Atlantica
START Atlantica.exe
Here are some screenshots how all the servers should look if everything is running properly!
Here is the tutorial!
Step 1)
If you installed SQL Server 2014 Express From here
Step 2)
This youtube video is for a different game server (MUOnline), but the process is the same for atlantica server this should fix all SQL errors.
Step 3)
After connecting to SQL with the SQL Server Management Studio, you'll have to setup from Windows Authentication to Mixed-mode authentication, because the Atlantica server uses the database username 'sa' and password 'qweQWE123'
Step 4)
You'll have to open TCP/IP also allow IP 127.0.0.1 to Listen on port 1433 You just need to set TCP/IP from Disabled to Enabled, this is done by this link
you'll just need to open another program that comes installed with SQL server called "SQL Server Configuration Manager" for sql server to be reached by the atlantica server files. (Restart SQL Server in SQL Server Configuration Manager) or SQL Server Management Studio
Here is Copy/Paste of the link above
What To Do
On the SQL Server, open 'SQL Server Configuration Manager'.
Note: This can typically be found linked from the 'Start' menu. For example: Start | All Programs | Microsoft SQL Server 2008 R2 | Configuration Tools | SQL Server Configuration Manager.
Expand 'SQL Server Network Configuration' and highlight the 'Protocols for [InstanceName]' option.
In the right-hand window, if 'TCP/IP' currently has the 'status' of 'Disabled', right click on 'TCP/IP' and select 'Enable'.
Make sure you set the IPAll -> TCP Dynamic Ports to 1433
Note: You will be requested to restart the SQL Server service to complete the configuration change.
To restart the service, you can use the same Microsoft Management Console (MMC) window. To do so, highlight the 'SQL Server Services' option at the top of the tree. In the right-hand window, you can then right click on the 'SQL Server [Instance]' entry and choose 'Restart'.
The SQL instance has now been configured to accept TCP/IP connections from remote computers.
Step 5)
Open SQL Server Management Studio click Security folder then click Logins folder right click sa user then click Properties then click Status and click Login: Enabled also in General set the SQL Server authentication and password to qweQWE123 also you may click Specift old password and put same password qweQWE123 this will ensure any problems.. maybe not needed but I did it anyways.
Restart the SQL Server by right clicking the green arrow on the whole tree the first item in the tree that loads up all the folders it'll have a [Start , Stop, Resume Restart], click Restart.
Step 6)
You have to edit the MasterServer open serverinfo.txt file and fix all the ExecFile to the proper paths, this is the main reason everyone fails to run the server!, Also change the IP's all to "127.0.0.1"
Step 7)
In SQL Server Management Studio Press "New Query" button or just use hotkey CTRL+N, inside paste this in
Code:
USE [AT_AccountDB]
GO
INSERT INTO [dbo].[tbl_MasterIP]
([IP])
VALUES
('127.0.0.1')
GO
USE [AT_AccountDB]
GO
INSERT INTO [dbo].[tbla_ManagerIP]
([IP])
VALUES
('127.0.0.1')
GO
USE [AT_AccountDB]
GO
INSERT INTO [dbo].[tbla_masterip]
([IP])
VALUES
('127.0.0.1')
GO
Press Execute and that should fix the IP issue (Not even sure if this is necessary but it will help and ensure other troubles in the future)
Step 8)
Now you have to make a account properly right? maybe.. but here are a few default ones
ID: archonus PW: 9444
ID: testacc PW: asdfqwerty
If you are interested in the GM Tool, it won't work as it tries to login Nexon Europe servers
Midgard - AT_Midgard 109.234.77.81 : 9201
Niflheim - AT_Niflheim 109.234.77.82 : 9201
Thanatos - AT_Thanatos - 109.234.77.84 : 9201
Titan - AT_Titan - 109.234.77.83 : 9201
I'll release one that connects to these private servers soon, (if it will even connect? not sure)
EDIT: GM_TOOL kinda works, but not completely
Step 8)
Now everything should work properly!
Step 9)
Client fix by downloading attachment ServerIP.zip replace in OGRealms client, this will allow only you to connect to it assuming you run server from same computer you run game.. I cannot fix this for everything as everyone has a different IP address.. fix it yourself get a ndt decoder/encoder I posted one on progamercity ages ago
Step 10)
To get out of maintenance mode.. this database script below will make the accounts into GameMasters, login and do command /unblock in chat
Code:
USE [AT_AccountDB]
GO
UPDATE [dbo].[tbl_Account]
SET
[MasterLevelExpireTime] = '2100-12-06 21:33:00.000',
[MasterLevelValue] = 120
WHERE ID = 'testacc' OR ID = 'archonus'
GO
You cannot edit the MasterLevel as it's read only it gets generated from MasterLevelValue which is only used if MasterLevelExpireTime has still not past.. I set it to year 2100 it should not expire for a while.
If you have a database not initialized error.. remove Titan server from serverinfo.txt in MasterServer folder as said by Lana Balode
To avoid using /unblock each time run these files I created, they come with a readme.
Atlantica Excellent.exe (This starts the server in Excellent mode)
Atlantica Normal.exe (This starts the server in Nomral mode)
Final picture if everything is perfect
Setup ODBC for these
Code:
AT_AccountDB
AT_Community
AT_GameDB01
AT_InterDB01
AT_NGMDB
ATLANTICA
AtlanticaLog
Bridge
LC_Billing
MEMBER
setup RPC and RPC Out to both be True in Server Objects -> Linked Servers -> Each of the databases like ODBC names
then run this script
Code:
exec sp_addlinkedserver 'AccountDB','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'AccountDB','false',null,'sa','qweQWE123'
exec sp_serveroption 'AccountDB', 'rpc', true
exec sp_serveroption 'AccountDB', 'rpc out', true
exec sp_addlinkedserver 'AT_AccountDB','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'AT_AccountDB','false',null,'sa','qweQWE123'
exec sp_serveroption 'AT_AccountDB', 'rpc', true
exec sp_serveroption 'AT_AccountDB', 'rpc out', true
exec sp_addlinkedserver 'AT_GAMEDB01','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'AT_GAMEDB01','false',null,'sa','qweQWE123'
exec sp_serveroption 'AT_GAMEDB01', 'rpc', true
exec sp_serveroption 'AT_GAMEDB01', 'rpc out', true
exec sp_addlinkedserver 'AtlanticaAPI','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'AtlanticaAPI','false',null,'sa','qweQWE123'
exec sp_serveroption 'AtlanticaAPI', 'rpc', true
exec sp_serveroption 'AtlanticaAPI', 'rpc out', true
exec sp_addlinkedserver 'atlanticagamelog','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'atlanticagamelog','false',null,'sa','qweQWE123'
exec sp_serveroption 'atlanticagamelog', 'rpc', true
exec sp_serveroption 'atlanticagamelog', 'rpc out', true
exec sp_addlinkedserver 'AtlanticaWeb','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'AtlanticaWeb','false',null,'sa','qweQWE123'
exec sp_serveroption 'AtlanticaWeb', 'rpc', true
exec sp_serveroption 'AtlanticaWeb', 'rpc out', true
exec sp_addlinkedserver 'BRIDGE','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'BRIDGE','false',null,'sa','qweQWE123'
exec sp_serveroption 'BRIDGE', 'rpc', true
exec sp_serveroption 'BRIDGE', 'rpc out', true
exec sp_addlinkedserver 'CHAtlanticaDB','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'CHAtlanticaDB','false',null,'sa','qweQWE123'
exec sp_serveroption 'CHAtlanticaDB', 'rpc', true
exec sp_serveroption 'CHAtlanticaDB', 'rpc out', true
exec sp_addlinkedserver 'gngmember','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'gngmember','false',null,'sa','qweQWE123'
exec sp_serveroption 'gngmember', 'rpc', true
exec sp_serveroption 'gngmember', 'rpc out', true
exec sp_addlinkedserver 'GNGWEB','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'GNGWEB','false',null,'sa','qweQWE123'
exec sp_serveroption 'GNGWEB', 'rpc', true
exec sp_serveroption 'GNGWEB', 'rpc out', true
exec sp_addlinkedserver 'AT_Community','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'AT_Community','false',null,'sa','qweQWE123'
exec sp_serveroption 'AT_Community', 'rpc', true
exec sp_serveroption 'AT_Community', 'rpc out', true
exec sp_addlinkedserver 'ATLANTICA','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'ATLANTICA','false',null,'sa','qweQWE123'
exec sp_serveroption 'ATLANTICA', 'rpc', true
exec sp_serveroption 'ATLANTICA', 'rpc out', true
exec sp_addlinkedserver 'ATLANTICALOG','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'ATLANTICALOG','false',null,'sa','qweQWE123'
exec sp_serveroption 'ATLANTICALOG', 'rpc', true
exec sp_serveroption 'ATLANTICALOG', 'rpc out', true
exec sp_addlinkedserver 'INTERDB','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'INTERDB','false',null,'sa','qweQWE123'
exec sp_serveroption 'INTERDB', 'rpc', true
exec sp_serveroption 'INTERDB', 'rpc out', true
exec sp_addlinkedserver 'NGMDB','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'NGMDB','false',null,'sa','qweQWE123'
exec sp_serveroption 'NGMDB', 'rpc', true
exec sp_serveroption 'NGMDB', 'rpc out', true
exec sp_addlinkedserver 'LC_BILLING','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'LC_BILLING','false',null,'sa','qweQWE123'
exec sp_serveroption 'LC_BILLING', 'rpc', true
exec sp_serveroption 'LC_BILLING', 'rpc out', true
exec sp_addlinkedserver 'MEMBER','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'MEMBER','false',null,'sa','qweQWE123'
exec sp_serveroption 'MEMBER', 'rpc', true
exec sp_serveroption 'MEMBER', 'rpc out', true
exec sp_addlinkedserver 'NDOORSI','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'NDOORSI','false',null,'sa','qweQWE123'
exec sp_serveroption 'NDOORSI', 'rpc', true
exec sp_serveroption 'NDOORSI', 'rpc out', true
exec sp_addlinkedserver 'NDOORS','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'NDOORS','false',null,'sa','qweQWE123'
exec sp_serveroption 'NDOORS', 'rpc', true
exec sp_serveroption 'NDOORS', 'rpc out', true
exec sp_addlinkedserver 'LKDBRIDGE','','SQLOLEDB', [MENTION=5025131]@se[/MENTION]RVERNAME
exec sp_addlinkedsrvlogin 'LKDBRIDGE','false',null,'sa','qweQWE123'
exec sp_serveroption 'LKDBRIDGE', 'rpc', true
exec sp_serveroption 'LKDBRIDGE', 'rpc out', true
if the above script gets corrupted by Elitepvper forum MENTION codes.
here is register script untested but should work right
i never figured out how to make own accounts with script but it's possible if you make website.. no idea how # accounts work probably some way to do this..
Here is simple script
with the correct procedure to register accounts for atlantica server, you open database management studio and look at all procedures i know there is one.. i'll find it later.. i don't got time now.
edit I found it
you may also need
for PHP to connect to odbc (database of game)
if you don't know how to run PHP files you need website hosting software like xampp or wamp (these are simple automatic web hosting installers)
must save script as register.php
Code:
<?php
define('MSSQL_HOST', '127.0.0.1');
define('MSSQL_USER', 'sa');
define('MSSQL_PASS', 'qweQWE123');
$mssql = odbc_connect('Driver={SQL Server};Server='.MSSQL_HOST.';', MSSQL_USER, MSSQL_PASS);
function mssql_escape_string($str){
$str = htmlentities($str);
if (ctype_alnum($str))
return $str;
else
return str_ireplace(array(';', '%', "'"), "", $str);
}
foreach ($_GET as $key=>$getvar){ $_GET[$key] = mssql_escape_string($getvar); }
foreach ($_POST as $key=>$postvar){ $_POST[$key] = mssql_escape_string($postvar); }
if (!isset($_POST['reg_username']))
$_POST['reg_username'] = '';
odbc_exec($mssql, 'USE [AT_AccountDB]');
$checkacc = odbc_exec($mssql, 'SELECT COUNT(*) as count FROM [dbo].[tbl_Account] WHERE ID=\'' . mssql_escape_string($_POST['reg_username']) . '\'');
$errors = array();
if (empty($_POST['reg_username']) || empty($_POST['reg_password']))
$errors[] = 'You must fill out all fields.';
if (!empty($_POST['reg_username']) && odbc_result($checkacc, 'count') > 0)
$errors[] = '' . $_POST['reg_username'] . ' is already in use.';
if (!empty($_POST['reg_username']) && (strlen($_POST['reg_username']) > 16 || strlen($_POST['reg_username']) < 6))
$errors[] = 'Usernames must be between 6 - 16 characters.';
if (!empty($_POST['reg_password']) && (strlen($_POST['reg_password']) > 16 || strlen($_POST['reg_password']) < 6))
$errors[] = 'Passwords must be between 6 - 16 characters.';
if (array_key_exists('reg_submit', $_POST)) {
if (count($errors) > 0) {
echo '<div class="fail">';
foreach ($errors as $error) {
echo $error . '<br/>';
}
echo '</div>';
} else {
odbc_exec($mssql, 'EXEC [dbo].[rasp_CreateAtlanticaAccount]"'.mssql_escape_string($_POST['reg_username']).'","'.mssql_escape_string($_POST['reg_password']).'"');
echo '<div class="success">Your account has been successfully created.</div>';
}
}
?>
<!DOCTYPE html>
<head>
<title>Atlantica Registration page</title>
<meta charset="utf-8" />
</head>
<body>
<form method="post" action="register.php">
<table>
<tr>
<td>Username:</td>
<td><input type="text" name="reg_username" autocomplete="off" maxlength="16"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="reg_password" autocomplete="off" maxlength="16"></td>
</tr>
<tr>
<td><input type="submit" name="reg_submit" value="Create Account"></td>
</tr>
</table>
</form>
</body>
</html>
let me know if the script works successfully or not
Here is a MAKE GM script call it GMEditor.php
Code:
<?php
define('MSSQL_HOST', '127.0.0.1');
define('MSSQL_USER', 'sa');
define('MSSQL_PASS', 'qweQWE123');
$mssql = odbc_connect('Driver={SQL Server};Server='.MSSQL_HOST.';', MSSQL_USER, MSSQL_PASS);
function mssql_escape_string($str){
$str = htmlentities($str);
if (ctype_alnum($str))
return $str;
else
return str_ireplace(array(';', '%', "'"), "", $str);
}
foreach ($_GET as $key=>$getvar){ $_GET[$key] = mssql_escape_string($getvar); }
foreach ($_POST as $key=>$postvar){ $_POST[$key] = mssql_escape_string($postvar); }
if (!isset($_POST['reg_username']))
$_POST['reg_username'] = '';
odbc_exec($mssql, 'USE [AT_AccountDB]');
$checkacc = odbc_exec($mssql, 'SELECT COUNT(*) as count FROM [dbo].[tbl_Account] WHERE ID=\'' . mssql_escape_string($_POST['reg_username']) . '\'');
$errors = array();
if (empty($_POST['reg_username']) && isset($_POST['make_gm']))
$errors[] = 'You must fill out username you want to make GM.';
if (empty($_POST['reg_username']) && isset($_POST['remove_gm']))
$errors[] = 'You must fill out username you want to remove GM from.';
if (!empty($_POST['reg_username']) && odbc_result($checkacc, 'count') == 0)
$errors[] = '' . $_POST['reg_username'] . ' not found create account first';
if (!empty($_POST['reg_username']) && (strlen($_POST['reg_username']) > 16 || strlen($_POST['reg_username']) < 6))
$errors[] = 'Usernames must be between 6 - 16 characters.';
if (count($errors) > 0) {
echo '<div class="fail">';
foreach ($errors as $error) {
echo $error . '<br/>';
}
echo '</div>';
} else if (array_key_exists('make_gm', $_POST)) {
odbc_exec($mssql, "UPDATE [dbo].[tbl_Account] SET [MasterLevelExpireTime] = '2100-12-06 21:33:00.000', [MasterLevelValue] = 120 WHERE ID = '".mssql_escape_string($_POST['reg_username'])."'");
echo '<div class="success">Your account has been made GM.</div>';
} else if (array_key_exists('remove_gm', $_POST)) {
odbc_exec($mssql, "UPDATE [dbo].[tbl_Account] SET [MasterLevelExpireTime] = '2100-12-06 21:33:00.000', [MasterLevelValue] = 0 WHERE ID = '".mssql_escape_string($_POST['reg_username'])."'");
echo '<div class="success">Your account has been removed from GM.</div>';
}
?>
<!DOCTYPE html>
<head>
<title>Atlantica GM Editor</title>
<meta charset="utf-8" />
</head>
<body>
<form method="post" action="GMEditor.php">
<table>
<tr>
<td>Username:</td>
<td><input type="text" name="reg_username" autocomplete="off" maxlength="16"></td>
</tr>
<tr>
<td><input type="submit" name="make_gm" value="Make GM"></td>
<td><input type="submit" name="remove_gm" value="Remove GM"></td>
</tr>
</table>
</form>
</body>
</html>
Block Player script BlockPlayer.php
Code:
<?php
define('MSSQL_HOST', '127.0.0.1');
define('MSSQL_USER', 'sa');
define('MSSQL_PASS', 'qweQWE123');
$mssql = odbc_connect('Driver={SQL Server};Server='.MSSQL_HOST.';', MSSQL_USER, MSSQL_PASS);
function mssql_escape_string($str){
$str = htmlentities($str);
if (ctype_alnum($str))
return $str;
else
return str_ireplace(array(';', '%', "'"), "", $str);
}
foreach ($_GET as $key=>$getvar){ $_GET[$key] = mssql_escape_string($getvar); }
foreach ($_POST as $key=>$postvar){ $_POST[$key] = mssql_escape_string($postvar); }
if (!isset($_POST['reg_username']))
$_POST['reg_username'] = '';
odbc_exec($mssql, 'USE [AT_AccountDB]');
$checkacc = odbc_exec($mssql, 'SELECT COUNT(*) as count FROM [dbo].[tbl_Account] WHERE ID=\'' . mssql_escape_string($_POST['reg_username']) . '\'');
$errors = array();
if (empty($_POST['reg_username']) && isset($_POST['block_player']))
$errors[] = 'You must fill out username you want block.';
if (empty($_POST['reg_username']) && isset($_POST['unblock_player']))
$errors[] = 'You must fill out username you want to unblock.';
if (!empty($_POST['reg_username']) && odbc_result($checkacc, 'count') == 0)
$errors[] = '' . $_POST['reg_username'] . ' not found create account first';
if (!empty($_POST['reg_username']) && (strlen($_POST['reg_username']) > 16 || strlen($_POST['reg_username']) < 5))
$errors[] = 'Usernames must be between 5 - 16 characters.';
if (count($errors) > 0) {
echo '<div class="fail">';
foreach ($errors as $error) {
echo $error . '<br/>';
}
echo '</div>';
} else if (array_key_exists('block_player', $_POST)) {
odbc_exec($mssql, "UPDATE [dbo].[tbl_Account] SET [BlockMode] = 3, [BlockDate] = '2020-01-02 05:07:00' WHERE ID = '".mssql_escape_string($_POST['reg_username'])."'");
echo '<div class="success">'.$_POST['reg_username'].' has been blocked.</div>';
} else if (array_key_exists('unblock_player', $_POST)) {
odbc_exec($mssql, "UPDATE [dbo].[tbl_Account] SET [BlockMode] = 0, [BlockDate] = '' WHERE ID = '".mssql_escape_string($_POST['reg_username'])."'");
echo '<div class="success">'.$_POST['reg_username'].' has been únblocked.</div>';
}
?>
<!DOCTYPE html>
<head>
<title>Atlantica Block a player from playing</title>
<meta charset="utf-8" />
</head>
<body>
<form method="post" action="BlockPlayer.php">
<table>
<tr>
<td>Username:</td>
<td><input type="text" name="reg_username" autocomplete="off" maxlength="16"></td>
</tr>
<tr>
<td><input type="submit" name="block_player" value="Block Player"></td>
<td><input type="submit" name="unblock_player" value="Unblock Player"></td>
</tr>
</table>
</form>
</body>
</html>
Item mall script item_mall.php
Code:
<?php
define('MSSQL_HOST', '127.0.0.1');
define('MSSQL_USER', 'sa');
define('MSSQL_PASS', 'qweQWE123');
$mssql = odbc_connect('Driver={SQL Server};Server='.MSSQL_HOST.';', MSSQL_USER, MSSQL_PASS);
function mssql_escape_string($str){
$str = htmlentities($str);
if (ctype_alnum($str))
return $str;
else
return str_ireplace(array(';', '%', "'"), "", $str);
}
foreach ($_GET as $key=>$getvar){ $_GET[$key] = mssql_escape_string($getvar); }
foreach ($_POST as $key=>$postvar){ $_POST[$key] = mssql_escape_string($postvar); }
if (!isset($_POST['username']))
$_POST['username'] = '';
odbc_exec($mssql, 'USE [AT_AccountDB]');
$checkacc = odbc_exec($mssql, 'SELECT COUNT(*) as count FROM [dbo].[tbl_Account] WHERE ID=\'' . mssql_escape_string($_POST['username']) . '\'');
$errors = array();
if (empty($_POST['username']) && isset($_POST['add_single_user']))
$errors[] = 'You must fill out username you want to give items too.';
if (!empty($_POST['username']) && odbc_result($checkacc, 'count') == 0)
$errors[] = '' . $_POST['reg_username'] . ' not found create account first';
if (!empty($_POST['username']) && (strlen($_POST['username']) > 16 || strlen($_POST['username']) < 6))
$errors[] = 'Usernames must be between 6 - 16 characters.';
if (count($errors) > 0) {
echo '<div class="fail">';
foreach ($errors as $error) {
echo $error . '<br/>';
}
echo '</div>';
} else if (array_key_exists('add_single_user', $_POST)) {
$query = "DECLARE [MENTION=3807069]ReTuRn_[/MENTION]value int
EXEC [MENTION=3807069]ReTuRn_[/MENTION]value = [Atlantica].[dbo].[NGM_PRODUCT_INS]
[MENTION=399107]product[/MENTION]_seq = 1,
[MENTION=2131602]group[/MENTION]_seq = 1,
[MENTION=481970]Main[/MENTION]_category = 1,
[MENTION=5914599]SuB_[/MENTION]category = 1,
[MENTION=3245468]BEST_[/MENTION]flag = 1,
[MENTION=879828]gift[/MENTION]_flag = 1,
[MENTION=554483]oneday[/MENTION]_flag = 1,
[MENTION=283894]icon[/MENTION]_type = N'S',
[MENTION=286917]name[/MENTION] = N'Item',
[MENTION=865581]PRICE[/MENTION] = 0,
[MENTION=394879]Spr[/MENTION]_font = 10,
[MENTION=454765]image[/MENTION] = N'../img/img_p_40x40.tga',
[MENTION=2926059]exima[/MENTION]ge = N'../img/img_p_old_40x40.tga',
[MENTION=1555544]title[/MENTION] = N'Item',
[MENTION=1647567]contents[/MENTION] = N'lala',
[MENTION=5761278]Old_[/MENTION]price = 0,
[MENTION=351783]start[/MENTION]_date = N'2017-09-29',
[MENTION=344964]eNd[/MENTION]_date = N'2040-12-31',
[MENTION=505066]point[/MENTION] = 10
SELECT 'Return Value' = [MENTION=3807069]ReTuRn_[/MENTION]value";
$ngm_product_insert = odbc_exec($mssql, $query);
$product_id = odbc_result($ngm_product_insert, 'Return Value');
echo "<br>product id = " . $product_id;
$query = "DECLARE [MENTION=3807069]ReTuRn_[/MENTION]value int
EXEC [MENTION=3807069]ReTuRn_[/MENTION]value = [Atlantica].[dbo].[NGM_PRODUCT_ITEM_INS]
[MENTION=1134588]item[/MENTION]_seq = 1,
[MENTION=399107]product[/MENTION]_seq = {$product_id},
[MENTION=1134588]item[/MENTION]_unique = {$_POST['itemid']},
[MENTION=1134588]item[/MENTION]_num = {$_POST['item_amount']},
[MENTION=1134588]item[/MENTION]_name = N'Custom Item',
[MENTION=1469793]used[/MENTION]ay = 1
SELECT 'Return Value' = [MENTION=3807069]ReTuRn_[/MENTION]value";
$ngm_item_insert = odbc_exec($mssql, $query);
$item_id_result = odbc_result($ngm_item_insert, 'Return Value');
//echo "<br>res = " . $item_id_result;
$query = "DECLARE [MENTION=3807069]ReTuRn_[/MENTION]value int
EXEC [MENTION=3807069]ReTuRn_[/MENTION]value = [Atlantica].[dbo].[NGM_PRODUCT_UPD_STATUS]
[MENTION=399107]product[/MENTION]_seq = {$product_id},
[MENTION=2204104]Status[/MENTION] = N'S'
SELECT 'Return Value' = [MENTION=3807069]ReTuRn_[/MENTION]value";
$ngm_upd_status = odbc_exec($mssql, $query);
$res = odbc_result($ngm_upd_status, 'Return Value');
//echo "<br>res 2 = " . $res;
$query = "DECLARE [MENTION=3807069]ReTuRn_[/MENTION]value int
EXEC [MENTION=3807069]ReTuRn_[/MENTION]value = [Atlantica].[dbo].[NGM_BUY_INS]
[MENTION=399107]product[/MENTION]_seq = {$product_id},
[MENTION=4436585]user_id[/MENTION] = N'{$_POST['username']}',
[MENTION=729125]Get[/MENTION]_id = N'{$_POST['username']}',
[MENTION=295239]Order[/MENTION]_count = 1,
[MENTION=295239]Order[/MENTION]_price = 0,
[MENTION=385372]money[/MENTION]_real = 0,
[MENTION=385372]money[/MENTION]_bonus = 0,
[MENTION=385372]money[/MENTION]_event = 0,
@tx_no = N'Sale',
[MENTION=1513417]comment[/MENTION] = N'lala',
[MENTION=1096961]reg[/MENTION]_ip = N'127.0.0.1'
SELECT 'Return Value' = [MENTION=3807069]ReTuRn_[/MENTION]value";
$ngm_buy_insert = odbc_exec($mssql, $query);
$result = odbc_result($ngm_buy_insert, 'Return Value');
//echo "<br>res 3 = " . $result;
echo '<div class="success">Your item has been added.</div>';
} else if (array_key_exists('add_all_users', $_POST)) {
odbc_exec($mssql, $query);
echo '<div class="success">Your item has been added.</div>';
}
?>
<!DOCTYPE html>
<head>
<title>Atlantica Item Mall Items</title>
<meta charset="utf-8" />
</head>
<body>
<form method="post" action="item_mall.php">
<table>
<tr>
<td>Username:</td>
<td><input type="text" name="username" autocomplete="off" maxlength="16"></td>
<td>Item Id:</td>
<td><input type="text" name="itemid" autocomplete="off" maxlength="16"></td>
<td>Item Amount:</td>
<td><input type="text" name="item_amount" autocomplete="off" maxlength="16"></td>
</tr>
<tr>
<td><input type="submit" name="add_single_user" value="Add Single User"></td>
<td><input type="submit" name="add_all_users" value="Add All Users"></td>
</tr>
</table>
</form>
</body>
</html>