diff --git a/ag/char_overview.php b/ag/char_overview.php
index cbc8f95..b6e1873 100644
--- a/ag/char_overview.php
+++ b/ag/char_overview.php
@@ -40,9 +40,17 @@ foreach($chars as $my_charz){
else
$frucht = "";
$hptemp = explode(",", $my_charz['hp']);
- $hpleft[$char_zahl] = $hptemp['0'] / $hptemp['1'] * 100;
+ if($hptemp['1'] != 0) {
+ $hpleft[$char_zahl] = $hptemp['0'] / $hptemp['1'] * 100;
+ } else {
+ $hpleft[$char_zahl] = 0;
+ }
$mptemp = explode(",", $my_charz['mp']);
- $mpleft[$char_zahl] = $mptemp['0'] / $mptemp['1'] * 100;
+ if($mptemp['1']) {
+ $mpleft[$char_zahl] = $mptemp['0'] / $mptemp['1'] * 100;
+ } else {
+ $mpleft[$char_zahl] = 0;
+ }
$exptemp = explode(",", $my_charz['exp']);
$room = mysql_query('SELECT ci.name FROM clan_item ci inner join clan_ware cw on ci.id = cw.item_id WHERE cw.id='.$my_charz['clan_train']);
$clanroom=mysql_fetch_assoc($room);
diff --git a/ag/gm/gm_seite.php b/ag/gm/gm_seite.php
index 5909664..040df0f 100644
--- a/ag/gm/gm_seite.php
+++ b/ag/gm/gm_seite.php
@@ -24,6 +24,7 @@ include_once(ROOT_PATH.'/include/fehlerausgabe.inc.php');
include_once(ROOT_PATH.'/include/bann.inc.php');
include_once(ROOT_PATH.'/include/faq.inc.php');
include_once(ROOT_PATH.'/include/parse.inc.php');
+include_once(ROOT_PATH.'/include/rassen.inc.php');
include_once(ROOT_PATH.'/include/user.inc.php');
include_once(ROOT_PATH.'/include/usergroup.inc.php');
diff --git a/ag/gm/include/npc.inc.php b/ag/gm/include/npc.inc.php
index e64d346..a9cbc2d 100644
--- a/ag/gm/include/npc.inc.php
+++ b/ag/gm/include/npc.inc.php
@@ -13,6 +13,8 @@ include_once(ROOT_PATH.'/include/attackenset.inc.php');
include_once(ROOT_PATH.'/include/erstellfunctions.inc.php');
include_once(ROOT_PATH.'/include/designfunctions.inc.php');
include_once(ROOT_PATH.'/include/sqlwrapper.inc.php');
+include_once(ROOT_PATH.'/include/char.inc.php');
+
define('ACTION_EDIT', 'edit');
define('ACTION_CREATE', 'create');
@@ -134,11 +136,21 @@ function displayNPCInfo($action, $task, $charid) {
//Form-Variablen
echo "\t".' '."\n";
echo "\t".' '."\n";
+
+ $npc_race = getRaceTypeName('NPC'); // do not remove npc (there is a separate setting for this)
+ $races = getRacesByType($npc_race); // remove all NPC
+ $race_ids = array();
+ $race_names = array();
+ foreach($races as $race) {
+ $race_ids[] = $race['id'];
+ $race_names[] = $race['name'];
+ }
+
//initialisierung der Variablen für Inhalt
- $d_select_array = array(array('Dragonball', 'Onepiece'), array(300, 1200, 3600));
+ $d_select_array = array($race_ids, array(300, 1200, 3600));
$d_array = array('charakter', 'name', 'type', 'hp', 'mp', 'starke', 'verteidigung', 'speed',
'ausdauer', 'glueck', 'zeit_rec', 'level', 'lvlmin', 'lvlmax', 'bild');
- $desc_select_array = array(array('Dragonball', 'Onepiece'), array('5min', '20min', '60min'));
+ $desc_select_array = array($race_names, array('5min', '20min', '60min'));
$desc_array = array('ID', 'Name', 'Type', 'HP', 'MP', 'Stärke', 'Verteidigung', 'Geschwindigkeit',
'Ausdauer', 'Glück', 'Kampfdauer in Sekunden', 'Level', 'Min-Level', 'Max-Level', 'Bild');
$attset = array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1);
@@ -150,10 +162,15 @@ function displayNPCInfo($action, $task, $charid) {
$attset = getAttackSet($charid, NORMALKAMPF);
$attset_names = getAttackNames($attset);
- $sql = 'SELECT * FROM chars c inner join npc_item ni on ni.charakter = c.id inner join kampf_list kl on ni.charakter = kl.charakter WHERE c.id ='.$charid;
+ $sql = 'SELECT kl.*, ni.* FROM chars c inner join npc_item ni on ni.charakter = c.id inner join kampf_list kl on ni.charakter = kl.charakter WHERE c.id ='.$charid;
//$sql = 'SELECT * FROM chars c inner join kampf_list kl on c.id = kl.charakter WHERE c.id ='.$charid;
$qry = db_query($sql);
$row = mysql_fetch_assoc($qry);
+ // Fetch the char array by getChar method (for backwards compat) with no caching enabled!
+ $char_data = getChar($charid, false);
+ foreach( $char_data as $key => $value ) {
+ $row[$key] = $value;
+ }
}
$attacks = getNPCAttacks();
@@ -290,7 +307,7 @@ function createNPC($data, $att_ids) {
}
//Char erstellen, wichtig für die restlichen Sachen
- $success = erstelleChar(getNPCUser(), 'NPC', $data['name'], $data['bild'], $data['level'], 0, $data['hp'], $data['mp'], $data['starke'], $data['verteidigung'], $data['speed'],
+ $success = erstelleChar(getNPCUser(), $data['type'], $data['name'], $data['bild'], $data['level'], 0, $data['hp'], $data['mp'], $data['starke'], $data['verteidigung'], $data['speed'],
$data['ausdauer'], $data['glueck'], $data['type']);
if($success) {
@@ -339,9 +356,7 @@ function createNPC($data, $att_ids) {
function displayDeleteNPC($charid) {
$colspan = 1;
- $sql = 'SELECT * FROM chars WHERE id = '.$charid;
- $qry = db_query($sql);
- $row = mysql_fetch_assoc($qry);
+ $row = getChar($charid, false);
echo "\t".'
NPC löschen '."\n";
echo "\t".'Soll der NPC '.$row['name'].' wirklich gelöscht werden '."\n";
@@ -364,7 +379,13 @@ function displayNPCOverview($page) {
$d_array = array('id', 'name', 'level');
$desc_array = array('id', 'Name', 'Level');
- $sql = 'SELECT '.join($d_array,',').' from chars where rasse = \'NPC\' ORDER BY level, Name LIMIT '.($page*20).', 20';
+ $npc_race = getRaceTypeName('NPC'); // do not remove npc (there is a separate setting for this)
+ $races = getRacesByType($npc_race); // remove all NPC
+ foreach($races as $race) {
+ $include_race_ids[] = '\''.$race['id'].'\'';
+ }
+
+ $sql = 'SELECT '.join($d_array,',').' from chars where rasse IN ('.implode(',', $include_race_ids).') ORDER BY level, Name LIMIT '.($page*20).', 20';
$qry = db_query($sql);
$colspan = count($d_array);
echo "\t".'Übersicht '."\n";;
@@ -393,7 +414,7 @@ function displayNPCOverview($page) {
echo "\t".''."\n";
}
- $total = mysql_num_rows(db_query('SELECT '.join($d_array,',').' from chars where rasse = \'NPC\''));
+ $total = mysql_num_rows(db_query('SELECT '.join($d_array,',').' from chars where rasse IN ('.implode(',', $include_race_ids).')'));
$url = '###LABEL### ';
echo "\t".' '."\n";
echo "\t".''.displayPagelinksNew(20, $total, $page, $url).' '."\n";
@@ -439,4 +460,4 @@ function displayNPC($action, $task, $charid, $table, $page, $data, $att_ids){
echo "\t".''."\n";
echo ''."\n";
}
-?>
\ No newline at end of file
+?>
diff --git a/ag/gm/include/rassen.inc.php b/ag/gm/include/rassen.inc.php
new file mode 100644
index 0000000..80ae56c
--- /dev/null
+++ b/ag/gm/include/rassen.inc.php
@@ -0,0 +1,270 @@
+ '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' => 40,
+ 'mp' => 125,
+ '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
+ ),
+ 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
+ ),
+ // 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
+ ),
+ );
+ return $array;
+}
+
+function setupRassen() {
+ mysql_query('DROP database `rassen`');
+ mysql_query('DROP database `rassen_attacken`');
+
+ mysql_query('CREATE TABLE `rassen_type` (
+ `id` INT NOT NULL ,
+ `name` VARCHAR(45) NOT NULL ,
+ `gm_only` TINYINT NOT NULL DEFAULT false ,
+ PRIMARY KEY (`id`) )
+ ENGINE = InnoDB;');
+
+ mysql_query('CREATE TABLE `test_ag`.`rassen` (
+ `id` INT NOT NULL ,
+ `name` VARCHAR(45) NOT NULL ,
+ `type` INT NOT NULL DEFAULT 0 ,
+ `hp` INT NOT NULL DEFAULT 0 ,
+ `mp` INT NOT NULL DEFAULT 0 ,
+ `str` INT NOT NULL DEFAULT 0 ,
+ `def` INT NOT NULL DEFAULT 0 ,
+ `spd` INT NOT NULL DEFAULT 0 ,
+ `lck` INT NOT NULL DEFAULT 0 ,
+ `stm` INT NOT NULL DEFAULT 0 ,
+ `special` TINYINT NOT NULL DEFAULT false ,
+ PRIMARY KEY (`id`) )
+ENGINE = InnoDB;');
+
+}
+
+function displayRassen($request) {
+
+ ?>
+
+
+
+ Rassen Übersicht
+
+
+
+ Name
+ Type
+ Aktion
+
+setup rassen database ';
+ } else {
+ $race_types = getRaceTypes();
+ foreach($race_types as $type) {
+ $races = getRacesByType($type);
+ foreach($races as $race) {
+ echo ''.$race['name'].' '.$type['name'].' Edit Delete '."\n";
+ }
+ }
+ }
+?>
+
+
+ Zum Hauptmenu
+
+
+
+