- // диалог повышения скилла или аттрибута на 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);