• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

[ZNOTE AAC] Create Character show/hide vocations options

tiagoddf

New Member
Joined
May 28, 2016
Messages
9
Reaction score
2
It's a simple change to show/hide vocation list when you creating your character.

If you have more then 1 vocations able to choose...
Code:
$config['available_vocations'] = array(1,2,3,4);
It will show list of vocations, but if you have only one vocation able
Code:
$config['available_vocations'] = array(0);
Will hide and when you create your character you be a non vocation(rookgaard)

It's simple, but i needed maybe others peoples need too :)

createcharacter.php
Code:
<?php require_once 'engine/init.php';
protect_page();
include 'layout/overall/header.php';

if (empty($_POST) === false) {
   // $_POST['']
   $required_fields = array('name', 'selected_town');
   foreach($_POST as $key=>$value) {
     if (empty($value) && in_array($key, $required_fields) === true) {
       $errors[] = 'You need to fill in all fields.';
       break 1;
     }
   }
   
   // check errors (= user exist, pass long enough
   if (empty($errors) === true) {
     if (!Token::isValid($_POST['token'])) {
       $errors[] = 'Token is invalid.';
     }
     $_POST['name'] = validate_name($_POST['name']);
     if ($_POST['name'] === false) {
       $errors[] = 'Your name can not contain more than 2 words.';
     } else {
       if (user_character_exist($_POST['name']) !== false) {
         $errors[] = 'Sorry, that character name already exist.';
       }
       if (!preg_match("/^[a-zA-Z_ ]+$/", $_POST['name'])) {
         $errors[] = 'Your name may only contain a-z, A-Z and spaces.';
       }
       if (strlen($_POST['name']) < $config['minL'] || strlen($_POST['name']) > $config['maxL']) {
         $errors[] = 'Your character name must be between ' . $config['minL'] . ' - ' . $config['maxL'] . ' characters long.';
       }
       // name restriction
       $resname = explode(" ", $_POST['name']);
       foreach($resname as $res) {
         if(in_array(strtolower($res), $config['invalidNameTags'])) {
           $errors[] = 'Your username contains a restricted word.';
         }
         else if(strlen($res) == 1) {
           $errors[] = 'Too short words in your name.';
         }
       }
       // Validate vocation id
       if (!in_array((int)$_POST['selected_vocation'], $config['available_vocations'])) {
         $errors[] = 'Permission Denied. Wrong vocation.';
       }
       // Validate town id
       if (!in_array((int)$_POST['selected_town'], $config['available_towns'])) {
         $errors[] = 'Permission Denied. Wrong town.';
       }
       // Validate gender id
       if (!in_array((int)$_POST['selected_gender'], array(0, 1))) {
         $errors[] = 'Permission Denied. Wrong gender.';
       }
       if (vocation_id_to_name($_POST['selected_vocation']) === false) {
         $errors[] = 'Failed to recognize that vocation, does it exist?';
       }
       if (town_id_to_name($_POST['selected_town']) === false) {
         $errors[] = 'Failed to recognize that town, does it exist?';
       }
       if (gender_exist($_POST['selected_gender']) === false) {
         $errors[] = 'Failed to recognize that gender, does it exist?';
       }
       // Char count
       $char_count = user_character_list_count($session_user_id);
       if ($char_count >= $config['max_characters']) {
         $errors[] = 'Your account is not allowed to have more than '. $config['max_characters'] .' characters.';
       }
       if (validate_ip(getIP()) === false && $config['validate_IP'] === true) {
         $errors[] = 'Failed to recognize your IP address. (Not a valid IPv4 address).';
       }
     }
   }
}
?>

<h1>Create Character</h1>
<?php
if (isset($_GET['success']) && empty($_GET['success'])) {
   echo 'Congratulations! Your character has been created. See you in-game!';
} else {
   if (empty($_POST) === false && empty($errors) === true) {
     if ($config['log_ip']) {
       znote_visitor_insert_detailed_data(2);
     }
     //Register
     $character_data = array(
       'name'     =>   format_character_name($_POST['name']),
       'account_id'=>   $session_user_id,
       'vocation'   =>   $_POST['selected_vocation'],
       'town_id'   =>   $_POST['selected_town'],
       'sex'     =>   $_POST['selected_gender'],
       'lastip'   =>   getIPLong(),
       'created'   =>   time()
     );
     
     user_create_character($character_data);
     header('Location: createcharacter.php?success');
     exit();
     //End register
     
   } else if (empty($errors) === false){
     echo '<font color="red"><b>';
     echo output_errors($errors);
     echo '</b></font>';
   }
   ?>
   <form action="" method="post">
     <ul>
       <li>
         Name:<br>
         <input type="text" name="name">
       </li>
       <?php
       $available_vocs = $config['available_vocations'];
       if (count($available_vocs) > 1):
         ?>
         <li>
           <!-- Available towns to select from when creating character -->
           Vocation:<br>
           <select name="selected_vocation">
             <?php foreach ($config['available_vocations'] as $id) { ?>
             <option value="<?php echo $id; ?>"><?php echo vocation_id_to_name($id); ?></option>
             <?php } ?>
           </select>
         </li>
         <?php
       else:
         ?>
         <input type="hidden" name="selected_vocation" value="<?php echo end($available_vocations); ?>">
         <?php
       endif;
         ?>





       <li>
         <!-- Available genders to select from when creating character -->
         Gender:<br>
         <select name="selected_gender">
         <option value="1">Male(boy)</option>
         <option value="0">Female(girl)</option>
         </select>
       </li>
       <?php
       $available_towns = $config['available_towns'];
       if (count($available_towns) > 1):
         ?>
         <li>
           <!-- Available towns to select from when creating character -->
           Town:<br>
           <select name="selected_town">
             <?php
             foreach ($available_towns as $tid):
               ?>
               <option value="<?php echo $tid; ?>"><?php echo town_id_to_name($tid); ?></option>
               <?php
             endforeach;
             ?>
           </select>
         </li>
         <?php
       else:
         ?>
         <input type="hidden" name="selected_town" value="<?php echo end($available_towns); ?>">
         <?php
       endif;

       /* Form file */
       Token::create();
       ?>
       <li>
         <input type="submit" value="Create Character">
       </li>
     </ul>
   </form>
   <?php
}
include 'layout/overall/footer.php'; ?>
 
Back
Top