TrinityCore 4.3.4.15595

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;
}

if ($#ARGV == 0) {
$command = $ARGV[0];
} else {
for (my $l=0; $l <= $#ARGV; $l++) {
$command .= $ARGV[$l];
if ($l != $#ARGV) {
$command .= " ";
}
}
}

$telnet = new Net::Telnet ( Port=>3443, Prompt=>‘/TC>$/’ );
$telnet->open($host);
my $stat = $telnet->login($username, $password);
if ($stat == 1) {
my @results = $telnet->cmd($command);
print @results if scalar(@results);
} else {
print “login error for user: $usernamen”;
}
$telnet->close;

That should be easily altered to work with a web page, if any alteration is even necessary.

http://collab.kpsn.org/display/tc/player_levelstats

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.

The 4.3.4 branch was sort of abandoned/deprecated. We got our hands full with 6.x and 3.3.5.

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.

What if I want to adjust the spell damage of each class?

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.

Hi all.

Got stuck at this.

./worldserver

TrinityCore rev. 7bf8c98746e6 2015-01-05 16:14:51 +0000 (4.3.4 branch) (Unix, Release) (worldserver-daemon)
to stop.


/__ _ __ / __
// / _ __ / ___ /
, _ __ __
/'__/ /' _ / / / /
/ / / _ _
_ _ _ _ _ _ /____ /_//_/ /_//_//_//_//__/ /
/>
C O R E /___/

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.

  1. How do i bypass vmaps checking? Already disabled on worldserver.conf but didnt work.

  2. Complete client download where. ?

  3. I compiled tools on Debian x64. Will extractors on windows.?

  4. My current client does not includes realmlist.conf, work around.?

Thanks for any help.

4.3.4 is UNSUPPORTED, that means, no support…

Ok. Understood.

Cheers.

Try the following script:

#!/bin/sh

site settings

User=“kylroi”
ClientDir=“/home/$User/WoW Client/World of Warcraft”
DataDir=“/home/$User/WoW Server/Core/data”

these should be safe to leave alone

DBCDir=“dbc”
MAPSDir=“maps”
MMAPSDir=“mmaps”
VMAPSDir=“vmaps”
BLDGDir=“Buildings”

cd “$ClientDir”

clean any existing data directories

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

extract dbc and map files

./mapextractor
cp -r “$DBCDir” “$MAPSDir” “$DataDir”

extract vmap files

./vmap4extractor

create vmaps directory and build core vmaps

mkdir “$VMAPSDir”
./vmap4assembler “$BLDGDir” “$VMAPSDir”
cp -r “$VMAPSDir” “$DataDir”

build mmaps (movement maps) - the longest process

mkdir “$MMAPSDir”
./mmaps_generator
cp -r “$MMAPSDir” “$DataDir”

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:

  1. you can’t

  2. Google is your friend

  3. yes, they should

  4. realmlist.conf? never heard of that one. am I missing something on my operational 4.3.4 server?

  1. You can disable vmaps but you can’t disabled maps.

  2. Torrents

  3. They will only work if you copy windows client data to linux machine and run extractors there. Linux executables won’t work on windows.

  4. You probably have 6.x client.

Ok.

Compiling on windows sure its really tough.

Boost include path: C:/local/boost_1_57_0

Could not find the following static Boost libraries:

boost_system
boost_filesystem
boost_thread
boost_program_options

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)

System variables entered.

Folder exists.

Ideas.?

Why not just copy the WoW client’s Data (possibly Cache, too) folder to your Debian compile and run those extractors?

I know that is easy.

I dont have enough space available in the VM where server runs.

Basically i just want to be able to compile it on windows, its part of learning.

By the moment already got pass the boost error, but now i get an error on compiling.

Cheers

Ok.

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.

Regards

I am quite sure you have incomplete client.

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

Hello, when I do try to open my freshly compiled TC, I do get the following error:

FATAL ERROR:
TrinityCore does not support MySQL versions below 5.1.

I had MySQL 5.4 and now updated to 5.6, and It still sees it as lower than 5.1 why?

If I do run the query “SELECT VERSION();”

I get “5.6.23” as output.What’s wrong here?

P.S.: Running this on a Debian server.