#-------------------------------------#
#                                     #
#            #
#                                     #
#-------------------------------------#

#
# 
open(CONNECTS,"..\\bases\\connect.dat");
@connects=<CONNECTS>;
close(CONNECTS);

$proxy_auth="";

alias {
  local($found)=0;
  foreach $connect(@connects) {
    ($c_alias,$c_server,$c_port,$c_auth,$garbage)=split(/\|/,$connect);
    if (($c_alias eq "@_")&&(!$found)) {
      CMD::cmd_connect("$c_server",$c_port);
      $proxy_auth=$c_auth;
      $found=1;
    }
  }
} "";

alias {
  local($found)=0;
  foreach $connect(@connects) {
    ($c_alias,$c_server,$c_port,$c_auth,$garbage)=split(/\|/,$connect);
    $c_alias1=$c_alias;
    for ($i=0;$i<12-length($c_alias);$i++) {$c_alias1.=" ";}
    echo "$c_alias1 --- $c_server:$c_port";
  }
} "";


alias {
  if ($#_ eq -1) {$prport="4000";} else {$prport=$_[0];}
  sendl("CONNECT adan.ru:$prport HTTP/1.0");
  if ($proxy_auth) {
    sendl(join("","Authorization: Basic ",&base64encode($proxy_auth)));
    sendl(join("","Proxy-Authorization: Basic ",&base64encode($proxy_auth)));
  }
  sendl("");
} "";

#
# 

sub set_for {
  if ($_[0] eq "")      { $U::profHelpAction= " = ="; }
  elsif ($_[0] eq "")  { $U::profHelpAction= " =="; }
  else                       { $U::profHelpAction= ""; }
  
  if ($_[0] eq "")      { $U::profAggrAction= " = ="; }
  elsif ($_[0] eq "")     { $U::profAggrAction= " = ="; }
  elsif ($_[0] eq "")    { $U::profAggrAction= ","; }
  elsif ($_[0] eq "")   { $U::profAggrAction= ","; }
  elsif ($_[0] eq "")   { $U::profAggrAction= ","; }
  elsif ($_[0] eq "")  { $U::profAggrAction= ","; }
  elsif ($_[0] eq "")  { $U::profAggrAction= " =="; }
  elsif ($_[0] eq "")  { $U::profAggrAction= ""; }
  elsif ($_[0] eq "")      { $U::profAggrAction= ""; }
  elsif ($_[0] eq "")     { $U::profAggrAction= ","; }
  else                       { $U::profAggrAction= ""; }
}

sub set_messages {
  open(MESSAGES,"..\\bases\\messages.dat");
  @msgs=<MESSAGES>;
  close(MESSAGES);
  foreach $msg(@msgs) {
    @msg_=split(/\|/,$msg);
    if ($msg_[0] eq $U::msgset) {
      $msg_blind=$msg_[1];
      $msg_poison=$msg_[2];
      $msg_fly=$msg_[3];
      $msg_armor=$msg_[4];
      $msg_sanc=$msg_[5];
      $msg_bless=$msg_[6];
      $msg_milk=$msg_[7];
      $msg_strength=$msg_[8];
      $msg_dispell=$msg_[9];
      $msg_dispellall=$msg_[10];
      $msg_cmd_ready=$msg_[11];
      $msg_cmd_recall=$msg_[12];
      $msg_cmd_rest=$msg_[13];
      $msg_cmd_up=$msg_[14];
      $msg_mem_light=$msg_[15];
      $msg_mem_serios=$msg_[16];
      $msg_mem_critical=$msg_[17];
      $msg_mem_heal=$msg_[18];
      $msg_ready=$msg_[19];
      $msg_test=$msg_[20];
      $msg_recall=$msg_[21];
    }
  }
}

my @login_base;
sub read_login_base {
  open(LOGIN_BASE,"..\\bases\\login_base.dat");
  @login_base=<LOGIN_BASE>;
  close(LOGIN_BASE);
}

alias {
  &read_login_base;
  local($found)=0;
  foreach $login(@login_base) {
    ($l_id,$l_acc,$l_acc_pass,$l_name,$l_pass,$l_prof,$l_weap1,$l_weap2,$l_light,
     $l_shield,$l_container,$l_food,$l_water,$l_magsymb,$l_msgset,$end)=split(/\|/,$login);
    if ($l_id eq $_[0]) {
      $acc          = "$l_acc";
      $acc_pass     = "$l_acc_pass";
      $U::myname    = "$l_name";
      $pass         = "$l_pass";
      $U::weapon1   = "$l_weap1";
      $U::weapon2   = "$l_weap2";
      $U::light     = "$l_light";
      $U::shield    = "$l_shield";
      $U::container = "$l_container";
      $U::food      = "$l_food";
      $U::water     = "$l_water";
      $U::magsymb   = "$l_magsymb";
      $U::msgset    = "$l_msgset";
      &set_for("$l_prof");
      &set_messages;
      $found=1; 
    }
  }
  if (!$found) {
    echo "   ID  !";
  }
} "";

alias {
  &read_login_base;
  local($found)=0;
  open(LOGIN_BASE,">..\\bases\\login_base.dat");
  foreach $login(@login_base) {
    ($l_id,$l_acc,$l_acc_pass,$l_name,$l_pass,$l_prof,$l_weap1,$l_weap2,$l_light,
     $l_shield,$l_container,$l_food,$l_water,$l_magsymb,$msgset,$end)=split(/\|/,$login);
    if (($l_acc eq $acc)&&($l_acc_pass eq $acc_pass)&&
        ($l_name eq $U::myname)&&($l_pass eq $pass)) {
      $found=1; 
      $login = "$l_id\|$l_acc\|$l_acc_pass\|$l_name\|$l_pass\|$l_prof\|$U::weapon1\|$U::weapon2\|$U::light\|";
      $login.= "$U::shield\|$U::container\|$U::food\|$U::water\|$U::magsymb\|$U::msgset\|\n";
    }
    print LOGIN_BASE $login;
  }
  close(LOGIN_BASE);
  if (!$found) {
    echo "     !";
  } else {
    echo "   $U::myname  !";
  }
  &read_login_base;
} "";

alias {
  &read_login_base;
  $tmp1=0; $tmp2='';
  foreach $login(@login_base) {
    ($l_id,$l_acc,$l_acc_pass,$l_name,$l_pass,$l_prof,$l_weap1,$l_weap2,$l_light,
     $l_shield,$l_container,$l_food,$l_water,$l_magsymb,$l_msgset,$end)=split(/\|/,$login);
    $l_id1=$l_id;
    for ($i=0;$i<12-length($l_id);$i++) {$l_id1.=" ";}
    echo "$l_id1 --- [$l_acc] $l_prof $l_name";
    if ($l_acc ne $tmp2) {$tmp1++; $tmp2=$l_acc;}
  } 
  echo " $#login_base   $tmp1 .";
} "";

alias {
  &read_login_base;
  $login = "$_[0]\|$_[1]\|$_[2]\|$_[3]\|$_[4]\|$_[5]\|$U::weapon1\|$U::weapon2\|$U::light\|";
  $login.= "$U::shield\|$U::container\|$U::food\|$U::water\|$U::magsymb\|$U::msgset\|\n";
  push(@login_base,$login);
  open(LOGIN_BASE,">>..\\bases\\login_base.dat");
  print LOGIN_BASE $login;
  close(LOGIN_BASE);
  echo "   $_[5] $_[3]   $_[1] (ID $_[0])";
} "+";


alias { sendl("$acc\r\n$acc_pass"); }             "";
alias { sendl("$U::myname\r\n$pass\r\n"); }       "";

#
#    
trig { $U::myname=$2; }  '^a \[(.*)\]  \[([--]+)\]$', "1500s:CORE";
