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.
		
		
		
		
		
			
		
			
				
	
	
		
			191 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			PHP
		
	
			
		
		
	
	
			191 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			PHP
		
	
| <?php
 | |
| /*
 | |
|  *
 | |
|  * @copyright (c) 2009 animegame.eu
 | |
|  * @license http://www.gnu.org/licenses/gpl-3.0.html GNU General Public Licence
 | |
|  *
 | |
|  */
 | |
| 
 | |
| include_once ($_SERVER['DOCUMENT_ROOT'] . 'ag/include/defines.inc.php');
 | |
| 
 | |
| //Set-Arten
 | |
| defineIfNotDefined('NORMALKAMPF', 1);
 | |
| defineIfNotDefined('CLANKAMPF', 2);
 | |
| 
 | |
| //Anzahl der Typen die in einem Kampf erlaubt sind
 | |
| //TODO: sollte überprüft werden, welche typen es eigentlich ingame noch gibt
 | |
| defineIfNotDefined('KAMPF_SSJ', 1);			// SSJ ist eine Art technik die werte mal  setzt
 | |
| defineIfNotDefined('KAMPF_TAUSCH', 1);		// Tausch ist eine Art technik die alle werte vertauscht gegner und sich selbst
 | |
| defineIfNotDefined('KAMPF_HP', 2);			// HP ist eine technik die es erlaubt sich zu Heilen
 | |
| defineIfNotDefined('KAMPF_HPMP', 1);		// HPMP ist eine art die HP+MP erhoeht
 | |
| defineIfNotDefined('KAMPF_SPIRIT', 1);		// spirit ist was mit spirit stones
 | |
| defineIfNotDefined('KAMPF_LOSE', 1);		// Lose ist wie Kaioken nur das man werte verliert
 | |
| defineIfNotDefined('KAMPF_KAIOKEN', 1);		// Kaioken ist eine technik die werte gibt
 | |
| defineIfNotDefined('KAMPF_SUMMON', 1);		// spirit2 ist was mit spirit stones
 | |
| defineIfNotDefined('KAMPF_GIFT', 1);		// Lose ist wie Kaioken nur das man werte verliert
 | |
| defineIfNotDefined('KAMPF_SCHATTEN', 2);	// Kaioken ist eine technik die werte gibt
 | |
| defineIfNotDefined('KAMPF_COPY', 1);		// Man Trasfert werte.
 | |
| defineIfNotDefined('KAMPF_KAIOKEN2', 1);	// Man Bekommt sau viel staerke fuer 1runde
 | |
| defineIfNotDefined('KAMPF_LOSE2', 1);		// MP Wegmachen
 | |
| defineIfNotDefined('KAMPF_MAJIN', 1);		// Jemnand als majin machen.
 | |
| defineIfNotDefined('KAMPF_KONTERHEAL', 2);	// Eine Heal-Attacke kontern.
 | |
| defineIfNotDefined('KAMPF_TAUSCH2', 3);		// Attacke Kopieren.
 | |
| defineIfNotDefined('KAMPF_FRUCHT', 1);
 | |
| 
 | |
| function getCharAttackSet($char_id, $type) {
 | |
| 	$qry = null;
 | |
| 	// default values (in case the data is not or partially set)
 | |
| 	for ($i = 1; $i < 11; $i++) {
 | |
| 		$set[$i] = -1;
 | |
| 	}
 | |
| 
 | |
| 	if(is_numeric($char_id)) {
 | |
| 		$qry = mysql_query('SELECT attack_id, round FROM attackenset WHERE char_id = '.$char_id.' AND type = '.$type);
 | |
| 	}
 | |
| 
 | |
| 	while ($result = mysql_fetch_assoc($qry)) {
 | |
| 		$set[$result['round']] = $result['attack_id'];
 | |
| 	}
 | |
| 
 | |
| 	return $set;
 | |
| }
 | |
| 
 | |
| function updateCharAttack($char_id, $att_id,$round, $type) {
 | |
| 	$qry = 'UPDATE attackenset SET attack_id = '.$att_id.' WHERE char_id = '.$char_id.' AND type = '.$type.' AND round = '.$round.';';
 | |
| 	mysql_query($qry);
 | |
| }
 | |
| 
 | |
| function createCharAttack($char_id, $att_id,$round, $type) {
 | |
| 	$qry = 'INSERT INTO attackenset VALUES('.$char_id.','.$att_id.','.$type.','.$round.');';
 | |
| 	mysql_query($qry);
 | |
| }
 | |
| 
 | |
| function updateCharAttackSet($char_id, $set, $type) {
 | |
| 	$old_set = getCharAttackSet($char_id, $type);
 | |
| 
 | |
| 	for ($i = 1; $i < count($set)+1; $i++) {
 | |
| 		if($old_set[$i] < 0 && $set[$i] > 0) {
 | |
| 			//insert new value
 | |
| 			createCharAttack($char_id, $set[$i], $i, $type);
 | |
| 		} elseif($old_set > 0 && $set[$i] != $old_set[$i]) {
 | |
| 			//update old value
 | |
| 			updateCharAttack($char_id,$set[$i], $i, $type);
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| function getAttackNamesFromAttackSet($attset) {
 | |
| 	$qry = mysql_query('SELECT l.id,a.name FROM attacken a INNER JOIN lernen l ON a.id=l.at_id WHERE l.id in ('.implode(',', $attset).');');
 | |
| 
 | |
| 	while ($result = mysql_fetch_assoc($qry)) {
 | |
| 		$set[$result['id']] = $result['name'];
 | |
| 	}
 | |
| 
 | |
| 	return $set;
 | |
| }
 | |
| 
 | |
| function getAttackTypesFromAttackSet($attset) {
 | |
| 	if($attset == NULL || count($attset) == 0) {
 | |
| 		return array();
 | |
| 	}
 | |
| 	
 | |
| 	$qry = mysql_query('SELECT l.id,a.type FROM attacken a INNER JOIN lernen l ON a.id=l.at_id WHERE l.id in ('.implode(',', $attset).');');
 | |
| 	while ($result = mysql_fetch_assoc($qry)) {
 | |
| 		$set[$result['id']] = $result['type'];
 | |
| 	}
 | |
| 
 | |
| 	return $set;
 | |
| }
 | |
| 
 | |
| function validateAttackSetTypes($attset) {
 | |
| 	if($attset == NULL) {
 | |
| 		return 'Es wurden garkeine Attacken ausgewählt!';
 | |
| 	}
 | |
| 	
 | |
| 	$types = getAttackTypesFromAttackSet($attset);	
 | |
| 	if(count($types)==0) {
 | |
| 		return 'Es wurden garkeine Attacken ausgewählt!';
 | |
| 	}
 | |
| 	
 | |
| 	foreach ($attset as $att_id) {
 | |
| 		if($types[$att_id] == "tausch") {			$kampf_tausch_n++;
 | |
| 		}elseif($types[$att_id] == "SSJ") {		$kampf_ssj_n++;
 | |
| 		}elseif($types[$att_id] == "hpmp") {		$kampf_hpmp_n++;
 | |
| 		}elseif($types[$att_id] == "hp") {			$kampf_hp_n++;
 | |
| 		}elseif($types[$att_id] == "lose") {		$kampf_lose_n++;
 | |
| 		}elseif($types[$att_id] == "kaioken") {	$kampf_kaioken_n++;
 | |
| 		}elseif($types[$att_id] == "summon") {		$kampf_summon_n++;
 | |
| 		}elseif($types[$att_id] == "gift") {		$kampf_gift_n++;
 | |
| 		}elseif($types[$att_id] == "schatten") {	$kampf_schatten_n++;
 | |
| 		}elseif($types[$att_id] == "copy") {		$kampf_copy_n++;
 | |
| 		}elseif($types[$att_id] == "kaioken2") {	$kampf_kaioken2_n++;
 | |
| 		}elseif($types[$att_id] == "lose2") {		$kampf_lose2_n++;
 | |
| 		}elseif($types[$att_id] == "majin") {		$kampf_majin_n++;
 | |
| 		}elseif($types[$att_id] == "tausch2") {	$kampf_tausch2_n++;
 | |
| 		}elseif($types[$att_id] == "frucht") {		$kampf_frucht_n++;
 | |
| 		}elseif($types[$att_id] == "konterhp") {	$kampf_konterheal_n++;
 | |
| 		}
 | |
| 		if($kampf_copy_n > KAMPF_COPY) {
 | |
| 			return "Fehler die Technik vom type: Copy darf nur ".KAMPF_COPY." mal benutzt werden.";
 | |
| 		}
 | |
| 		if($kampf_kaioken2_n > KAMPF_KAIOKEN2) {
 | |
| 			return "Fehler die Technik vom type: Kaiaoken2 darf nur ".KAMPF_KAIOKEN2." mal benutzt werden.";
 | |
| 		}
 | |
| 		if($kampf_lose2_n > KAMPF_LOSE2) {
 | |
| 			return "Fehler die Technik vom type: lose2 darf nur ".KAMPF_LOSE2." mal benutzt werden.";
 | |
| 		}
 | |
| 		if($kampf_majin_n > KAMPF_MAJIN) {
 | |
| 			return "Fehler die Technik vom type: Majin darf nur ".KAMPF_MAJIN." mal benutzt werden.";
 | |
| 		}
 | |
| 		if($kampf_tausch2_n > KAMPF_TAUSCH2) {
 | |
| 			return "Fehler die Technik vom type: Tausch darf nur ".KAMPF_TAUSCH2." mal benutzt werden.";
 | |
| 		}
 | |
| 		if($kampf_summon_n > KAMPF_SUMMON) {
 | |
| 			return "Fehler die Technik vom type: Summon darf nur ".KAMPF_SUMMON." mal benutzt werden.";
 | |
| 		}
 | |
| 		if($kampf_gift_n > KAMPF_GIFT) {
 | |
| 			return "Fehler die Technik vom type: Gift darf nur ".KAMPF_GIFT." mal benutzt werden.";
 | |
| 		}
 | |
| 		if($kampf_schatten_n > KAMPF_SCHATTEN) {
 | |
| 			return "Fehler die Technik vom type: Schatten darf nur ".KAMPF_SCHATTEN." mal benutzt werden.";
 | |
| 		}
 | |
| 		if($kampf_ssj_n AND $kampf_kaioken_n) {
 | |
| 			return "Fehler sie dürfen Techniken vom Type SSJ und Kaioken nicht zusammen nutzen.";
 | |
| 		}
 | |
| 		if($kampf_tausch_n > KAMPF_TAUSCH) {
 | |
| 			return "Fehler die Technik vom type: Kampf darf nur ".KAMPF_TAUSCH." mal benutzt werden.";
 | |
| 		}
 | |
| 		if($kampf_ssj_n > KAMPF_SSJ) {
 | |
| 			return "Fehler die Technik vom type: SSJ darf nur ".KAMPF_SSJ." mal benutzt werden.";
 | |
| 		}
 | |
| 		if($kampf_hp_n > KAMPF_HP) {
 | |
| 			return "Fehler die Technik vom type: HP darf nur ".KAMPF_HP." mal benutzt werden.";
 | |
| 		}
 | |
| 		if($kampf_hpmp_n > KAMPF_HPMP) {
 | |
| 			return "Fehler die Technik vom type: HPMP darf nur ".KAMPF_HPMP." mal benutzt werden.";
 | |
| 		}
 | |
| 		if($kampf_sprit_n > KAMPF_SPIRIT) {
 | |
| 			return "Fehler die Technik vom type:Sprit darf nur ".KAMPF_SPIRIT." mal benutzt werden.";
 | |
| 		}
 | |
| 		if($kampf_sprit2_n > $kampf_sprit2) {
 | |
| 			return "Fehler die Technik vom type: Sprit2 darf nur ".$kampf_sprit2." mal benutzt werden.";
 | |
| 		}
 | |
| 		if($kampf_lose_n > KAMPF_LOSE) {
 | |
| 			return "Fehler die Technik vom type: Lose darf nur ".KAMPF_LOSE." mal benutzt werden.";
 | |
| 		}
 | |
| 		if($kampf_kaioken_n > KAMPF_KAIOKEN) {
 | |
| 			return "Fehler die Technik vom type: Kaiaoken darf nur ".KAMPF_KAIOKEN." mal benutzt werden.";
 | |
| 		}
 | |
| 		if($kampf_frucht_n > KAMPF_FRUCHT) {
 | |
| 			return 'Fehler die Technik vom type: frucht darf nur '.KAMPF_FRUCHT.' mal benutzt werden!';
 | |
| 		}
 | |
| 		if($kampf_konterheal_n > KAMPF_KONTERHEAL) {
 | |
| 			return 'Fehler die Technik vom type: Konterheal darf nur '.KAMPF_KONTERHEAL.' mal benutzt werden!';
 | |
| 		}
 | |
| 		if($kampf_hp_n >= 1 AND $kampf_hpmp_n >= 1) {
 | |
| 			return 'Fehler die Technik vom type: HP darf nicht zusammen mit der Technik vom type: HPMP benutzt werden!';
 | |
| 		}
 | |
| 	}
 | |
| 	return NULL;
 | |
| }
 | |
| ?>
 |