mirror of
https://github.com/Znote/ZnoteAAC.git
synced 2025-05-01 19:59:22 +02:00
Created / Fix #89 You can now change vocations in admin_skills, and HP/Mana/Cap calibrates accordingly to level and vocation.
This commit is contained in:
parent
ce3180942d
commit
778e51c865
@ -17,6 +17,34 @@ if (isset($_POST['pid']) && (int)$_POST['pid'] > 0) {
|
||||
if ($config['TFSVersion'] != 'TFS_10') $status = user_is_online($pid);
|
||||
else $status = user_is_online_10($pid);
|
||||
if (!$status) {
|
||||
// New player level
|
||||
$level = (int)$_POST['level'];
|
||||
|
||||
// Fetch stat gain for vocation
|
||||
$statgain = $config['vocations_gain'][(int)$_POST['vocation']];
|
||||
|
||||
if ((int)$_POST['vocation'] !== 0) {
|
||||
// Fetch base level and stats:
|
||||
$baselevel = $config['level'];
|
||||
$basehealth = $config['health'];
|
||||
$basemana = $config['mana'];
|
||||
$basecap = $config['cap'];
|
||||
} else { // No vocation stats
|
||||
// Fetch base level and stats:
|
||||
$baselevel = $config['level'];
|
||||
$basehealth = $config['health'];
|
||||
$basemana = $config['mana'];
|
||||
$basecap = $config['cap'];
|
||||
}
|
||||
|
||||
$levelC = $level - $baselevel;
|
||||
if ($levelC >= 1) {
|
||||
$newhp = $basehealth + ($statgain['hp'] * $levelC);
|
||||
$newmp = $basemana + ($statgain['mp'] * $levelC);
|
||||
$newcap = $basecap + ($statgain['cap'] * $levelC);
|
||||
} else die("Failed to calibrate skills. Level below $baselevel.");
|
||||
|
||||
// Calibrate hp/mana/cap
|
||||
if ($config['TFSVersion'] != 'TFS_10') {
|
||||
mysql_update("UPDATE `player_skills` SET `value`='". (int)$_POST['fist'] ."' WHERE `player_id`='$pid' AND `skillid`='0' LIMIT 1;");
|
||||
mysql_update("UPDATE `player_skills` SET `value`='". (int)$_POST['club'] ."' WHERE `player_id`='$pid' AND `skillid`='1' LIMIT 1;");
|
||||
@ -26,10 +54,13 @@ mysql_update("UPDATE `player_skills` SET `value`='". (int)$_POST['dist'] ."' WHE
|
||||
mysql_update("UPDATE `player_skills` SET `value`='". (int)$_POST['shield'] ."' WHERE `player_id`='$pid' AND `skillid`='5' LIMIT 1;");
|
||||
mysql_update("UPDATE `player_skills` SET `value`='". (int)$_POST['fish'] ."' WHERE `player_id`='$pid' AND `skillid`='6' LIMIT 1;");
|
||||
mysql_update("UPDATE `players` SET `maglevel`='". (int)$_POST['magic'] ."' WHERE `id`='$pid' LIMIT 1;");
|
||||
mysql_update("UPDATE `players` SET `level`='". (int)$_POST['level'] ."' WHERE `id`='$pid' LIMIT 1;");
|
||||
mysql_update("UPDATE `players` SET `experience`='". level_to_experience((int)$_POST['level']) ."' WHERE `id`='$pid' LIMIT 1;");
|
||||
mysql_update("UPDATE `players` SET `vocation`='". (int)$_POST['vocation'] ."' WHERE `id`='$pid' LIMIT 1;");
|
||||
mysql_update("UPDATE `players` SET `level`='". $level ."' WHERE `id`='$pid' LIMIT 1;");
|
||||
mysql_update("UPDATE `players` SET `experience`='". level_to_experience($level) ."' WHERE `id`='$pid' LIMIT 1;");
|
||||
// Update HP/mana/cap accordingly to level & vocation
|
||||
mysql_update("UPDATE `players` SET `health`='". $newhp ."', `healthmax`='". $newhp ."', `mana`='". $newmp ."', `manamax`='". $newmp ."', `cap`='". $newcap ."' WHERE `id`='$pid' LIMIT 1;");
|
||||
} else {
|
||||
mysql_update("UPDATE `players` SET `skill_fist`='". (int)$_POST['fist'] ."', `skill_club`='". (int)$_POST['club'] ."', `skill_sword`='". (int)$_POST['sword'] ."', `skill_axe`='". (int)$_POST['axe'] ."', `skill_dist`='". (int)$_POST['dist'] ."', `skill_shielding`='". (int)$_POST['shield'] ."', `skill_fishing`='". (int)$_POST['fish'] ."', `maglevel`='". (int)$_POST['magic'] ."', `level`='". (int)$_POST['level'] ."', `experience`='". level_to_experience((int)$_POST['level']) ."' WHERE `id`='$pid' LIMIT 1;");
|
||||
mysql_update("UPDATE `players` SET `health`='". $newhp ."', `healthmax`='". $newhp ."', `mana`='". $newmp ."', `manamax`='". $newmp ."', `cap`='". $newcap ."', `vocation`='". (int)$_POST['vocation'] ."', `skill_fist`='". (int)$_POST['fist'] ."', `skill_club`='". (int)$_POST['club'] ."', `skill_sword`='". (int)$_POST['sword'] ."', `skill_axe`='". (int)$_POST['axe'] ."', `skill_dist`='". (int)$_POST['dist'] ."', `skill_shielding`='". (int)$_POST['shield'] ."', `skill_fishing`='". (int)$_POST['fish'] ."', `maglevel`='". (int)$_POST['magic'] ."', `level`='". $level ."', `experience`='". level_to_experience($level) ."' WHERE `id`='$pid' LIMIT 1;");
|
||||
}
|
||||
?>
|
||||
<h1>Player skills updated!</h1>
|
||||
@ -56,11 +87,11 @@ if ($name !== false) {
|
||||
|
||||
if ($config['TFSVersion'] != 'TFS_10') {
|
||||
$skills = mysql_select_multi("SELECT `value` FROM `player_skills` WHERE `player_id`='$pid' LIMIT 7;");
|
||||
$player = mysql_select_single("SELECT `maglevel`, `level` FROM `players` WHERE `id`='$pid' LIMIT 1;");
|
||||
$player = mysql_select_single("SELECT `maglevel`, `level`, `vocation` FROM `players` WHERE `id`='$pid' LIMIT 1;");
|
||||
$skills[] = array('value' => $player['maglevel']);
|
||||
$skills[] = array('value' => $player['level']);
|
||||
} else {
|
||||
$player = mysql_select_single("SELECT `skill_fist`, `skill_club`, `skill_sword`, `skill_axe`, `skill_dist`, `skill_shielding`, `skill_fishing`, `maglevel`, `level` FROM `players` WHERE `id`='$pid' LIMIT 1;");
|
||||
$player = mysql_select_single("SELECT `skill_fist`, `skill_club`, `skill_sword`, `skill_axe`, `skill_dist`, `skill_shielding`, `skill_fishing`, `maglevel`, `level`, `vocation` FROM `players` WHERE `id`='$pid' LIMIT 1;");
|
||||
$skills = array(
|
||||
0 => array('value' => $player['skill_fist']),
|
||||
1 => array('value' => $player['skill_club']),
|
||||
@ -71,6 +102,7 @@ if ($name !== false) {
|
||||
6 => array('value' => $player['skill_fishing']),
|
||||
7 => array('value' => $player['maglevel']),
|
||||
8 => array('value' => $player['level']),
|
||||
9 => array('value' => $player['vocation'])
|
||||
);
|
||||
}
|
||||
|
||||
@ -89,6 +121,18 @@ if ($name !== false) {
|
||||
<td>
|
||||
<input name="name" type="text" placeholder="Character name" <?php if ($name !== false) echo "value='$name' disabled";?>>
|
||||
<br><br>
|
||||
Vocation:<br>
|
||||
<select name="vocation" <?php if (!$name) echo "disabled";?>>
|
||||
<?php
|
||||
$vocations = $config['vocations'];
|
||||
foreach ($vocations as $vid => $vname) {
|
||||
?>
|
||||
<option value="<?php echo $vid; ?>" <?php if ($vid == playerSkill($skills, 9)) echo "selected"?> ><?php echo $vname; ?></option>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<br><br>
|
||||
Fist fighting:<br>
|
||||
<input name="fist" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 0); ?>">
|
||||
<br><br>
|
||||
|
56
config.php
56
config.php
@ -14,13 +14,13 @@
|
||||
// ------------------------ \\
|
||||
|
||||
// phpmyadmin username for OT server: (DONT USE "root" if ur hosting to public.).
|
||||
$config['sqlUser'] = 'daler';
|
||||
$config['sqlUser'] = 'tfs10';
|
||||
|
||||
// phpmyadmin password for OT server:
|
||||
$config['sqlPassword'] = 'daler';
|
||||
$config['sqlPassword'] = 'tfs10';
|
||||
|
||||
// The database name to connect to. (This is usually same as username).
|
||||
$config['sqlDatabase'] = 'daler';
|
||||
$config['sqlDatabase'] = 'tfs10';
|
||||
|
||||
// Hostname is usually localhost or 127.0.0.1.
|
||||
$config['sqlHost'] = 'localhost';
|
||||
@ -59,6 +59,56 @@
|
||||
8 => 'Elite Knight',
|
||||
);
|
||||
|
||||
/* Vocation stat gains per level
|
||||
- Ordered by vocation ID
|
||||
- Currently used for admin_skills page. */
|
||||
$config['vocations_gain'] = array(
|
||||
0 => array(
|
||||
'hp' => 5,
|
||||
'mp' => 5,
|
||||
'cap' => 10
|
||||
),
|
||||
1 => array(
|
||||
'hp' => 5,
|
||||
'mp' => 30,
|
||||
'cap' => 10
|
||||
),
|
||||
2 => array(
|
||||
'hp' => 5,
|
||||
'mp' => 30,
|
||||
'cap' => 10
|
||||
),
|
||||
3 => array(
|
||||
'hp' => 10,
|
||||
'mp' => 15,
|
||||
'cap' => 20
|
||||
),
|
||||
4 => array(
|
||||
'hp' => 15,
|
||||
'mp' => 5,
|
||||
'cap' => 25
|
||||
),
|
||||
5 => array(
|
||||
'hp' => 5,
|
||||
'mp' => 30,
|
||||
'cap' => 10
|
||||
),
|
||||
6 => array(
|
||||
'hp' => 5,
|
||||
'mp' => 30,
|
||||
'cap' => 10
|
||||
),
|
||||
7 => array(
|
||||
'hp' => 10,
|
||||
'mp' => 15,
|
||||
'cap' => 20
|
||||
),
|
||||
8 => array(
|
||||
'hp' => 15,
|
||||
'mp' => 5,
|
||||
'cap' => 25
|
||||
),
|
||||
);
|
||||
// Town ids and names: (In RME map editor, open map, click CTRL + T to view towns, their names and their IDs.
|
||||
// townID => 'townName' etc: ['3'=>'Thais']
|
||||
$config['towns'] = array(
|
||||
|
Loading…
x
Reference in New Issue
Block a user