ZnoteAAC/admin_skills.php
2020-08-02 14:48:13 +02:00

190 lines
8.0 KiB
PHP

<?php require_once 'engine/init.php'; include 'layout/overall/header.php';
protect_page();
admin_only($user_data);
// PREP: Create a function that echos player skills
function playerSkill($skills, $id) {
if (!$skills) return 0;
else {
return $skills[$id]['value'];
}
}
// UPDATE SKILLS POST
if (isset($_POST['pid']) && (int)$_POST['pid'] > 0) {
$pid = (int)$_POST['pid'];
if ($config['ServerEngine'] != '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']];
$playercnf = $config['player'];
/*
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['nvlevel'];
$basehealth = $config['nvHealth'];
$basemana = $config['nvMana'];
$basecap = $config['nvCap'];
}
*/
$LevelsFromBase = $level - $playercnf['base']['level'];
$newhp = $playercnf['base']['health'] + ($statgain['hp'] * $LevelsFromBase);
$newmp = $playercnf['base']['mana'] + ($statgain['mp'] * $LevelsFromBase);
$newcap = $playercnf['base']['cap'] + ($statgain['cap'] * $LevelsFromBase);
// Calibrate hp/mana/cap
if ($config['ServerEngine'] != '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;");
mysql_update("UPDATE `player_skills` SET `value`='". (int)$_POST['sword'] ."' WHERE `player_id`='$pid' AND `skillid`='2' LIMIT 1;");
mysql_update("UPDATE `player_skills` SET `value`='". (int)$_POST['axe'] ."' WHERE `player_id`='$pid' AND `skillid`='3' LIMIT 1;");
mysql_update("UPDATE `player_skills` SET `value`='". (int)$_POST['dist'] ."' WHERE `player_id`='$pid' AND `skillid`='4' LIMIT 1;");
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 `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 `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>
<?php
} else {
?>
<font color="red" size="7">Player must be offline!</font>
<?php
}
}
// Stage 1: Fetch name
if (isset($_GET['name'])) {
$name = getValue($_GET['name']);
} else $name = false;
//if (isset($_POST['name'])) $name = getValue($_POST['name']);
// Stage 2: Fetch user id and skills
$skills = false;
$pid = 0;
if ($name !== false) {
if (user_character_exist($name)) {
$pid = user_character_id($name);
if ($config['ServerEngine'] != 'TFS_10') {
$skills = mysql_select_multi("SELECT `value` FROM `player_skills` WHERE `player_id`='$pid' LIMIT 7;");
$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']);
$skills[] = array('value' => $player['vocation']);
} else {
$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']),
2 => array('value' => $player['skill_sword']),
3 => array('value' => $player['skill_axe']),
4 => array('value' => $player['skill_dist']),
5 => array('value' => $player['skill_shielding']),
6 => array('value' => $player['skill_fishing']),
7 => array('value' => $player['maglevel']),
8 => array('value' => $player['level']),
9 => array('value' => $player['vocation'])
);
}
//data_dump($skills, false, "Player skills");
} else $name = false;
}
?>
<form action="" method="<?php if (!$name) echo "get"; else echo "post";?>">
<input type="hidden" name="pid" value="<?php echo $pid; ?>">
<table class="table">
<tr class="yellow">
<td colspan="2"><center><font size="6">Player skills administration</font></center></td>
</tr>
<tr>
<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['name']; ?></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>
Club fighting:<br>
<input name="club" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 1); ?>">
<br><br>
Sword fighting:<br>
<input name="sword" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 2); ?>">
<br><br>
Axe fighting:<br>
<input name="axe" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 3); ?>">
<br><br>
</td>
<td>
Dist fighting:<br>
<input name="dist" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 4); ?>">
<br><br>
Shield fighting:<br>
<input name="shield" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 5); ?>">
<br><br>
Fish fighting:<br>
<input name="fish" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 6); ?>">
<br><br>
Level:<br>
<input name="level" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 8); ?>">
<br><br>
Magic level:<br>
<input name="magic" type="text" <?php if (!$name) echo "disabled";?> value="<?php echo playerSkill($skills, 7); ?>">
<br><br>
</td>
</tr>
<tr>
<td colspan="2">
<?php
if (!$name) {
?>
<input class="btn btn-primary" type="submit" value="Fetch character skills info">
<?php
} else {
?>
<input class="btn btn-success" type="submit" value="UPDATE SKILLS">
<?php
}
?>
</td>
</tr>
</table>
<a href="admin_skills.php">Reset fields / search new character</a>
</form>
<?php
// end
include 'layout/overall/footer.php'; ?>