Главная » Статьи » Инстинкты Воина

PvP-Опыт
1) PvP-Опыт.
2) В результате сражения между игроками склонностей игрок получает пвп-опыт.
3)
4) Сначало добавляем поле \'pvp\' в таблице \'person\' (int(11)).
Затем в includes/battle/battle.php находим
Code

$opp_stats=mysql_query(\"SELECT id, user, level, strength, dex, agility, vitality, razum, hp_now, invisible, battle, rank, m_k, m_m, m_t, m_d, elik_time, elik_action, aura, aura_t FROM person WHERE user=\'\".addslashes($opponent).\"\' LIMIT 1\");

Заменяем на
Code

$opp_stats=mysql_query(\"SELECT id, user, level, strength, dex, agility, vitality, razum, hp_now, invisible, battle, rank, m_k, m_m, m_t, m_d, elik_time, elik_action, aura, aura_t, sclon, pvp FROM person WHERE user=\'\".addslashes($opponent).\"\' LIMIT 1\");

Далее после
Code

if ($stat[\'room\'] == 2) $addmoney = 0.5*($opp_stat[\'level\'] + 1); else $addmoney = 0.1;
mysql_query(\"update person set credits=credits+$addmoney where id=\'\".$stat[\'id\'].\"\'\");
}

Добавляем
Code

if ($opp_stat[\'sclon\']!=0 && $opp_stat[\'sclon\']!=$stat[\'sclon\']){
$pvp = 1;
$pvp1 = mysql_query(\"update person set pvp=pvp+$pvp where id=\'\".$stat[\'id\'].\"\'\");
}

Переменная $pvp это количество пвп-опыта, получаемое за бой
После
Code

if ($stv) insert_msg (\"Вы получаете деньги ($offer[stavka]) со ставки.\",\"\",\"\",\"1\",$stat[\'user\'],\"\",$stat[\'room\']);

Добавляем
Code

if ($pvp1) insert_msg (\"Получено pvp-опыта: <b><u>\".$pvp.\"</u></b>.\",\"\",\"\",\"1\",$stat[\'user\'],\"\",$stat[\'room\']);

С баттлом все, теперь идем в includes/inf/player.php и добавляем пару буковок:
Code

$psel = mysql_query(\"SELECT user, rank, sclon, tribe, level, battle, side, vip, pvp FROM `person` WHERE `user` = \'$login\' \");
$pl = mysql_fetch_array($psel);
  $login=$pl[\"user\"];
  $rank=$pl[\"rank\"];
  $sclon=$pl[\"sclon\"];
  $klan=$pl[\"tribe\"];
  $level=$pl[\"level\"];
  $battle=$pl[\"battle\"];
  $side=$pl[\"side\"];
  $vip=$pl[\"vip\"];
  $pvp=$pl[\"pvp\"];

Затем в person/person.php и person/header.php после Опыта (хотя куда хотите) добавляем:
Code

<tr>
  <td class=\"tc_b\">PvP-Опыт:</td>
  <td class=\"tc_b\"><?echo\"<b>\".$stat[\'pvp\'].\"</b>\";?></td>
</tr>

Делал сам )
Я для того чтоб склонки сильно не отличались заменил dark.php на копию light.php, просто заменил несколько цифр и слов, ну вы можете делать как хотите ))
Вроде бы все описал, как использовать эту ф-ю решите сами, хотя мб скоро выложу один из вариантов, если комуто не нравиццо не пользуйтесь, удаляйте, ненадо только комментов типа зачем это вопще нужно и т.п.
З.Ы. через часик мб выложу скрины. От первой спасибки не отказался бы

Апдайт.
Можно сделать чтоп за определенное колво пвп опыта добавлялись например статы:

Code

if ($stat['pvp']==10){
mysql_query("update person set s_updates=s_updates+1 where id='".$stat['id']."'");
}

Или способности:
Code

if ($stat['pvp']==10){
mysql_query("update person set o_updates=o_updates+1 where id='".$stat['id']."'");
}

Их может быть хоть миллион, но надо прописать каждый )
Если хотите чтоб при получении статов или способностей выводилось соответствующее сообщение в чат, просто перед запросом поставьте любую переменную, например $pvp_stat1, и добавьте

if ($pvp_stat1) insert_msg ("текст.","","","1",$stat['user'],"",$stat['room']);
Но если прописывать это через баттл пхп, то надо писать на 1 меньше чем нуно, читается колво пвп до окончания боя, и разумеется поставить

(... && $opp_stat['sclon']!=0 && $opp_stat[\'sclon\']!=$stat[\'sclon\'])
И еще одно, разумеется я могу ошибатся, хотя у меня все работает отлично
P.S. если у вас вместо одного стата добавляется 2 пишите o_updates или s_updates не +1, а +0,5, лучше решения пока не придумал))

Источник: http://dapf.us/index.php?showtopic=11835

Категория: Инстинкты Воина | Добавил: Cerberus (20.06.2010)
Просмотров: 1610 | Рейтинг: 0.0/0