// диалог повышения скилла или аттрибута на 1
$arr_skills=array(
"str"=>0,
"dex"=>1,
"int"=>2,
"meditation"=>5,
"steal"=>6,
"animaltaming"=>7,
"hand"=>8,
"coldweapon"=>9,
"ranged"=>10,
"parring"=>11,
"uklon"=>12,
"magic"=>13,
"magic_resist"=>14,
"magic_uklon"=>15,
"regeneration"=>16,
"hiding"=>17,
"look"=>18,
"steallook"=>19,
"animallore"=>20,
"spirit"=>21,
);
$arr_title=array(
"str"=>"Сила",
"dex"=>"Ловкость",
"int"=>"Интеллект",
"meditation"=>"Медитация",
"steal"=>"Кража",
"animaltaming"=>"Прир.животных",
"hand"=>"Рукопашная",
"coldweapon"=>"Холодн.оружие",
"ranged"=>"Стрельба",
"parring"=>"Парирование",
"uklon"=>"Уклон",
"magic"=>"Магия",
"magic_resist"=>"Сопр.магии",
"magic_uklon"=>"Уклон от магии",
"regeneration"=>"Регенерация",
"hiding"=>"Скрытность",
"look"=>"Осторожность",
"steallook"=>"Подглядывание",
"animallore"=>"Изуч.животных",
"spirit"=>"Спиритизм",
);
$skills=split("\|",$player["skills"]);
// проверим, есть ли очки опыта
if ($skills[4]<1) msg("<p>Недостаточно очков опыта");
// проверим минимальный и макс. уровень
if (!$dialog[3]) $dialog[3]=0;
if (!$dialog[4]) $dialog[4]=5;
if ($skills[$arr_skills[$dialog[1]]]<$dialog[3]) msg("<p>Вы должны иметь уровень навыка не ниже ".$dialog[3]);
if ($skills[$arr_skills[$dialog[1]]]>$dialog[4]) msg("<p>Вы и так достаточно опытны, я учу только до уровня ".$dialog[4]);
if ($dialog[1]=='str' || $dialog[1]=='dex' || $dialog[1]=='int') {
if ($skills[$arr_skills[$dialog[1]]]+1>$points_limit_attr_one) msg("<p>Невозможно повысить, т.к. аттрибут уже на максимальном уровне ".$points_limit_attr_one);
if ($skilldown && $skills[$arr_skills[$skilldown]]-1<1) msg("<p>Невозможно понизить, т.к. аттрибут уже на минимальном уровне 1, выберите другой");
if (!$skilldown) if ($skills[0]+$skills[0]+$skills[0]+1>$points_limit_attr) {
$stmp.= "<p>Превышен предел суммы очков (".$points_limit_attr.") для аттрибутов, выберите что уменьшить: ";
if ($dialog[1]!='str') $stmp.= "\n<br/><a href=\"$PHP_SELF?sid=$sid&speak=$speak&id=$id&skilldown=str\">Сила: ".$skills[0]."</a>";
if ($dialog[1]!='dex') $stmp.= "\n<br/><a href=\"$PHP_SELF?sid=$sid&speak=$speak&id=$id&skilldown=dex\">Ловкость: ".$skills[1]."</a>";
if ($dialog[1]!='int') $stmp.= "\n<br/><a href=\"$PHP_SELF?sid=$sid&speak=$speak&id=$id&skilldown=int\">Интеллект: ".$skills[2]."</a>";
msg($stmp);
}
} else { //НАВЫКИ
if ($skills[$arr_skills[$dialog[1]]]+1>$points_limit_skills_one) msg("<p>Невозможно повысить, т.к. навык уже на максимальном уровне ".$points_limit_skills_one);
if ($skilldown && $skills[$arr_skills[$skilldown]]-1<0) msg("<p>Невозможно понизить, т.к. навык уже на минимальном уровне 0, выберите другой");
$sum=1; // т.к. собираемся добавить
foreach (array_keys($arr_skills) as $i) if ($i!='str' && $i!='dex' && $i!='int') $sum+=$skills[$arr_skills[$i]];
if (!$skilldown) if ($sum+1>$points_limit_skills) {
$stmp.= "<p>Превышен предел суммы очков (".$points_limit_skills.") для навыков, выберите что уменьшить: ";
foreach (array_keys($arr_skills) as $i) if ($i!='str' && $i!='dex' && $i!='int') $stmp.= "\n<br/><a href=\"$PHP_SELF?sid=$sid&speak=$speak&id=$id&skilldown=$i\">".$arr_title[$i].": ".$skills[$arr_skills[$i]]."</a>";
msg($stmp);
}
}
// проверим, хватит ли денег
$b=0;
if ($player["items"]["item.misc.money"]) {
$money=split("\|",$player["items"]["item.misc.money"]);
$money[1]-=$dialog[2];
if ($money[1]>=0) {$b=1; if ($money[1]==0) unset($player["items"]["item.misc.money"]); else $player["items"]["item.misc.money"]=implode("|",$money);}
}
if (!$b) msg("<p>У вас недостаточно денег (надо ".$dialog[2]." монет)");
// повышаем +1
$skills[$arr_skills[$dialog[1]]]+=1;
if ($skilldown) $skills[$arr_skills[$skilldown]]-=1;
$skills[4]-=1; // очки опыта
$player["skills"]=implode("|",$skills);
calcparam($login); // пересчитаем основные параметры
$stmp="<p>".$arr_title[$dialog[1]].": +1";
if ($skilldown) $stmp.="<br/>".$arr_title[$skilldown].": -1";
msg($stmp);