Wouldn’t it be just as easy to have your web form pass data to a script that executes the server commands (say, via telnet on port 3443)? Why do you require the method to be SQL? I even made a perl script that I can run on a Mac while TrinityCore runs on a Linux system. All that script needs is the console command to execute. The other settings are set in the script, and perl scripts are regularly used by web pages.
Here’s the perl script (edited to remove personal settings):
#!/opt/local/bin/perl
1/27 update - quotes around command when calling script are no longer needed
use Net::Telnet;
adjust these variables for your server
my $host = “”;
my $username = “”;
my $password = “”;
my $command = “”;
if ($#ARGV == -1) {
print “worldserver command not providedn”;
exit;
}
Maybe that will let you adjust the stats to your liking. You can adjust the stats for every level of every class, but you won’t find a global setting to adjust them all. You’ll need to tweak the appropriate stat values that you want changed.
[11:45:53] Shauren, it’s possible to copy 3.x accounts password into 6.x accounts to avoid the need of reset them?
[11:46:02] no
[11:46:07] its fully impossible
[11:46:10] different hashing
[11:46:40] you HAVE TO do what blizzard did, create a site/whatever to link accounts
[11:47:03] but what you can do is make a login script on website or somewhere else. User logs in, his password is checked agains old account table and then hashed for bnet
I see the 4.3.4 branch doesn’t have all of those capabilities. Only “create”, “lock”, “set”, and “password” seem to be in there. No way to link the accounts (“link” and “unlink” aren’t in cs_battlenet_account.cpp for the 4.3.4 branch). An update to the support that wasn’t merged into 4.3.4? I know the accounts were linked long before the 5.x or 6.x updates came out, but the 4.3.4 branch can’t form that link.
I was mostly pointing out that the commands you posted included 3 commands (gameaccountcreate, link, and unlink) which are not in the 4.3.4 branch. It was more for information to other people reading the thread. If it was important (to me, anyway), I would have created a ticket about it rather than make that post.
The base spell damage is going to be found in a dbc or db2 file, but intelligence turns into spell power. So, you can adjust the intelligence stat for some control over spell damage, but that won’t really put as much of a limit as you may want. Various items also add stats, including attack power and spell power, so you could be looking at a lot of work to limit that. Do you feel like manually editing every single item (weapons and armor) in the game to ensure a certain limit?If unaltered, the stat reached the 8000 range (try about double that for Cataclysm stats), you may find that the base stats of the character are negligible compared to the bonuses from the equipped gear.
Using configuration file /home/Trinitycore/etc/worldserver.conf.
Using SSL version: OpenSSL 1.0.1e 11 Feb 2013 (library: OpenSSL 1.0.1e 11 Feb 2013)
Using Boost version: 1.49.0
Realm running as realm ID 1 region 2 battlegroup 1
Using World DB: TDB 434.09
Using enUS DBC Locale
Will clear logs table of entries older than 1209600 seconds every 10 minutes.
Using DataDir /home/Trinitycore/
WORLD: MMap data directory is: /home/Trinitycore/mmaps
VMap height checking disabled! Creatures movements and other various things WILL be broken! Expect no support.
VMap support included. LineOfSight: 0, getHeight: 0, indoorCheck: 0
VMap data directory is: /home/Trinitycore/vmaps
Map file ‘/home/Trinitycore/maps/0004331.map’: does not exist!
Correct .map files not found in path ‘/home/Trinitycore/maps’ or .vmtree/.vmtile files in ‘/home/Trinitycore/vmaps’. Please place .map/.vmtree/.vmtile files in appropriate directories or correct the DataDir value in the worldserver.conf file.
I read the recommendations at the moment of posting this, but some links are not valid so i cant solved this on my own.
How do i bypass vmaps checking? Already disabled on worldserver.conf but didnt work.
Complete client download where. ?
I compiled tools on Debian x64. Will extractors on windows.?
My current client does not includes realmlist.conf, work around.?
if [ -d “$DBCDir” ]; then
rm -rf “$DBCDir”
fi
if [ -d “$MAPSDir” ]; then
rm -rf “$MAPSDir”
fi
if [ -d “$MMAPSDir” ]; then
rm -rf “$MMAPSDir”
fi
if [ -d “$VMAPSDir” ]; then
rm -rf “$VMAPSDir”
fi
if [ -d “$BLDGDir” ]; then
rm -rf “$BLDGDir”
fi
Obviously, you’ll need to adjust the User, ClientDir, and DataDir variables for your system. I also have symlinks for the executable in the client dir, as can be guessed by their execution method.
Assuming you have the database correctly created and the .conf files set correctly for your configuration, this script should put the appropriate files into your data dir. The mmaps creation is known to take a very long time to finish. If you do not wish to use them, you can comment out that portion of the script. That way, you could decide to activate the mmaps support later and already have a script that could generate that data again (if necessary).
As for your questions:
you can’t
Google is your friend
yes, they should
realmlist.conf? never heard of that one. am I missing something on my operational 4.3.4 server?
No Boost libraries were found. You may need to set BOOST_LIBRARYDIR to the
directory containing Boost libraries or BOOST_ROOT to the location of
Boost.
Call Stack (most recent call first):
cmake/macros/ConfigureBoost.cmake:28 (find_package)
CMakeLists.txt:61 (include)
Sucessfuly compiled tools on windows and now i have extractors. mapextractor.exe crashed:
Firma con problemas:
Nombre del evento de problema: APPCRASH
Nombre de la aplicación: mapextractor.exe
Versión de la aplicación: 0.0.0.0
Marca de tiempo de la aplicación: 54bf382b
Nombre del módulo con errores: MSVCR120.dll
Versión del módulo con errores: 12.0.21005.1
Marca de tiempo del módulo con errores: 524f7ce6
Código de excepción: 40000015
Desplazamiento de excepción: 000a7676
Versión del sistema operativo: 6.1.7601.2.1.0.256.1
Id. de configuración regional: 9226
Información adicional 1: 20bc
Información adicional 2: 20bcf1ca0450044fec71c56ccf6f8ff6
Información adicional 3: 5361
Información adicional 4: 536150ffa25e72aec590771c81cc1c1f
Copied msvcr120 to wow folder, but didnt solve the issue.
Please, help me. I’, use SOAP for accounts creation and there was a problem: Could not connect to host.
Worldserverconfig:
SOAP.Enabled = 1
SOAP.IP
Description: Bind SOAP service to IP/hostname.
Default: “127.0.0.1” - (Bind to localhost)
SOAP.IP = “127.0.0.1”
SOAP.Port
Description: TCP port to reach the SOAP service.
Default: 7878
SOAP.Port = 7878
SOAPRegistration
<?php
class SOAPRegistration
{
protected $messages = Array();
protected $db;
protected $soap;
protected $showForm = true;
public function __construct()
{
try
{
$this -> dbConnect();
if ($this -> validateInput())
{
$this -> soapConnect();
$this -> showForm = false;
$this -> soapCommand('bnetaccount create '.$_POST["accountname"].' '.$_POST["password"]);
$this -> soapCommand('account set gmlevel '.$_POST["accountname"].' 0 -1');
$stmt = $this -> db -> prepare("UPDATE `battlenet_accounts` SET `emails` = ? WHERE `username` = ?;");
$stmt -> bind_param('sis', $_POST["email"], $_POST["accountname"]);
$stmt -> execute();
}
}
catch (Exception $e)
{
$this -> addMessage($e -> getMessage());
}
}
protected function validateInput()
{
if (empty($_POST["accountname"]))
{
$this -> addMessage('Please fill in an account name.');
}
elseif (!preg_match('/^[a-z0-9@]{5,32}$/i', $_POST["accountname"]))
{
$this -> addMessage('Your account name must be between 5 and 32 characters long and may only contain letters and numbers.');
}
else
{
$stmt = $this -> db -> prepare("SELECT `email` FROM `battlenet_accounts` WHERE `email` = ?;");
$stmt -> bind_param('s', $_POST["accountname"]);
$stmt -> execute();
$stmt -> store_result();
if ($stmt->num_rows > 0)
{
$this -> addMessage('There is already an account with that name. Please use a different account name.');
}
}
if (empty($_POST["password"]))
{
$this -> addMessage('Please fill in a password.');
}
else
{
if (!preg_match('/^[a-z0-9!"#$%]{8,16}$/i', $_POST["password"]))
{
$this -> addMessage('The password must be between 8 and 16 characters long and may only contain letters, numbers and the following special characters: !"#$%');
}
if (empty($_POST["password2"]))
{
$this -> addMessage('Please confirm your password.');
}
elseif ($_POST["password"] !== $_POST["password2"])
{
$this -> addMessage('The two passwords do not match.');
}
}
if (empty($_POST["email"]))
{
$this -> addMessage('Please fill in an e-mail address.');
}
elseif (!filter_var($_POST["email"], FILTER_VALIDATE_EMAIL))
{
$this -> addMessage('You have entered an invalid e-mail address.');
}
elseif (strlen($_POST["email"]) > 254)
{
$this -> addMessage('The e-mail address can not be longer than 254 characters long.');
}
elseif (CHECK_FOR_DUPLICATE_EMAIL)
{
$stmt = $this -> db -> prepare("SELECT `emails` FROM `battlenet_accounts` WHERE `emails` = ?;");
$stmt -> bind_param('s', $_POST["email"]);
$stmt -> execute();
$stmt -> store_result();
if ($stmt->num_rows > 0)
{
$this -> addMessage('There is already an account with that e-mail address. Please use a different e-mail.');
}
}
if (!isset($_POST["expansion"]) || $_POST["expansion"] != intval($_POST["expansion"]) || intval($_POST["expansion"]) < 0 || intval($_POST["expansion"]) > 2)
{
$this -> addMessage('Please select your expansion.');
}
return empty($this -> messages);
}
protected function dbConnect()
{
$this -> db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if (mysqli_connect_errno())
{
throw new Exception("Database connection failed: ". mysqli_connect_error());
}
return true;
}
protected function soapConnect()
{
$this -> soap = new SoapClient(NULL, Array(
"location"=> "http://". SOAP_IP .":". SOAP_PORT ."/",
"uri" => "urn:TC",
'style' => SOAP_RPC,
'login' => SOAP_USER, //login server
'password' => SOAP_PASS, //password server
'keep_alive' => false //keep_alive only works in php 5.4.
));
}
protected function soapCommand($command)
{
$result = $this -> soap -> executeCommand(new SoapParam($command, 'command'));
$this -> addMessage($result);
return true;
}
protected function addMessage($message)
{
$this -> messages[] = $message;
return true;
}
public function getMessages()
{
return $this -> messages;
}
public function showForm()
{
return $this -> showForm;
}
public function __destruct()
{
$this -> db -> close();
}
}
Please help to solve the problem