You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			508 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			PHP
		
	
			
		
		
	
	
			508 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			PHP
		
	
| <?php
 | |
| 
 | |
| function getDefaultData() {
 | |
| 	$array = array();
 | |
| 	$array['race_type']=array(
 | |
| 	array(
 | |
| 		'name'	=> 'Onepiece',
 | |
| 		'id'	=> 1,
 | |
| 		'gm_only' => false,
 | |
| 	),
 | |
| 	array(
 | |
| 		'name'	=> 'Dragonball',
 | |
| 		'id'	=> 2,
 | |
| 		'gm_only' => false,
 | |
| 	),
 | |
| 	array(
 | |
| 		'name'	=> 'NPC',
 | |
| 		'id'	=> 3,
 | |
| 		'gm_only' => true,
 | |
| 	),
 | |
| 	);
 | |
| 
 | |
| 	// Dieses Array ist zum simulieren der Datenbank da!
 | |
| 	$array['race']=array(
 | |
| 
 | |
| 	array(
 | |
| 		'name'		=> 'Mensch',
 | |
| 		'type'		=> 2,
 | |
| 		'id'		=> 1,
 | |
| 		'hp'		=> 150,
 | |
| 		'mp'		=> 30,
 | |
| 		'str'		=> 15,
 | |
| 		'def'		=> 9,
 | |
| 		'spd'		=> 13,
 | |
| 		'lck'		=> 4,
 | |
| 		'stm'		=> 8,
 | |
| 		'special' 	=> false
 | |
| 	),
 | |
| 	array(
 | |
| 		'name'		=> 'Saiyajin',
 | |
| 		'type'		=> 2,
 | |
| 		'id'		=> 2,
 | |
| 		'hp'		=> 120,
 | |
| 		'mp'		=> 30,
 | |
| 		'str'		=> 18,
 | |
| 		'def'		=> 10,
 | |
| 		'spd'		=> 9,
 | |
| 		'lck'		=> 5,
 | |
| 		'stm'		=> 10,
 | |
| 		'special' 	=> false
 | |
| 	),
 | |
| 	array(
 | |
| 		'name'		=> 'Dämon',
 | |
| 		'type'		=> 2,
 | |
| 		'id'		=> 3,
 | |
| 		'hp'		=> 160,
 | |
| 		'mp'		=> 50,
 | |
| 		'str'		=> 8,
 | |
| 		'def'		=> 9,
 | |
| 		'spd'		=> 18,
 | |
| 		'lck'		=> 4,
 | |
| 		'stm'		=> 5,
 | |
| 		'special' 	=> false
 | |
| 	),
 | |
| 	array(
 | |
| 		'name'		=> 'Mutant',
 | |
| 		'type'		=> 2,
 | |
| 		'id'		=> 4,
 | |
| 		'hp'		=> 180,
 | |
| 		'mp'		=> 15,
 | |
| 		'str'		=> 13,
 | |
| 		'def'		=> 9,
 | |
| 		'spd'		=> 18,
 | |
| 		'lck'		=> 4,
 | |
| 		'stm'		=> 5,
 | |
| 		'special' 	=> false
 | |
| 	),
 | |
| 	array(
 | |
| 		'name'		=> 'Cyborg',
 | |
| 		'type'		=> 2,
 | |
| 		'id'		=> 5,
 | |
| 		'hp'		=> 250,
 | |
| 		'mp'		=> 20,
 | |
| 		'str'		=> 11,
 | |
| 		'def'		=> 30,
 | |
| 		'spd'		=> 0,
 | |
| 		'lck'		=> 0,
 | |
| 		'stm'		=> 0,
 | |
| 		'special' 	=> false
 | |
| 	),
 | |
| 	array(
 | |
| 		'name'		=> 'Namekianer',
 | |
| 		'type'		=> 2,
 | |
| 		'id'		=> 6,
 | |
| 		'hp'		=> 100,
 | |
| 		'mp'		=> 10,
 | |
| 		'str'		=> 18,
 | |
| 		'def'		=> 10,
 | |
| 		'spd'		=> 14,
 | |
| 		'lck'		=> 6,
 | |
| 		'stm'		=> 10,
 | |
| 		'special' 	=> false
 | |
| 	),
 | |
| 	array(
 | |
| 		'name'		=> 'Tsufurujin',
 | |
| 		'type'		=> 2,
 | |
| 		'id'		=> 13,
 | |
| 		'hp'		=> 50,
 | |
| 		'mp'		=> 120,
 | |
| 		'str'		=> 0,
 | |
| 		'def'		=> 0,
 | |
| 		'spd'		=> 11,
 | |
| 		'lck'		=> 30,
 | |
| 		'stm'		=> 0,
 | |
| 		'special'	=> false,
 | |
| 	),
 | |
| 
 | |
| 	// Start 'One Piece'
 | |
| 	array(
 | |
| 		'name'		=> 'Pirat',
 | |
| 		'type'		=> 1,
 | |
| 		'id'		=> 7,
 | |
| 		'hp'		=> 100,
 | |
| 		'mp'		=> 25,
 | |
| 		'str'		=> 20,
 | |
| 		'def'		=> 10,
 | |
| 		'spd'		=> 15,
 | |
| 		'lck'		=> 3,
 | |
| 		'stm'		=> 7,
 | |
| 		'special' 	=> false
 | |
| 	),
 | |
| 	// In-Between Special chars
 | |
| 	array(
 | |
| 		'name'		=> 'Shichibukai',
 | |
| 		'type'		=> 1,
 | |
| 		'id'		=> 8,
 | |
| 		'hp'		=> 1000,
 | |
| 		'mp'		=> 150,
 | |
| 		'str'		=> 100,
 | |
| 		'def'		=> 100,
 | |
| 		'spd'		=> 100,
 | |
| 		'lck'		=> 100,
 | |
| 		'stm'		=> 100,
 | |
| 		'tp'		=> 500,
 | |
| 		'special' 	=> true,
 | |
| 		'item'		=> 15
 | |
| 	),
 | |
| 	array(
 | |
| 		'name'		=> 'Kaioshin',
 | |
| 		'type'		=> 2,
 | |
| 		'id'		=> 9,
 | |
| 		'hp'		=> 1000,
 | |
| 		'mp'		=> 150,
 | |
| 		'str'		=> 100,
 | |
| 		'def'		=> 100,
 | |
| 		'spd'		=> 100,
 | |
| 		'lck'		=> 100,
 | |
| 		'stm'		=> 100,
 | |
| 		'tp'		=> 500,
 | |
| 		'special' 	=> true,
 | |
| 		'item'		=> 3
 | |
| 	),
 | |
| 	// Continue 'One Piece'
 | |
| 	array(
 | |
| 		'name'		=> 'Schwertkämpfer',
 | |
| 		'type'		=> 1,
 | |
| 		'id'		=> 10,
 | |
| 		'hp'		=> 100,
 | |
| 		'mp'		=> 25,
 | |
| 		'str'		=> 25,
 | |
| 		'def'		=> 10,
 | |
| 		'spd'		=> 10,
 | |
| 		'lck'		=> 2,
 | |
| 		'stm'		=> 8,
 | |
| 		'special' 	=> false
 | |
| 	),
 | |
| 	array(
 | |
| 		'name'		=> 'Grandline Maschine',
 | |
| 		'type'		=> 1,
 | |
| 		'id'		=> 11,
 | |
| 		'hp'		=> 400,
 | |
| 		'mp'		=> 5,
 | |
| 		'str'		=> 5,
 | |
| 		'def'		=> 5,
 | |
| 		'spd'		=> 5,
 | |
| 		'lck'		=> 0,
 | |
| 		'stm'		=> 10,
 | |
| 		'special' 	=> false
 | |
| 	),
 | |
| 	// NPC chars
 | |
| 	array(
 | |
| 		'name'		=> 'NPC',
 | |
| 		'type'		=> 3,
 | |
| 		'id'		=> 12,
 | |
| 		'hp'		=> 0,
 | |
| 		'mp'		=> 0,
 | |
| 		'str'		=> 0,
 | |
| 		'def'		=> 0,
 | |
| 		'spd'		=> 0,
 | |
| 		'lck'		=> 0,
 | |
| 		'stm'		=> 0,
 | |
| 		'special'	=> true
 | |
| 	),
 | |
| 	array(
 | |
| 		'name'		=> 'MONSTER',
 | |
| 		'type'		=> 3,
 | |
| 		'id'		=> 14,
 | |
| 		'hp'		=> 0,
 | |
| 		'mp'		=> 0,
 | |
| 		'str'		=> 0,
 | |
| 		'def'		=> 0,
 | |
| 		'spd'		=> 0,
 | |
| 		'lck'		=> 0,
 | |
| 		'stm'		=> 0,
 | |
| 		'special'	=> true
 | |
| 	),
 | |
| 	);
 | |
| 	return $array;
 | |
| }
 | |
| 
 | |
| function createLink($name, $values, $confirmation = NULL) {
 | |
| 	if ( $confirmation !== NULL ) {
 | |
| 		$link = '<a href="javascript:if(prompt(\'Bestätige mit der Eingabe von \\\''.$confirmation.'\\\'\')==\''.$confirmation.'\') window.location.href=\'?choose=rassen';
 | |
| 	} else {
 | |
| 		$link = '<a href="?choose=rassen';
 | |
| 	}
 | |
|         foreach ($values as $key => $value) {
 | |
| 		$link .= '&'.$key.'='.$value;
 | |
| 	}
 | |
| 
 | |
| 
 | |
| 	if ( $confirmation !== NULL ) {
 | |
| 		$link .= '\'">'.$name.'</a>';
 | |
| 	} else {
 | |
| 		$link .= '">'.$name.'</a>';
 | |
| 	}
 | |
| 
 | |
| 	return $link;
 | |
| }
 | |
| 
 | |
| function displayRassen($request) {
 | |
| 	$showOverview = true;
 | |
| 	if($request['action'] == 'setup') {
 | |
| 		$showOverview = displayRassenSetup( $request );
 | |
| 	} else if ($request['action'] == 'edit') {
 | |
| 		$showOverview = displayRassenEdit( $request );
 | |
| 	} else if ($request['action'] == 'delete') {
 | |
| 		$showOverview = displayRassenDelete( $request );
 | |
| 	} else if ($request['action'] == 'edit_type') {
 | |
| 		$showOverview = displayRassenTypeEdit( $request );
 | |
| 	} else if ($request['action'] == 'delete_type') {
 | |
| 		$showOverview = displayRassenTypeDelete( $request );
 | |
| 	} else if ($request['action'] == 'create') {
 | |
| 		$showOverview = displayRassenCreate( $request );
 | |
| 	} else if ($request['action'] == 'create_type') {
 | |
| 		$showOverview = displayRassenTypeCreate( $request );
 | |
| 	}
 | |
| ?>
 | |
| 			<table>
 | |
| <?php
 | |
| 	$num = mysqli_num_rows(db_query('SELECT * FROM rassen_type'));
 | |
| 	if($num == 0) {
 | |
| 		echo '<tr><th colspan="4">'.createLink('setup rassen database', array('action' => 'setup')).'</a></th></tr>';
 | |
| 	} else if ( $showOverview ) {
 | |
| 		$race_types = getRaceTypes();
 | |
| ?>
 | |
| 				<tr>
 | |
| 					<th colspan="4">
 | |
| 						Rassen-Typ Übersicht
 | |
| 					</th>
 | |
| 				</tr>
 | |
| 				<tr>
 | |
| 					<th align="center">Name</th>
 | |
| 					<th align="center">GM-Only</th>
 | |
| 					<th align="center" colspan="2">Aktion</th>
 | |
| 				</tr>
 | |
| <?php
 | |
| 		foreach ($race_types as $type) {
 | |
| 			$editLink = createLink('Edit', array('action' => 'edit_type', 'id' => $type['id']));
 | |
| 			$deleteLink = createLink('Delete', array('action' => 'delete_type', 'id' => $type['id']), $type['name']);
 | |
| 			echo '<tr><td>'.$type['name'].'</td><td>'.($type['gm_only']?'Ja':'Nein').'</td><td>'.$editLink.'</td><td>'.$deleteLink.'</td></tr>'."\n";
 | |
| 		}
 | |
| ?>
 | |
| 				<tr><td colspan="4" align="center"><?php echo createLink('Neuer Rassentyp', array('action' => 'create_type')); ?></td></tr>
 | |
| 	
 | |
| 				<tr><th colspan="4"><hr/></th></tr>
 | |
| 				<tr>
 | |
| 					<th colspan="4">
 | |
| 						Rassen Übersicht
 | |
| 					</th>
 | |
| 				</tr>
 | |
| 				<tr>
 | |
| 					<th align="center">Name</th>
 | |
| 					<th align="center">Type</th>
 | |
| 					<th align="center" colspan="2">Aktion</th>
 | |
| 				</tr>
 | |
| <?php
 | |
| 		foreach ($race_types as $type) {
 | |
| 			$races = getRacesByType($type);
 | |
| 			foreach ($races as $race) {
 | |
| 				$editLink = createLink('Edit', array('action' => 'edit', 'id' => $race['id']));
 | |
| 				$deleteLink = createLink('Delete', array('action' => 'delete', 'id' => $race['id']), $race['name']);
 | |
| 				echo '<tr><td>'.$race['name'].'</td><td>'.$type['name'].'</td><td>'.$editLink.'</td><td>'.$deleteLink.'</td></tr>'."\n";
 | |
| 			}
 | |
| 		}
 | |
| ?>
 | |
| 				<tr><td colspan="4" align="center"><?php echo createLink('Neue Rasse', array('action' => 'create')); ?></td></tr>
 | |
|                                 <tr><th colspan="4"><hr/></th></tr>
 | |
| <?php
 | |
| 	} else {
 | |
| ?>
 | |
| 				<tr>
 | |
| 					<td>
 | |
| 						<?php echo createLink('Zur Übersicht', array())."\n"; ?>
 | |
| 					</td>
 | |
| 				</tr>
 | |
| <?php 
 | |
| 	}
 | |
| ?>
 | |
| 				<tr>
 | |
| 					<td>
 | |
| 						<a href="<?php echo $_SERVER['PHP_SELF']; ?>">Zum Hauptmenu</a>
 | |
| 					</td>
 | |
| 				</tr>
 | |
| 			</table>
 | |
| <?php 
 | |
| }
 | |
| 
 | |
| function displayRassenSetup( $request ) {
 | |
| 	$array = getDefaultData();
 | |
| 	foreach($array['race_type'] as $race_type) {
 | |
| 		db_query('INSERT INTO rassen_type(id, name, gm_only) values('.$race_type['id'].', \''.$race_type['name'].'\', '.($race_type['gm_only']?'1':'0').')');
 | |
| 	}
 | |
| 	foreach($array['race'] as $r) {
 | |
| 		db_query('INSERT INTO rassen(name, type, id, hp, mp, str, def, spd, lck, stm, special) '.
 | |
| 				'values(\''.$r['name'].'\', '.$r['type'].','.$r['id'].', '.$r['hp'].','.$r['mp'].','.$r['str'].','.$r['def'].','.$r['spd'].','.$r['lck'].','.$r['stm'].','.($r['special']?'1':'0').')');
 | |
| 	}
 | |
| 	return true;
 | |
| }
 | |
| 
 | |
| 
 | |
| function createRassenForm( $data = NULL ) {
 | |
| 	$action = ($data === NULL) ? 'create' : 'edit';
 | |
| 	$items = array();
 | |
| 	$qry = db_query('SELECT id, name FROM sp_item ORDER BY name');
 | |
| 	while ($row = mysqli_fetch_assoc($qry)) {
 | |
| 		$items[] = array('name' => $row['name'], 'id' => $row['id']);
 | |
| 	}
 | |
| ?>
 | |
| 	<form action="" method="POST">
 | |
| 		<input name="persist" value="true" type="hidden" />
 | |
| <?php
 | |
| 	if ($data !== NULL) {
 | |
| ?>
 | |
| 		<input name="id" value="<?php echo $data['id']; ?>" type="hidden" />
 | |
| <?php
 | |
| 	}
 | |
| ?>
 | |
| 
 | |
| 		<table>
 | |
| 			<tr><th colspan="2">Rasse</th></tr>
 | |
| 			<tr><th>Name</th><td><input name="name" value="<?php echo $data['name']; ?>" /></td></tr>
 | |
| 			<tr><th>Typ</th><td>
 | |
| 				<select name="type">
 | |
| <?php
 | |
| 				$race_types = getRaceTypes();
 | |
| 				foreach ($race_types as $race_type) {
 | |
| 					$selected = ($race_type['id'] == $data['type']);
 | |
| ?>
 | |
| 					<option value="<?php echo $race_type['id']; ?>" <?php echo $selected?'selected':''; ?>><?php echo $race_type['name']; ?></option>
 | |
| <?php
 | |
| 				}
 | |
| ?>
 | |
| 				</select>
 | |
| 			<tr><th>HP</th><td><input name="hp" value="<?php echo $data['hp']; ?>" /></td></tr>
 | |
| 			<tr><th>MP</th><td><input name="mp" value="<?php echo $data['mp']; ?>" /></td></tr>
 | |
| 			<tr><th>Stärke</th><td><input name="str" value="<?php echo $data['str']; ?>" /></td></tr>
 | |
| 			<tr><th>Verteidigung</th><td><input name="def" value="<?php echo $data['def']; ?>" /></td></tr>
 | |
| 			<tr><th>Geschwindigkeit</th><td><input name="spd" value="<?php echo $data['spd']; ?>" /></td></tr>
 | |
| 			<tr><th>Glück</th><td><input name="lck" value="<?php echo $data['lck']; ?>" /></td></tr>
 | |
| 			<tr><th>Ausdauer</th><td><input name="stm" value="<?php echo $data['stm']; ?>" /></td></tr>
 | |
| 			<tr><th>Special</th><td><input name="special" <?php echo $data['special']?'checked':''; ?> type="checkbox" /></td></tr>
 | |
| 			<tr>
 | |
| 				<th>Item (nur Special)</th>
 | |
| 				<td>
 | |
| 					<select name="item">
 | |
| 						<option value="">- Keins -</option>
 | |
| <?php
 | |
| 						foreach ($items as $item) {
 | |
| 							$selected = $item['id'] == $data['item'] ? 'selected':'';
 | |
| 							echo '<option value="'.$item['id'].'" '.$selected.'>'.$item['name'].'</option>'."\n";
 | |
| 						}
 | |
| ?>
 | |
| 					</select>
 | |
| 				</td>
 | |
| 			</tr>
 | |
| 			<tr><td colspan="2" align="center"><input type="submit" value="<?php echo $action; ?>" /></td></tr>
 | |
| 		</table>
 | |
| 	</form>
 | |
| <?php
 | |
| }
 | |
| 
 | |
| function displayRassenCreate( $request ) {
 | |
| 	if ( $request['persist'] ) {
 | |
| 		$special = ($request['special']=='on') ? 'true' : 'false';
 | |
| 		$item = ($request['item'] != NULL) ? $request['item'] : 'NULL';
 | |
| 		$id = mysqli_fetch_row(db_query('SELECT max(id) + 1 FROM rassen'));
 | |
| 		$id = $id[0];
 | |
| 
 | |
| 		$data = array('"'.$request['name'].'"', $request['type'], $request['hp'], $request['mp'], $request['str'], $request['def'], $request['spd'], $request['lck'], $request['stm'], $special, $item);
 | |
| 		db_query('INSERT INTO rassen(id, name, type, hp, mp, str, def, spd, lck, stm, special, item) values('.$id.', '.join(',', $data).')');
 | |
| 		return true;
 | |
| 	} else {
 | |
| 		createRassenForm();
 | |
| 		return false;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| function displayRassenEdit( $request ) {
 | |
| 	if ( $request['persist'] ) {
 | |
| 		$special = ($request['special']=='on') ? 'true' : 'false';
 | |
| 		$item = ($request['item'] != NULL) ? $request['item'] : 'NULL';
 | |
| 		$data = array(
 | |
| 				'name' => '"'.$request['name'].'"',
 | |
| 				'type' => $request['type'],
 | |
| 				'hp' => $request['hp'],
 | |
| 				'mp' => $request['mp'],
 | |
| 				'str' => $request['str'],
 | |
| 				'def' => $request['def'],
 | |
| 				'spd' => $request['spd'],
 | |
| 				'lck' => $request['lck'],
 | |
| 				'stm' => $request['stm'],
 | |
| 				'special' => $special,
 | |
| 				'item' => $item
 | |
| 		);
 | |
| 
 | |
| 		$data_entries = array();
 | |
| 		foreach ($data as $key => $value) {
 | |
| 			$data_entries[] = $key.'='.$value;
 | |
| 		}
 | |
| 
 | |
| 		db_query('UPDATE rassen SET '.join(', ', $data_entries).' WHERE id = '.$request['id']);
 | |
| 		return true;
 | |
| 	} else {
 | |
| 		createRassenForm(getRaceById($request['id']));
 | |
| 		return false;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| function displayRassenDelete( $request ) {
 | |
| 	db_query('DELETE FROM rassen WHERE id = '.$request['id']);
 | |
| 	return true;
 | |
| }
 | |
| 
 | |
| function createRassenTypeForm( $data = NULL ) {
 | |
| 	$action = ($data === NULL) ? 'create' : 'edit';
 | |
| ?>
 | |
| 	<form action="" method="POST">
 | |
| 		<input name="persist" value="true" type="hidden" />
 | |
| <?php
 | |
| 	if ($data !== NULL) {
 | |
| ?>
 | |
| 		<input name="id" value="<?php echo $data['id']; ?>" type="hidden" />
 | |
| <?php
 | |
| 	}
 | |
| ?>
 | |
| 
 | |
| 		<table>
 | |
| 			<tr><th colspan="2">Rassen-typ</th></tr>
 | |
| 			<tr><th>Name</th><td><input name="name" value="<?php echo $data['name']; ?>" /></td></tr>
 | |
| 			<tr><th>GM-Only</th><td><input name="gm_only" type="checkbox" <?php echo $data['gm_only']?'checked':''; ?> /></td></tr>
 | |
| 			<tr><td colspan="2" align="center"><input type="submit" value="<?php echo $action; ?>" /></td></tr>
 | |
| 		</table>
 | |
| 	</form>
 | |
| <?php
 | |
| }
 | |
| 
 | |
| function displayRassenTypeCreate( $request ) {
 | |
| 	if ( $request['persist'] ) {
 | |
| 		$gm_only = ($request['gm_only']=='on') ? 'true' : 'false';
 | |
| 		$id = mysqli_fetch_row(db_query('SELECT max(id) + 1 FROM rassen_type'));
 | |
| 		$id = $id[0];
 | |
| 
 | |
| 		db_query('INSERT INTO rassen_type(id, name, gm_only) values('.$id.', "'.$request['name'].'", '.$gm_only.')');
 | |
| 		return true;
 | |
| 	} else {
 | |
| 		createRassenTypeForm();
 | |
| 		return false;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| function displayRassenTypeEdit( $request ) {
 | |
| 	if ( $request['persist'] ) {
 | |
| 		$gm_only = ($request['gm_only']=='on') ? 'true' : 'false';
 | |
| 		db_query('UPDATE rassen_type SET name = "'.$request['name'].'", gm_only = '.$gm_only.' WHERE id = '.$request['id']);
 | |
| 		return true;
 | |
| 	} else {
 | |
| 		createRassenTypeForm(getRaceTypeById($request['id']));
 | |
| 		return false;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| function displayRassenTypeDelete( $request ) {
 | |
| 	db_query('DELETE FROM rassen_type WHERE id = '.$request['id']);
 | |
| 	return true;
 | |
| }
 | |
| 
 |