diff --git a/ag/include/erstellfunctions.inc.php b/ag/include/erstellfunctions.inc.php
index 3ed67b7..52751f7 100644
--- a/ag/include/erstellfunctions.inc.php
+++ b/ag/include/erstellfunctions.inc.php
@@ -22,7 +22,7 @@ function erstelleUser(){
}
-function hasUserFreeCharSlot($user) {
+function hasUserFreeCharSlot($user, $special = false) {
$chars = getCharsOfUser($user['id']);
$special_chars = 0;
$normal_chars = 0;
@@ -33,15 +33,19 @@ function hasUserFreeCharSlot($user) {
$normal_chars++;
}
}
- // The first special char is always on its special slot!
- if($special_chars > 0)
- $special_chars--;
-
- $chars_avail = $normal_chars + $special_chars;
- $slots_avail = $user['char_max'];
- if($chars_avail < $slots_avail) {
- return true;
+
+ if(!$special) {
+ if($special_chars > 0)
+ $special_chars--;
+
+ $chars_avail = $normal_chars + $special_chars;
+ $slots_avail = $user['char_max'];
+ return $chars_avail < $slots_avail;
+ } else {
+ return $special_chars < 2;
}
+
+ return false;
}
// Muss aus einem sicheren Kontext gestartet werden
@@ -77,25 +81,8 @@ function erstelleChar($user, $rassen_id, $newname = '', $picture = '', $lvl = 1,
if($race['name'] != 'NPC') {
//Ueberprüfe ob ein Slot frei ist
- $chars = getCharsOfUser($user['id']);
- $normal = 0;
- $special = 0;
- foreach($chars as $row){
- if($row['rasse'] == 'Kaioshin' || $row['fusion_rasse'] == 'Kaioshin' || $row['rasse'] == 'Shichibukai' || $row['fusion_rasse'] == 'Shichibukai'){
- $special++;
- } else{
- $normal++;
- }
- }
- $slots_avail = $user['char_max'];
- if(!$special_char && $special <= 0){
- $slots_used = $normal;
- } else{
- $slots_used = $normal + $special - 1;
- }
- // echo 'Slots used: '.$slots_used.'
Slots available: '.$slots_avail.'
';
-
- if($slots_used >= $user['char_max']){
+ $check = hasUserFreeCharSlot($user, $special_char);
+ if(!$check){
displayErrorMessage(NULL,'Alle Slots sind schon belegt!!',displayHistoryBackLink());
return false;
}