Create Character script edit

Goku97

Member
Joined
May 23, 2016
Messages
123
Best answers
2
Reaction score
6
-empty-
 
Last edited:
OP
Goku97

Goku97

Member
Joined
May 23, 2016
Messages
123
Best answers
2
Reaction score
6
-empty-
 
Last edited:
OP
Goku97

Goku97

Member
Joined
May 23, 2016
Messages
123
Best answers
2
Reaction score
6
-empty-
 
Last edited:

MyAAC

Active Member
Joined
May 4, 2017
Messages
96
Best answers
8
Reaction score
45
Here you go:
Code:
//## CREATE CHARACTER on account ###
if($action == "createcharacter")
{
   if(count($config['site']['worlds']) > 1)
   {
      if(isset($_REQUEST['world']))
         $world_id = (int) $_REQUEST['world'];
   }
   else
      $world_id = 0;
   if(!isset($world_id))
   {
      $main_content .= 'Before you can create character you must select world: ';
      foreach($config['site']['worlds'] as $id => $world_n)
         $main_content .= '<br /><a href="?subtopic=accountmanagement&action=createcharacter&world='.$id.'">- '.htmlspecialchars($world_n).'</a>';
      $main_content .= '<br /><h3><a href="?subtopic=accountmanagement">BACK</a></h3>';
   }
   else
   {
      $main_content .= '<script type="text/javascript">
           var nameHttp;

function checkName()
{
       if(document.getElementById("newcharname").value=="")
       {
           document.getElementById("name_check").innerHTML = \'<b><font color="red">Please enter new character name.</font></b>\';
           return;
       }
       nameHttp=GetXmlHttpObject();
       if (nameHttp==null)
       {
           return;
       }
       var newcharname = document.getElementById("newcharname").value;
       var url="?subtopic=ajax_check_name&name=" + newcharname + "&uid="+Math.random();
       nameHttp.onreadystatechange=NameStateChanged;
       nameHttp.open("GET",url,true);
       nameHttp.send(null);
}

function NameStateChanged()
{
       if (nameHttp.readyState==4)
       {
           document.getElementById("name_check").innerHTML=nameHttp.responseText;
       }
}
</script>';
      $newchar_name = ucwords(strtolower(trim($_POST['newcharname'])));
      $newchar_sex = $_POST['newcharsex'];
      $newchar_vocation = $_POST['newcharvocation'];
      $newchar_town = $_POST['newchartown'];
      if($_POST['savecharacter'] != 1)
      {
         $main_content .= 'Please choose a name';
         if(count($config['site']['newchar_vocations'][$world_id]) > 1)
            $main_content .= ', vocation';
         $main_content .= ' and sex for your character. <br/>In any case the name must not violate the naming conventions stated in the <a href="?subtopic=tibiarules" target="_blank" >'.htmlspecialchars($config['server']['serverName']).' Rules</a>, or your character might get deleted or name locked.';
         if($account_logged->getPlayersList()->count() >= $config['site']['max_players_per_account'])
            $main_content .= '<b><font color="red"> You have maximum number of characters per account on your account. Delete one before you make new.</font></b>';
         $main_content .= '<br /><br />
               <form action="?subtopic=accountmanagement&action=createcharacter" method="post" >
               <input type="hidden" name="world" value="'.$world_id.'" ><input type="hidden" name=savecharacter value="1" >
               <div class="Text" >Create Character</div>
               <span>Name</span>
               <input id="newcharname" name="newcharname" onkeyup="checkName();" value="'.htmlspecialchars($newchar_name).'" size="30" maxlength="29" >
               <div id="name_check">Please enter your character name.</div>
               <br /><span>Gender</span><br />';
         $main_content .= '<select name="newcharsex">';
         $main_content .= '<option value="1" ';
         if($newchar_sex == 1)
            $main_content .= 'selected ';
         $main_content .= '>male</option><br/>';
         $main_content .= '<option value="0" ';
         if($newchar_sex == "0")
            $main_content .= 'selected ';
         $main_content .= '>female</option><br/>';
         if(count($config['site']['newchar_towns'][$world_id]) > 1 || count($config['site']['newchar_vocations'][$world_id]) > 1)
            if(count($config['site']['newchar_vocations'][$world_id]) > 1)
            {
               $main_content .= '<center><b>Select your vocation:</b></center>';
               $main_content .= '<center><select name="newcharvocation">';
               foreach($config['site']['newchar_vocations'][$world_id] as $char_vocation_key => $sample_char)
               {
                  $main_content .= '<option value="'.$char_vocation_key.'" ';
                  if($newchar_vocation == $char_vocation_key)
                     $main_content .= 'selected';
                  $main_content .= '>'.htmlspecialchars($vocation_name[0][$char_vocation_key]);
               }
               $main_content .= '</select>';
               $main_content .= '</center>';
            }
         if(count($config['site']['newchar_towns'][$world_id]) > 1)
         {
            $main_content .= '<b>Select your city:</b>';
            $main_content .= '<center><select name="newchartown">';
            foreach($config['site']['newchar_towns'][$world_id] as $town_id)
            {
               $main_content .= '<option value="'.$town_id.'" ';
               if($newchar_town == $town_id)
                  $main_content .= 'selected ';
               $main_content .= '>'.htmlspecialchars($towns_list[$world_id][$town_id]);
            }
            $main_content .= '</select>';
            $main_content .= '</center>';
         }
         if(count($config['site']['newchar_towns'][$world_id]) > 1 || count($config['site']['newchar_vocations'][$world_id]) > 1)
            $main_content .= '<br/>
               <input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" />
               </form>
               <form action="?subtopic=accountmanagement" method="post" >
               <input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" />
               </form>';
      }
      else
      {
         if(empty($newchar_name))
            $newchar_errors[] = 'Please enter a name for your character!';
         if(empty($newchar_sex) && $newchar_sex != "0")
            $newchar_errors[] = 'Please select the sex for your character!';
         if(count($config['site']['newchar_vocations'][$world_id]) > 1)
         {
            if(empty($newchar_vocation))
               $newchar_errors[] = 'Please select a vocation for your character.';
         }
         else
            $newchar_vocation = $config['site']['newchar_vocations'][$world_id][0];
         if(count($config['site']['newchar_towns'][$world_id]) > 1)
         {
            if(empty($newchar_town))
               $newchar_errors[] = 'Please select a town for your character.';
         }
         else
            $newchar_town = $config['site']['newchar_towns'][$world_id][0];
         if(empty($newchar_errors))
         {
            if(!check_name_new_char($newchar_name))
               $newchar_errors[] = 'This name contains invalid letters, words or format. Please use only a-Z, - , \' and space.';
            if($newchar_sex != 1 && $newchar_sex != "0")
               $newchar_errors[] = 'Sex must be equal <b>0 (female)</b> or <b>1 (male)</b>.';
            if(count($config['site']['newchar_vocations'][$world_id]) > 1)
            {
               $newchar_vocation_check = FALSE;
               foreach($config['site']['newchar_vocations'][$world_id] as $char_vocation_key => $sample_char)
                  if($newchar_vocation == $char_vocation_key)
                     $newchar_vocation_check = TRUE;
               if(!$newchar_vocation_check)
                  $newchar_errors[] = 'Unknown vocation. Please fill in form again.';
            }
            else
               $newchar_vocation = 0;
         }
         if(empty($newchar_errors))
         {
            $check_name_in_database = new Player();
            $check_name_in_database->find($newchar_name);
            if($check_name_in_database->isLoaded())
               $newchar_errors[] .= 'This name is already used. Please choose another name!';
            $number_of_players_on_account = $account_logged->getPlayersList()->count();
            if($number_of_players_on_account >= $config['site']['max_players_per_account'])
               $newchar_errors[] .= 'You have too many characters on your account <b>('.$number_of_players_on_account.'/'.$config['site']['max_players_per_account'].')</b>!';
         }
         if(empty($newchar_errors))
         {
            $char_to_copy_name = $config['site']['newchar_vocations'][$world_id][$newchar_vocation];
            $char_to_copy = new Player();
            $char_to_copy->find($char_to_copy_name);
            if(!$char_to_copy->isLoaded())
               $newchar_errors[] .= 'Wrong characters configuration. Try again or contact with admin. ADMIN: Edit file config/config.php and set valid characters to copy names. Character to copy <b>'.htmlspecialchars($char_to_copy_name).'</b> doesn\'t exist.';
         }
         if(empty($newchar_errors))
         {
            // load items and skills of player before we change ID
            $char_to_copy->getItems()->load();
            $char_to_copy->loadSkills();
           
            if($newchar_sex == "0")
               $char_to_copy->setLookType(136);
            $char_to_copy->setID(null); // save as new character
            $char_to_copy->setLastIP(0);
            $char_to_copy->setLastLogin(0);
            $char_to_copy->setLastLogout(0);
            $char_to_copy->setName($newchar_name);
            $char_to_copy->setAccount($account_logged);
            $char_to_copy->setSex($newchar_sex);
            $char_to_copy->setTown($newchar_town);
            $char_to_copy->setPosX(0);
            $char_to_copy->setPosY(0);
            $char_to_copy->setPosZ(0);
            $char_to_copy->setBalance(0);
            $char_to_copy->setWorldID((int) $world_id);
            $char_to_copy->setCreateIP(Visitor::getIP());
            $char_to_copy->setCreateDate(time());
            $char_to_copy->setSave(); // make character saveable
            $char_to_copy->save(); // now it will load 'id' of new player
            if($char_to_copy->isLoaded())
            {
               $char_to_copy->saveItems();
               $char_to_copy->saveSkills();
               $main_content .= '<div class="TableContainer" >  <table class="Table1" cellpadding="0" cellspacing="0" >    <div class="CaptionContainer" >      <div class="CaptionInnerContainer" >        <span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span>        <span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span>        <span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span>        <span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span>        <div class="Text" >Character Created</div>        <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span>        <span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span>        <span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span>        <span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span>      </div>    </div>    <tr>      <td>        <div class="InnerTableContainer" >          <table style="width:100%;" ><tr><td>The character <b>'.htmlspecialchars($newchar_name).'</b> has been created.<br/>Please select the outfit when you log in for the first time.<br/><br/><b>See you on '.$config['server']['serverName'].'!</b></td></tr>          </table>        </div>  </table></div></td></tr><br/><center><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></center>';
            }
            else
            {
               echo "Error. Can\'t create character. Probably problem with database. Try again or contact with admin.";
               exit;
            }
         }
         else
         {
            $main_content .= '<div class="SmallBox" >  <div class="MessageContainer" >    <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div>    <div class="BoxFrameEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div>    <div class="BoxFrameEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div>    <div class="ErrorMessage" >      <div class="BoxFrameVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div>      <div class="BoxFrameVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></div>      <div class="AttentionSign" style="background-image:url('.$layout_name.'/images/content/attentionsign.gif);" /></div><b>The Following Errors Have Occurred:</b><br/>';
            foreach($newchar_errors as $newchar_error)
               $main_content .= '<li>'.$newchar_error;
            $main_content .= '</div>    <div class="BoxFrameHorizontal" style="background-image:url('.$layout_name.'/images/content/box-frame-horizontal.gif);" /></div>    <div class="BoxFrameEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div>    <div class="BoxFrameEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></div>  </div></div><br/>';
            $main_content .= 'Please choose a name';
            if(count($config['site']['newchar_vocations'][$world_id]) > 1)
               $main_content .= ', vocation';
            $main_content .= ' and sex for your character. <br/>In any case the name must not violate the naming conventions stated in the <a href="?subtopic=tibiarules" target="_blank" >'.$config['server']['serverName'].' Rules</a>, or your character might get deleted or name locked.<br/><br/><form action="?subtopic=accountmanagement&action=createcharacter" method="post" ><input type="hidden" name="world" value="'.$world_id.'" ><input type="hidden" name=savecharacter value="1" ><div class="TableContainer" >  <table class="Table3" cellpadding="0" cellspacing="0" >    <div class="CaptionContainer" >      <div class="CaptionInnerContainer" ><span class="CaptionEdgeLeftTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightTop" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionBorderTop" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionVerticalLeft" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><div class="Text" >Create Character</div>        <span class="CaptionVerticalRight" style="background-image:url('.$layout_name.'/images/content/box-frame-vertical.gif);" /></span><span class="CaptionBorderBottom" style="background-image:url('.$layout_name.'/images/content/table-headline-border.gif);" ></span><span class="CaptionEdgeLeftBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span><span class="CaptionEdgeRightBottom" style="background-image:url('.$layout_name.'/images/content/box-frame-edge.gif);" /></span></div>    </div><tr>      <td>        <div class="InnerTableContainer" >          <table style="width:100%;" ><tr><td><div class="TableShadowContainerRightTop" >  <div class="TableShadowRightTop" style="background-image:url('.$layout_name.'/images/content/table-shadow-rt.gif);" ></div></div><div class="TableContentAndRightShadow" style="background-image:url('.$layout_name.'/images/content/table-shadow-rm.gif);" >  <div class="TableContentContainer" ><table class="TableContent" width="100%" ><tr class="LabelH" ><td style="width:50%;" ><span >Name</td><td><span >Sex</td></tr><tr class="Odd" ><td><input id="newcharname" name="newcharname" onkeyup="checkName();" value="'.$newchar_name.'" size="30" maxlength="29" ><BR><font size="1" face="verdana,arial,helvetica"><div id="name_check">Please enter your character name.</div></font></td><td>';
            $main_content .= '<input type="radio" name="newcharsex" value="1" ';
            if($newchar_sex == 1)
               $main_content .= 'checked="checked" ';
            $main_content .= '>male<br/>';
            $main_content .= '<input type="radio" name="newcharsex" value="0" ';
            if($newchar_sex == "0")
               $main_content .= 'checked="checked" ';
            $main_content .= '>female<br/></td></tr></table></div></div></table></div>';
            if(count($config['site']['newchar_towns'][$world_id]) > 1 || count($config['site']['newchar_vocations'][$world_id]) > 1)
               $main_content .= '<div class="InnerTableContainer" >          <table style="width:100%;" ><tr>';
            if(count($config['site']['newchar_vocations'][$world_id]) > 1)
            {
               $main_content .= '<td><table class="TableContent" width="100%" ><tr class="Odd" valign="top"><td width="160"><br /><b>Select your vocation:</b></td><td><table class="TableContent" width="100%" >';
               foreach($config['site']['newchar_vocations'][$world_id] as $char_vocation_key => $sample_char)
               {
                  $main_content .= '<tr><td><input type="radio" name="newcharvocation" value="'.htmlspecialchars($char_vocation_key).'" ';
                  if($newchar_vocation == $char_vocation_key)
                     $main_content .= 'checked="checked" ';
                  $main_content .= '>'.htmlspecialchars($vocation_name[0][$char_vocation_key]).'</td></tr>';
               }
               $main_content .= '</table></table></td>';
            }
            if(count($config['site']['newchar_towns'][$world_id]) > 1)
            {
               $main_content .= '<td><table class="TableContent" width="100%" ><tr class="Odd" valign="top"><td width="160"><br /><b>Select your city:</b></td><td><table class="TableContent" width="100%" >';
               foreach($config['site']['newchar_towns'][$world_id] as $town_id)
               {
                  $main_content .= '<tr><td><input type="radio" name="newchartown" value="'.htmlspecialchars($town_id).'" ';
                  if($newchar_town == $town_id)
                     $main_content .= 'checked="checked" ';
                  $main_content .= '>'.htmlspecialchars($towns_list[$world_id][$town_id]).'</td></tr>';
               }
               $main_content .= '</table></table></td>';
            }
            if(count($config['site']['newchar_towns'][$world_id]) > 1 || count($config['site']['newchar_vocations'][$world_id]) > 1)
               $main_content .= '</tr></table></div>';
            $main_content .= '</table></div></td></tr><br/><table style="width:100%;" ><tr align="center" ><td><table border="0" cellspacing="0" cellpadding="0" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Submit" alt="Submit" src="'.$layout_name.'/images/buttons/_sbutton_submit.gif" ></div></div></td><tr></form></table></td><td><table border="0" cellspacing="0" cellpadding="0" ><form action="?subtopic=accountmanagement" method="post" ><tr><td style="border:0px;" ><div class="BigButton" style="background-image:url('.$layout_name.'/images/buttons/sbutton.gif)" ><div onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" ><div class="BigButtonOver" style="background-image:url('.$layout_name.'/images/buttons/sbutton_over.gif);" ></div><input class="ButtonText" type="image" name="Back" alt="Back" src="'.$layout_name.'/images/buttons/_sbutton_back.gif" ></div></div></td></tr></form></table></td></tr></table>';
         }
      }
   }
}
 
OP
Goku97

Goku97

Member
Joined
May 23, 2016
Messages
123
Best answers
2
Reaction score
6
-empty-
 
Last edited:
OP
Goku97

Goku97

Member
Joined
May 23, 2016
Messages
123
Best answers
2
Reaction score
6
-empty-
 
Last edited:
Top