• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Move old TFS skills to TFS 1.0 skills in database

Gesior.pl

Mega Noob&LOL 2012
Senator
Joined
Sep 18, 2007
Messages
2,965
Solutions
99
Reaction score
3,375
Location
Poland
GitHub
gesior
If you want change your TFS to TFS 1.0 you must change many things in database (add missing fields in tables etc.) and you must move current skills of players from `player_skills` to fields in `players` (like skill_sword, skill_sword_tries, ...). I made that script for friend who had problem with that.

Paste it in new .php file, edit config of database and then open that file in web browser:

PHP:
<?php
// EDIT: theforgottenserver (and maybe 127.0.0.1)
$dsn = 'mysql:dbname=theforgottenserver;host=127.0.0.1';
// EDIT database username and password
$user = 'databaseUsername';
$password = 'databasePassword';

try
{
    $SQL = new PDO($dsn, $user, $password);
}
catch (PDOException $e)
{
    echo 'Connection failed: ' . $e->getMessage();
    exit;
}
$skillNames = array('fist', 'club', 'sword', 'axe', 'dist', 'shielding', 'fishing');

$player_skills = $SQL->query('SELECT * FROM `player_skills`')->fetchAll();
foreach($player_skills as $skill)
{
    $SQL->query('UPDATE `players` SET `skill_' . $skillNames[$skill['skillid']] . '` = ' . $skill['value'] . ', `skill_' . $skillNames[$skill['skillid']] . '_tries` = ' . $skill['count'] . ' WHERE `id` = ' . $skill['player_id']);
}
echo 'Moved ' . count($player_skills) . ' skills from `player_skills` to `players`';
 
Why? When its done automatically in data/migrations/15.lua

Also, simpler query to do this is just:
Code:
UPDATE `players` SET `skill_fist` = (SELECT `value` FROM `player_skills` WHERE `player_id` = `id` AND `skillid` = 0), `skill_fist_tries` = (SELECT `count` FROM `player_skills` WHERE `player_id` = `id` AND `skillid` = 0), `skill_club` = (SELECT `value` FROM `player_skills` WHERE `player_id` = `id` AND `skillid` = 1), `skill_club_tries` = (SELECT `count` FROM `player_skills` WHERE `player_id` = `id` AND `skillid` = 1), `skill_sword` = (SELECT `value` FROM `player_skills` WHERE `player_id` = `id` AND `skillid` = 2), `skill_sword_tries` = (SELECT `count` FROM `player_skills` WHERE `player_id` = `id` AND `skillid` = 2), `skill_axe` = (SELECT `value` FROM `player_skills` WHERE `player_id` = `id` AND `skillid` = 3), `skill_axe_tries` = (SELECT `count` FROM `player_skills` WHERE `player_id` = `id` AND `skillid` = 3), `skill_dist` = (SELECT `value` FROM `player_skills` WHERE `player_id` = `id` AND `skillid` = 4), `skill_dist_tries` = (SELECT `count` FROM `player_skills` WHERE `player_id` = `id` AND `skillid` = 4), `skill_shielding` = (SELECT `value` FROM `player_skills` WHERE `player_id` = `id` AND `skillid` = 5), `skill_shielding_tries` = (SELECT `count` FROM `player_skills` WHERE `player_id` = `id` AND `skillid` = 5), `skill_fishing` = (SELECT `value` FROM `player_skills` WHERE `player_id` = `id` AND `skillid` = 6), `skill_fishing_tries` = (SELECT `count` FROM `player_skills` WHERE `player_id` = `id` AND `skillid` = 6)
 
Back
Top