Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //require_once 'controller.php';
- require_once 'replace_items.php';
- $files = array();
- $list;
- $xml_name;
- $characters_xml ;
- $target_character_xml;
- function xml_auth($account_raw , $password_raw , $xml_account){
- $username = antiinjection($account_raw);
- $password = antiinjection($password_raw);
- $xml_username = $xml_account->account->name;
- $xml_password = '0x'.$xml_account->account->password ;
- $user_password = @encrypt($password);
- if($user_password==$xml_password )
- {
- return true;
- }
- return false;
- }
- function load_files(){
- global $files , $xml_directory , $list;
- $list = scandir($xml_directory);
- for ($x=0; $x<count($list); $x++)
- {
- if (!@is_dir($list[$x])&&basename($list[$x], ".xml")!=$list[$x])
- {
- $files[]=$list[$x];
- }
- }
- }
- function get_xml_account($account){
- global $files , $xml_name , $xml_directory;
- if (count($files)>0)
- {
- for ($x=0; $x<count($files); $x++)
- {
- $xml=@simplexml_load_file($xml_directory.$files[$x]);
- $acc_name=$xml->account->name;
- if($acc_name == $account)
- {
- $xml_name = $files[$x];
- return $xml;
- }
- }
- }
- }
- function get_characters_names($xml , $desired_name){
- $characters = array();
- $desired_character ;
- if (count($xml->char)>0)
- {
- for ($i=0; $i<count($xml->char); $i++)
- {
- $name = $xml->char[$i]->details->char_name;
- if($name == $desired_name){$desired_character = $xml->char[$i];}
- else{
- $characters[] = $xml->char[$i];
- }
- }
- }
- if(isset($desired_character) != null){array_unshift($characters,$desired_character );}
- return $characters;
- }
- function get_selected_character($char_name , $characters_xml){
- foreach ($characters_xml as $character)
- {
- $character_name = $character->details->char_name;
- if($character_name == $char_name){
- return $character;
- }
- }
- }
- function get_target_character($xml , $char_name){
- if (count($xml->char)>0)
- {
- for ($i=0; $i<count($xml->char); $i++)
- {
- if($char_name == $xml->char[$i]->details->char_name)
- {
- return $xml->char[$i];
- }
- }
- }
- }
- function is_premium_account($xml){
- if( $xml->premium->enabled == "yes" )
- {
- return true;
- }
- return false;
- }
- function send_token_gif($account){
- }
- function change_level($level){
- global $DECREASE_PERCENT , $level_list;
- $server_top_level = get_server_top_level();
- $server_average_level = get_server_average_level();
- if($server_average_level == 0){$server_average_level = $server_top_level;}
- $level_exp = $level_list[$level]['exp'];
- //1 we reduce % of exp
- $new_level_exp = ($level_exp * $DECREASE_PERCENT) / 100;
- $new_level = exp_to_level($new_level_exp);
- //2 we reduce level to server average
- if($new_level > $server_average_level )
- {
- $new_posible_level = ($server_top_level + $server_average_level) /2;
- if($new_posible_level > $new_level ){
- $new_level = $server_average_level;
- }
- else
- {
- $new_level = $new_posible_level;
- }
- $new_level_exp = $level_list[$new_level]['exp'];
- }
- $character_level = array();
- $character_level['exp'] = $new_level_exp;
- $character_level['lvl'] = $new_level;
- return $character_level;
- }
- function exp_to_level($exp){
- global $level_list;
- $arrived_to_max = false;
- foreach ($level_list as $level)
- {
- if($exp <= $level['exp'] )
- {
- return $level['lvl'];
- }
- }
- return 1;
- }
- function import_character( $new_acc_id , $new_acc_name, $xml_char){
- global $server , $char_prefix , $ALLOW_A_GRADE , $ALLOW_B_GRADE , $MAX_ADENA , $ALLOW_ALL_ITEMS;
- $server = 1;
- $world= 1;
- $connection_lin2world = open_connection("lin2world");
- $char_name=$xml_char->details->char_name;
- $result=_sql_query_ext($connection_lin2world , "SELECT char_name FROM user_data WHERE char_name='$char_name'");
- if(check_result($result))
- {
- $char_name = $char_prefix.$char_name;
- if (strlen($char_name)>16)
- {
- $char_name=substr($char_name, 0, 16);
- }
- }
- $result=_sql_query_ext($connection_lin2world , "SELECT char_name FROM user_data WHERE char_name='$char_name'");
- if(check_result($result))
- {
- return false;
- }
- else{
- $level = intval($xml_char->details->lev);
- $new_character_level = change_level($level);
- $new_level = $new_character_level['lvl'];
- $new_exp = $new_character_level['exp'];
- $result=_sql_query($connection_lin2world ,"INSERT INTO user_data (char_name, account_name, account_id, gender, race,
- class, world, xloc, yloc, zloc, HP, MP, cp, max_hp,
- max_mp, max_cp, SP, Exp, Lev, align, PK, PKpardon,
- Duel, quest_flag, power_flag, face_index,
- hair_shape_index, hair_color_index, use_time, subjob_id,
- subjob0_class, subjob1_class, subjob2_class, subjob3_class)
- VALUES ('$char_name',
- '$new_acc_name',
- $new_acc_id,
- ".$xml_char->details->gender.",
- ".$xml_char->details->race.",
- ".$xml_char->details->class.",
- $world,
- ".$xml_char->details->xloc.",
- ".$xml_char->details->yloc.",
- ".$xml_char->details->zloc.",
- ".$xml_char->details->hp.",
- ".$xml_char->details->mp.",
- ".$xml_char->details->cp.",
- ".$xml_char->details->max_hp.",
- ".$xml_char->details->max_mp.",
- ".$xml_char->details->max_cp.",
- ".$xml_char->details->sp.",
- ".$new_exp.",
- ".$new_level.",
- ".$xml_char->details->align.",
- ".$xml_char->details->pk.",
- ".$xml_char->details->pkpardon.",
- ".$xml_char->details->duel.",
- 0x".$xml_char->details->quest_flag.",
- 0x".$xml_char->details->power_flag.",
- ".$xml_char->details->face_index.",
- ".$xml_char->details->hair_shape_index.",
- ".$xml_char->details->hair_color_index.",
- ".$xml_char->details->use_time.",
- ".$xml_char->details->subjob_id.",
- ".$xml_char->details->subjob0_class.",
- ".$xml_char->details->subjob1_class.",
- ".$xml_char->details->subjob2_class.",
- ".$xml_char->details->subjob3_class.")");
- if ($result)
- {
- $result=_sql_query($connection_lin2world ,"SELECT char_id FROM user_data WHERE char_name='$char_name'");
- $c=_sql_fetch_assoc($result);
- $new_char_id=$c["char_id"];
- if (count($xml_char->hennas)>0)
- {
- $result=_sql_query($connection_lin2world ,"INSERT INTO user_henna (char_id, henna_1, henna_2, henna_3, subjob_id)
- VALUES ($new_char_id,
- ".$xml_char->hennas->henna_1.",
- ".$xml_char->hennas->henna_2.",
- ".$xml_char->hennas->henna_3.",
- ".(intval($xml_char->hennas->subjob_id)+0).")");
- }
- }
- if ($result)
- {
- if (count($xml_char->subjobs)>0)
- {
- for ($j=0; $j<count($xml_char->subjobs->subjob); $j++)
- {
- $result=_sql_query($connection_lin2world ,"INSERT INTO user_subjob (char_id, hp, mp, sp, exp, level,
- henna_1, henna_2, henna_3, subjob_id, create_date)
- VALUES ($new_char_id,
- ".$xml_char->subjobs->subjob[$j]->hp.",
- ".$xml_char->subjobs->subjob[$j]->mp.",
- ".$xml_char->subjobs->subjob[$j]->sp.",
- ".$xml_char->subjobs->subjob[$j]->exp.",
- ".$xml_char->subjobs->subjob[$j]->level.",
- ".$xml_char->subjobs->subjob[$j]->henna_1.",
- ".$xml_char->subjobs->subjob[$j]->henna_2.",
- ".$xml_char->subjobs->subjob[$j]->henna_3.",
- ".$xml_char->subjobs->subjob[$j]->subjob_id.", GETDATE())");
- }
- }
- }
- if ($result)
- {
- if (count($xml_char->quests)>0)
- {
- $result=_sql_query($connection_lin2world ,"INSERT INTO Quest (char_id, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10,
- q11, q12, q13, q14, q15, q16, s1, s2, s3, s4, s5,
- s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, s16,
- j1, j2, j3, j4, j5, j6, j7, j8, j9, j10, j11, j12,
- j13, j14, j15, j16, s2_1, s2_2, s2_3, s2_4, s2_5,
- s2_6, s2_7, s2_8, s2_9, s2_10, s2_11, s2_12, s2_13,
- s2_14, s2_15, s2_16)
- VALUES ($new_char_id,
- ".$xml_char->quests->q1.",
- ".$xml_char->quests->q2.",
- ".$xml_char->quests->q3.",
- ".$xml_char->quests->q4.",
- ".$xml_char->quests->q5.",
- ".$xml_char->quests->q6.",
- ".$xml_char->quests->q7.",
- ".$xml_char->quests->q8.",
- ".$xml_char->quests->q9.",
- ".$xml_char->quests->q10.",
- ".$xml_char->quests->q11.",
- ".$xml_char->quests->q12.",
- ".$xml_char->quests->q13.",
- ".$xml_char->quests->q14.",
- ".$xml_char->quests->q15.",
- ".$xml_char->quests->q16.",
- ".$xml_char->quests->s1.",
- ".$xml_char->quests->s2.",
- ".$xml_char->quests->s3.",
- ".$xml_char->quests->s4.",
- ".$xml_char->quests->s5.",
- ".$xml_char->quests->s6.",
- ".$xml_char->quests->s7.",
- ".$xml_char->quests->s8.",
- ".$xml_char->quests->s9.",
- ".$xml_char->quests->s10.",
- ".$xml_char->quests->s11.",
- ".$xml_char->quests->s12.",
- ".$xml_char->quests->s13.",
- ".$xml_char->quests->s14.",
- ".$xml_char->quests->s15.",
- ".$xml_char->quests->s16.",
- ".$xml_char->quests->j1.",
- ".$xml_char->quests->j2.",
- ".$xml_char->quests->j3.",
- ".$xml_char->quests->j4.",
- ".$xml_char->quests->j5.",
- ".$xml_char->quests->j6.",
- ".$xml_char->quests->j7.",
- ".$xml_char->quests->j8.",
- ".$xml_char->quests->j9.",
- ".$xml_char->quests->j10.",
- ".$xml_char->quests->j11.",
- ".$xml_char->quests->j12.",
- ".$xml_char->quests->j13.",
- ".$xml_char->quests->j14.",
- ".$xml_char->quests->j15.",
- ".$xml_char->quests->j16.",
- ".$xml_char->quests->s2_1.",
- ".$xml_char->quests->s2_2.",
- ".$xml_char->quests->s2_3.",
- ".$xml_char->quests->s2_4.",
- ".$xml_char->quests->s2_5.",
- ".$xml_char->quests->s2_6.",
- ".$xml_char->quests->s2_7.",
- ".$xml_char->quests->s2_8.",
- ".$xml_char->quests->s2_9.",
- ".$xml_char->quests->s2_10.",
- ".$xml_char->quests->s2_11.",
- ".$xml_char->quests->s2_12.",
- ".$xml_char->quests->s2_13.",
- ".$xml_char->quests->s2_14.",
- ".$xml_char->quests->s2_15.",
- ".$xml_char->quests->s2_16.")");
- }
- }
- if ($result)
- {
- if (count($xml_char->weared_items->item)>0)
- {
- $chest_item = 0;
- $leg_item = 1;
- for ($j=0; $j<count($xml_char->weared_items->item); $j++)
- {
- $item_slot = $xml_char->weared_items->item[$j]->item_slot;
- if(intval($item_slot) == 0)
- {
- $item_id = intval($xml_char->weared_items->item[$j]->item_type);
- if($item_slot == "CHEST"){$chest_item = $item_id ;}
- if($item_slot == "LEGS"){$leg_item = $item_id ; }
- if($chest_item != $leg_item){
- $item_id = remove_sa($item_id);
- if(!$ALLOW_A_GRADE)
- {
- $item_id = replace_item_AB($item_id);
- }
- if (!$ALLOW_B_GRADE){
- $item_id = replace_item_BC($item_id);
- }
- if($item_id == -5){
- $old_item_id = intval($xml_char->weared_items->item[$j]->item_type);
- $items = get_double_items($old_item_id);
- if($items != null)
- {
- $item_1 = $items[0];
- $item_2 = $items[1];
- $result=_sql_query($connection_lin2world ,"INSERT INTO user_item (char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse) VALUES ($new_char_id, ".$item_1.", 1, 0, 0, 0, 0, 0, 0)");
- $result=_sql_query($connection_lin2world ,"INSERT INTO user_item (char_id, item_type, amount, enchant, eroded, bless, ident, wished, warehouse) VALUES ($new_char_id, ".$item_2.", 1, 0, 0, 0, 0, 0, 0)");
- }
- }
- else{
- $result=_sql_query($connection_lin2world ,"INSERT INTO user_item (char_id, item_type, amount, enchant, eroded,
- bless, ident, wished, warehouse)
- VALUES ($new_char_id,
- ".$item_id.",
- 1,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0)");
- }
- }
- }
- }
- }
- }
- if ($result)
- {
- if (count($xml_char->skills->skill)>0)
- {
- for ($j=0; $j<count($xml_char->skills->skill); $j++)
- {
- $result=_sql_query($connection_lin2world ,"INSERT INTO user_skill (char_id, skill_id, skill_lev, subjob_id)
- VALUES ($new_char_id,
- ".$xml_char->skills->skill[$j]->skill_id.",
- ".$xml_char->skills->skill[$j]->skill_lev.",
- ".$xml_char->skills->skill[$j]->subjob_id.")");
- }
- }
- }
- if ($result)
- {
- if (count($xml_char->recipes)>0)
- {
- for ($j=0; $j<count($xml_char->recipes); $j++)
- {
- $result=_sql_query($connection_lin2world ,"INSERT INTO user_recipe (char_id, recipe_id)
- VALUES ($new_char_id,
- ".$xml_char->recipes->recipe_id[$j].")");
- }
- }
- }
- //adena and items
- if ($result)
- {
- if (count($xml_char->items->item)>0)
- {
- for ($j=0; $j<count($xml_char->items->item); $j++)
- {
- $item_id = $xml_char->items->item[$j]->item_type;
- $amount = $xml_char->items->item[$j]->amount;
- if(intval($item_id) == 57 || $ALLOW_ALL_ITEMS)
- {
- if(intval($item_id) == 57 && intval($amount) > $MAX_ADENA)
- {
- $amount = $MAX_ADENA;
- }
- $result=_sql_query($connection_lin2world ,"INSERT INTO user_item (char_id, item_type, amount, enchant, eroded,
- bless, ident, wished, warehouse)
- VALUES ($new_char_id,
- ".$item_id.",
- ".$amount.",
- 0,
- 0,
- 0,
- 0,
- 0,
- 0)");
- $j = count($xml_char->items->item)+1;
- }
- }
- }
- }
- }
- _sql_close($connection_lin2world);
- }
Advertisement
Add Comment
Please, Sign In to add comment