mirror of
https://github.com/Znote/ZnoteAAC.git
synced 2025-04-26 01:09:22 +02:00
395 lines
12 KiB
PHP
395 lines
12 KiB
PHP
<?php require_once 'engine/init.php'; include 'layout/overall/header.php';
|
|
|
|
if($config['items'] == true) {
|
|
|
|
// Loading equipable items list
|
|
$itemsCache = new Cache('engine/cache/items');
|
|
if (user_logged_in() && is_admin($user_data)) {
|
|
if (isset($_GET['update'])) {
|
|
echo "<p><strong>Logged in as admin, loading engine/XML/items.xml file and updating cache.</strong></p>";
|
|
// ITEMS XML TO PHP ARRAY
|
|
$itemsXML = simplexml_load_file("engine/XML/items.xml");
|
|
if ($itemsXML !== false) {
|
|
$types = array();
|
|
$type_attr = array();
|
|
$groups = array();
|
|
|
|
// This empty array will eventually contain all items grouped by type and indexed by item type
|
|
$items = array();
|
|
|
|
// Loop through each XML item object
|
|
foreach ($itemsXML as $type => $item) {
|
|
// Get item types
|
|
if (!in_array($type, $types)) {
|
|
$types[] = $type;
|
|
$type_attr[$type] = array();
|
|
}
|
|
// Get item attributes
|
|
$attributes = array();
|
|
// Extract attribute values from the XML object and store it in a more manage friendly way $attributes
|
|
foreach ($item->attributes() as $aName => $aValue)
|
|
$attributes["$aName"] = "$aValue";
|
|
// Remove unececsary attributes
|
|
if (isset($attributes['plural'])) unset($attributes['plural']);
|
|
//if (isset($attributes['id'])) unset($attributes['id']);
|
|
//if (isset($attributes['fromid'])) unset($attributes['fromid']);
|
|
//if (isset($attributes['toid'])) unset($attributes['toid']);
|
|
if (isset($attributes['editorsuffix'])) unset($attributes['editorsuffix']);
|
|
if (isset($attributes['article'])) unset($attributes['article']);
|
|
// Populate type attributes
|
|
foreach (array_keys($attributes) as $attr) {
|
|
if (!in_array($attr, $type_attr[$type]))
|
|
$type_attr[$type][] = $attr;
|
|
}
|
|
|
|
// Loop through every <attribute> object inside the <item> object
|
|
$item_attributes = array();
|
|
$iai = array();
|
|
|
|
foreach ($item as $attribute) {
|
|
foreach ($attribute->attributes() as $aName => $aValue) {
|
|
if($aName == 'key') {
|
|
$attribute_attributes["$aName"] = "$aValue";
|
|
$iai[] = $attribute_attributes[$aName];
|
|
}
|
|
}
|
|
}
|
|
foreach ($item as $attribute) {
|
|
foreach ($attribute->attributes() as $aName => $aValue) {
|
|
$attribute_attributes["$aName"] = "$aValue";
|
|
if(in_array($attribute_attributes[$aName], $iai)) {
|
|
$whatis = $attribute_attributes[$aName];
|
|
} else {
|
|
$item_attributes[$whatis] = (isset($attribute_attributes[$aName])) ? $attribute_attributes[$aName] : false;
|
|
}
|
|
}
|
|
}
|
|
foreach (array_keys($attributes) as $attr) {
|
|
if (!in_array($attr, $type_attr[$type]))
|
|
$type_attr[$type][] = $attr;
|
|
}
|
|
|
|
// Add items with slotType or weaponType (TFS 1.x default)
|
|
if(isset($attributes['id'])) $id = (isset($attributes['id'])) ? $attributes['id'] : false;
|
|
if(isset($attributes['fromid'])) $id = (isset($attributes['name'])) ? $attributes['name'] : false;
|
|
if (isset($item_attributes['slotType']) || isset($item_attributes['weaponType'])) {
|
|
$items[$type][$id] = array('attributes' => $item_attributes);
|
|
|
|
// Populate item array with potential relevant attributes for the item type
|
|
foreach ($type_attr[$type] as $att)
|
|
$items[$type][$id][$att] = (isset($attributes[$att])) ? $attributes[$att] : false;
|
|
}
|
|
|
|
|
|
$save = array($items);
|
|
|
|
|
|
}
|
|
$itemsCache->setContent($items);
|
|
$itemsCache->save();
|
|
} else {
|
|
echo "<p><strong>Failed to load engine/XML/items.xml file.</strong></p>";
|
|
}
|
|
} else {
|
|
$items = $itemsCache->load();
|
|
?>
|
|
<form action="">
|
|
<input type="submit" name="update" value="Generate new cache">
|
|
</form>
|
|
<?php
|
|
}
|
|
// END ITEMS XML TO PHP ARRAY
|
|
} else {
|
|
$items = $itemsCache->load();
|
|
}
|
|
// End loading items list
|
|
|
|
if ($items) {
|
|
// Preparing data
|
|
$types = array_keys($items);
|
|
$itemServer = 'http://'.$config['shop']['imageServer'].'/';
|
|
|
|
//slotType values and names
|
|
if(isset($_GET['slot'])) {
|
|
switch($_GET['slot']) {
|
|
case 'helmet':
|
|
$slottype = 'head';
|
|
$slottype_name = 'Helmets';
|
|
break;
|
|
case 'sword':
|
|
$slottype = 'sword';
|
|
$slottype_name = 'Swords';
|
|
break;
|
|
case 'distance':
|
|
$slottype = 'distance';
|
|
$slottype_name = 'Distance Weapons';
|
|
break;
|
|
case 'wand':
|
|
$slottype = 'wand';
|
|
$slottype_name = 'Wands & Rods';
|
|
break;
|
|
case 'armor':
|
|
$slottype = 'body';
|
|
$slottype_name = 'Armors';
|
|
break;
|
|
case 'club':
|
|
$slottype = 'club';
|
|
$slottype_name = 'Clubs';
|
|
break;
|
|
case 'ammunition':
|
|
$slottype = 'ammunition';
|
|
$slottype_name = 'Ammunition';
|
|
break;
|
|
case 'book':
|
|
$slottype = 'shield';
|
|
$slottype_name = 'Spellbooks';
|
|
break;
|
|
case 'legs':
|
|
$slottype = 'legs';
|
|
$slottype_name = 'Legs';
|
|
break;
|
|
case 'axe':
|
|
$slottype = 'axe';
|
|
$slottype_name = 'Axes';
|
|
break;
|
|
case 'necklace':
|
|
$slottype = 'necklace';
|
|
$slottype_name = 'Amulets & Necklaces';
|
|
break;
|
|
case 'feet':
|
|
$slottype = 'feet';
|
|
$slottype_name = 'Boots';
|
|
break;
|
|
case 'shield':
|
|
$slottype = 'shield';
|
|
$slottype_name = 'Shields & Spellbooks';
|
|
break;
|
|
case 'backpack':
|
|
$slottype = 'backpack';
|
|
$slottype_name = 'Backpacks';
|
|
break;
|
|
case 'ring':
|
|
$slottype = 'ring';
|
|
$slottype_name = 'Rings';
|
|
break;
|
|
default:
|
|
$slottype_name = 'null';
|
|
break;
|
|
}
|
|
}
|
|
|
|
// Render HTML
|
|
if(isset($_GET['slot']) && ($slottype_name == 'null')) header("Location:items.php");
|
|
?>
|
|
|
|
<h1 id="items">Items<?php if (isset($_GET['slot'])) echo ' ('.$slottype_name.')';?></h1>
|
|
<?php if(empty($_GET['slot'])) { ?>
|
|
<table>
|
|
<tbody>
|
|
<tr>
|
|
<td style="text-align:center;"><a href="?slot=helmet">Helmets<br><img src="<?php echo $itemServer.'2471.gif'; ?>" /></a></td>
|
|
<td style="text-align:center;"><a href="?slot=sword">Swords<br><img src="<?php echo $itemServer.'8931.gif'; ?>" /></a></td>
|
|
<td style="text-align:center;"><a href="?slot=shield">Shields & Spellbooks<br><img src="<?php echo $itemServer.'2523.gif'; ?>" /></a></td>
|
|
<td style="text-align:center;"><a href="?slot=necklace">Amulets<br><img src="<?php echo $itemServer.'2173.gif'; ?>" /></a></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:center;"><a href="?slot=armor">Armors<br><img src="<?php echo $itemServer.'2466.gif'; ?>" /></a></td>
|
|
<td style="text-align:center;"><a href="?slot=club">Clubs<br><img src="<?php echo $itemServer.'2444.gif'; ?>" /></a></td>
|
|
<td style="text-align:center;"><a href="?slot=wand">Wands & Rods<br><img src="<?php echo $itemServer.'2190.gif'; ?>" /></a></td>
|
|
<td style="text-align:center;"><a href="?slot=ammunition">Ammunition<br><img src="<?php echo $itemServer.'6529.gif'; ?>" /></a></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:center;"><a href="?slot=legs">Legs<br><img src="<?php echo $itemServer.'2470.gif'; ?>" /></a></td>
|
|
<td style="text-align:center;"><a href="?slot=axe">Axes<br><img src="<?php echo $itemServer.'8925.gif'; ?>" /></a></td>
|
|
<td style="text-align:center;"><a href="?slot=ring">Rings<br><img src="<?php echo $itemServer.'6093.gif'; ?>" /></a></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="text-align:center;"><a href="?slot=feet">Boots<br><img src="<?php echo $itemServer.'2646.gif'; ?>" /></a></td>
|
|
<td style="text-align:center;"><a href="?slot=distance">Distance<br><img src="<?php echo $itemServer.'5803.gif'; ?>" /></a></td>
|
|
<td style="text-align:center;"><a href="?slot=backpack">Backpacks<br><img src="<?php echo $itemServer.'9774.gif'; ?>" /></a></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<?php } else { ?>
|
|
<table>
|
|
<tbody>
|
|
<tr>
|
|
<td></td>
|
|
<td>Name</td>
|
|
<td>Attributes</td>
|
|
</tr>
|
|
|
|
<?php foreach ($items['item'] as $select) {
|
|
$attributes = array();
|
|
$extradef = NULL;
|
|
$element = NULL;
|
|
if (!empty($select['id'])) $itemid = $select['id'];
|
|
else $itemid = $select['fromid'];
|
|
|
|
if (!empty($select['attributes'])) {
|
|
foreach ($select['attributes'] as $att => $value) {
|
|
if($att == 'slotType' || $att == 'weaponType') $slotType = $value;
|
|
if(!empty($slotType) && $slotType == $slottype) $show = true;
|
|
else $show = false;
|
|
}
|
|
}
|
|
|
|
if($show == true) { ?>
|
|
<tr>
|
|
<td><img src="<?php echo $itemServer.$itemid.'.gif'; ?>" /></td>
|
|
<td><?php echo ucwords($select['name']); ?></td>
|
|
<td><?php
|
|
foreach ($select['attributes'] as $array => $value) {
|
|
|
|
$extra = NULL;
|
|
if($value > 0) $extra = '+';
|
|
switch ($array) {
|
|
case 'weight':
|
|
echo ucwords($array).': '.intval($value/100).'.'.substr($value, -2).' oz<br>';
|
|
break;
|
|
case 'containerSize':
|
|
echo 'Slots: '.$value.'<br>';
|
|
break;
|
|
case 'armor':
|
|
echo ucwords($array).': '.$value.'<br>';
|
|
break;
|
|
case 'attack':
|
|
echo ucwords($array).': '.$value;
|
|
if($element != NULL) echo ' ('.$element.')';
|
|
echo '<br>';
|
|
break;
|
|
case 'defense':
|
|
echo ucwords($array).': '.$value;
|
|
if($extradef != NULL) echo ' ('.$extradef.')';
|
|
echo '<br>';
|
|
break;
|
|
case 'skillFist':
|
|
echo 'Fist Fighting: '.$extra.$value.'<br>';
|
|
break;
|
|
case 'skillAxe':
|
|
echo 'Axe Fighting: '.$extra.$value.'<br>';
|
|
break;
|
|
case 'skillSword':
|
|
echo 'Sword Fighting: '.$extra.$value.'<br>';
|
|
break;
|
|
case 'skillClub':
|
|
echo 'Club Fighting: '.$extra.$value.'<br>';
|
|
break;
|
|
case 'skillAxe':
|
|
echo 'Axe Fighting: '.$extra.$value.'<br>';
|
|
break;
|
|
case 'skillDist':
|
|
echo 'Distance Fighting: '.$extra.$value.'<br>';
|
|
break;
|
|
case 'skillShield':
|
|
echo 'Shielding: '.$extra.$value.'<br>';
|
|
break;
|
|
case 'range':
|
|
echo ucwords($array).': '.$value.'<br>';
|
|
break;
|
|
case 'shootType':
|
|
echo 'Shoot Type: '.ucwords($value).'<br>';
|
|
break;
|
|
case 'hitChance':
|
|
echo 'Hit: '.$extra.$value.'%<br>';
|
|
break;
|
|
case 'magiclevelpoints':
|
|
echo 'Magic Level: '.$extra.$value.'<br>';
|
|
break;
|
|
case 'absorbPercentEnergy':
|
|
echo 'Energy Protection: '.$extra.$value.'%<br>';
|
|
break;
|
|
case 'absorbPercentFire':
|
|
echo 'Fire Protection: '.$extra.$value.'%<br>';
|
|
break;
|
|
case 'absorbPercentEarth':
|
|
echo 'Earth Protection: '.$extra.$value.'%<br>';
|
|
break;
|
|
case 'absorbPercentPoison':
|
|
echo 'Poison Protection: '.$extra.$value.'%<br>';
|
|
break;
|
|
case 'absorbPercentIce':
|
|
echo 'Ice Protection: '.$extra.$value.'%<br>';
|
|
break;
|
|
case 'absorbPercentHoly':
|
|
echo 'Holy Protection: '.$extra.$value.'%<br>';
|
|
break;
|
|
case 'absorbPercentDeath':
|
|
echo 'Death Protection: '.$extra.$value.'%<br>';
|
|
break;
|
|
case 'absorbPercentLifeDrain':
|
|
echo 'Life Drain Protection: '.$extra.$value.'%<br>';
|
|
break;
|
|
case 'absorbPercentManaDrain':
|
|
echo 'Mana Drain Protection: '.$extra.$value.'%<br>';
|
|
break;
|
|
case 'absorbPercentDrown':
|
|
echo 'Drown Protection: '.$extra.$value.'%<br>';
|
|
break;
|
|
case 'absorbPercentPhysical':
|
|
echo 'Physical Protection: '.$extra.$value.'%<br>';
|
|
break;
|
|
case 'absorbPercentIce':
|
|
echo 'Ice Protection: '.$extra.$value.'%<br>';
|
|
break;
|
|
/**case 'suppressDrunk':
|
|
echo 'Suppress Drunk: Yes<br>';
|
|
break;
|
|
case 'suppressEnergy':
|
|
echo 'Suppress Energy: Yes<br>';
|
|
break;
|
|
case 'suppressFire':
|
|
echo 'Suppress Fire: Yes<br>';
|
|
break;
|
|
case 'suppressPoison':
|
|
echo 'Suppress Poison: Yes<br>';
|
|
break;
|
|
case 'suppressDrown':
|
|
echo 'Suppress Drown: Yes<br>';
|
|
break;
|
|
case 'suppressPhysical':
|
|
echo 'Suppress Bleeding: Yes<br>';
|
|
break;
|
|
case 'suppressFreeze':
|
|
echo 'Suppress Freeze: Yes<br>';
|
|
break;
|
|
case 'suppressDazzle':
|
|
echo 'Suppress Dazzle: Yes<br>';
|
|
break;
|
|
case 'suppressCurse':
|
|
echo 'Suppress Curse: Yes<br>';
|
|
break;
|
|
Those are not necessary in my opinion, but if you want to show
|
|
**/
|
|
case 'speed':
|
|
echo 'Speed: '.$extra.($value/2).'<br>';
|
|
break;
|
|
case 'charges':
|
|
echo 'Charges: '.$value.'<br>';
|
|
break;
|
|
}
|
|
}
|
|
?>
|
|
</td>
|
|
</tr>
|
|
|
|
|
|
<?php
|
|
}
|
|
} ?>
|
|
|
|
</tbody>
|
|
</table>
|
|
|
|
<?php
|
|
}
|
|
} else { ?>
|
|
<h1>Items</h1>
|
|
<p>Items have currently not been loaded into the website by the server admin.</p>
|
|
<?php }
|
|
} else {
|
|
echo 'Items\' page not enabled.';
|
|
}
|
|
include 'layout/overall/footer.php';
|
|
?>
|