Перейти к содержанию

ПвП Рейтинг


Sanasol

Рекомендуемые сообщения

Самый простой из возможных пвп рейтингов.

Сколько убил, столько рейтинга и наоброт.

1. Добавить в таблицу char 2 поля kills и dies. Тип int(числовые) Длина как хотите.

http://www.youtube.com/watch?v=j9a6wmIxkwg

2. Ставите скрипт

3. Учите игроков разговаривать с НПЦом

4. Ставите Рейтинг на сайте.

Скрипт:


/*
by Sanasol
*/
- script pvp_rate -1,{

OnPckillEvent:
if(rid2name(killedrid) == strcharinfo(0)) end;
set kills,kills+1;
dispbottom "Вы убили персонажа "+rid2name(killedrid)+", у вас "+kills+" убийств";

//killed
attachrid killedrid;
if(rid2name(killerrid) == strcharinfo(0)) end;
if(killerrid == null) end;
set dies,dies+1;
dispbottom "Вас убил персонаж "+rid2name(killerrid)+", у вас "+dies+" смертей";
end;

OnPCLoginEvent:
OnPCLogOutEvent:
query_sql("update `char` set `dies`='"+dies+"' where char_id='"+getcharid(0)+"'");
query_sql("update `char` set `pvp`='"+kills+"' where char_id='"+getcharid(0)+"'");
end;

OnWhisperGlobal:
if (@whispervar0$ == "стат") {
dispbottom "Информация: Убийств "+kills+", Смертей "+dies+"";
}
if (@whispervar0$ == "топ") {
dispbottom "-----ПвП Топ Игроков----";
query_sql "SELECT `name`,`pvp`,`dies` FROM `char` ORDER BY `pvp` DESC LIMIT "+@whispervar1$+"", @name$, @kills, @dies;
set $limit,@whispervar1$;
dispbottom "Ник || Убийств || Смертей";
for(set @i,0; @i != $limit; set @i,@i+1) { dispbottom ""+(@i+1)+" | "+@name$[@i]+" | "+@kills[@i]+" | "+@dies[@i]+""; }
}

if (@whispervar0$ == "инфо") {
dispbottom "Чтобы узнать вашу статистику напишите 'стат'";
dispbottom "Чтобы посмотреть топ игроков напишите 'топ#цифра', Цифра - сколько игроков в топе показать. например 'топ#5' выведет Топ 5 игроков";
}

end;
}

Скрипт для сайта:

<?
$host = "1111111111111";
$user = "casdasd";
$password = "asdasd";
$rodb = "asdasd";
$job['0']= "Novice";
$job['1']= "Swordman";
$job['2']= "Magician";
$job['3']= "Archer";
$job['4']= "Acolyte";
$job['5']= "Merchant";
$job['6']= "Thief";
$job['7']= "Knight";
$job['8']= "Priest";
$job['9']= "Wizard";
$job['10']= "Blacksmith";
$job['11']= "Hunter";
$job['12']= "Assassin";
$job['13']= "Knight (Peco)";
$job['14']= "Crusader";
$job['15']= "Monk";
$job['16']= "Sage";
$job['17']= "Rogue";
$job['18']= "Alchemist";
$job['19']= "Bard";
$job['20']= "Dancer";
$job['21']= "Crusader (Peco)";
$job['22']= "Wedding";
$job['23']= "Super Novice";
$job['24']= "Gunslinger";
$job['25']= "Ninja";
$job['4001']= "Novice High";
$job['4002']= "Swordman High";
$job['4003']= "Magician High";
$job['4004']= "Archer High";
$job['4005']= "Acolyte High";
$job['4006']= "Merchant High";
$job['4007']= "Thief High";
$job['4008']= "Lord Knight";
$job['4009']= "High Priest";
$job['4010']= "High Wizard";
$job['4011']= "Whitesmith";
$job['4012']= "Sniper";
$job['4013']= "Assassin Cross";
$job['4014']= "Lord Knight (Peco)";
$job['4015']= "Paladin";
$job['4016']= "Champion";
$job['4017']= "Professor";
$job['4018']= "Stalker";
$job['4019']= "Creator";
$job['4020']= "Clown";
$job['4021']= "Gypsy";
$job['4022']= "Paladin (Peco)";
$job['4023']= "Baby Novice";
$job['4024']= "Baby Swordman";
$job['4025']= "Baby Magician";
$job['4026']= "Baby Archer";
$job['4027']= "Baby Acolyte";
$job['4028']= "Baby Merchant";
$job['4029']= "Baby Thief";
$job['4030']= "Baby Knight";
$job['4031']= "Baby Priest";
$job['4032']= "Baby Wizard";
$job['4033']= "Baby Blacksmith";
$job['4034']= "Baby Hunter";
$job['4035']= "Baby Assassin";
$job['4036']= "Baby Knight (Peco)";
$job['4037']= "Baby Crusader";
$job['4038']= "Baby Monk";
$job['4039']= "Baby Sage";
$job['4040']= "Baby Rogue";
$job['4041']= "Baby Alchemist";
$job['4042']= "Baby Bard";
$job['4043']= "Baby Dancer";
$job['4044']= "Baby Crusader (Peco)";
$job['4045']= "Baby Super Novice";
$job['4046']= "Taekwon";
$job['4047']= "Star Knight";
$job['4048']= "Star Knight (flying)";
$job['4049']= "Soul Linker";

$num=0;
$db = mysql_connect ($host,$user,$password);
mysql_select_db($rodb,$db);
$result = mysql_query ("SELECT * FROM `char` ORDER BY `kills` DESC LIMIT 10 ",$db) or die(mysql_error());
$myrow = mysql_fetch_array($result);
mysql_query("SET SESSION CHARACTER SET utf-8");
mysql_query("SET NAMES utf-8");

echo "<table width='570' height='10' border='0'>
<tr>
<td height='10px'>№</td>
<td width='140px' height='10px'>Ник</td>
<td width='97px' height='10px'>Б.лвл/Дж.лвл</td>
<td width='94px' height='10px'>Убийств</td>
<td width='93px' height='10px'>Смертей</td>
<td width='122px' height='10px'>Профессия</td>
</tr>";
do
{
$num=$num+1;
printf("
<tr>
<td height='10px'>$num</td>
<td width='140px' height='10px'>%s</td>
<td width='97px' height='10px'>%s/%s</td>
<td width='94px' height='10px'>%s</td>
<td width='93px' height='10px'>%s</td>
<td width='122px' height='10px'>".$job[$myrow["class"]]."</td>
</tr>
" ,$myrow["name"] ,$myrow["base_level"],$myrow["job_level"] ,$myrow["kills"] ,$myrow["dies"], $myrow["class"]);
}
while ($myrow = mysql_fetch_array($result));

echo "</table>";


?>

Диалог с игроком:

При помощи привата

На какой ник писать?

npc:pvp_rate

Что писать?

"инфо"

Например:

Кому: npc:pvp_rate
Сообщение: инфо

Результат работы сообщения ИНФО на 2 скриншоте.

4da5fbc7f776t.jpg

3c627a429940t.jpg

90d574eeb159t.jpg

  • Upvote 4
  • Downvote 1
Ссылка на комментарий
Поделиться на другие сайты

Спасибо.

1.Работает скрипт.

Но не пойму почему после только как я убил. Пишет : "Вы убили "Новиса" на вашем счету 1 убийств.

Но после того как ввожу npc:pvp_rate инфо#3

Пишет что убийств 0.

Перезапуская эмуль,топ обновляется и пишет что убийств 1.

Не разберусь. За скрипт спасибо. :)

  • Downvote 3
Ссылка на комментарий
Поделиться на другие сайты

логичнее OnPCLogoutEvent а не OnPCLoginEvent

$jobs['int'] - быдлокод, нужно $jobs[int](ибо интерпретатор будет преобразовывать char/string в int)

а так ок.

  • Upvote 1
  • Downvote 1
Ссылка на комментарий
Поделиться на другие сайты

Итак, косяк скрипта таков.

При убийстве персонажа монстром, пишется в чат что Вася убит Mantis. И это убийство зачитывается как будто тебя убил обычный персонаж.

Ссылка на комментарий
Поделиться на другие сайты

На рус еа была. Тут нету и решения там не было. Все что надо сделать я написал.

Смотри другие скрипты пвп в пример

Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

В замешательстве.

В топе:

        $result = mysql_query ("SELECT * FROM `char` ORDER BY `kills` DESC LIMIT 10 ",$db) or die(mysql_error()); 
$myrow = mysql_fetch_array($result);
mysql_query("SET SESSION CHARACTER SET utf-8");
mysql_query("SET NAMES utf-8");

хитачес -

AddDefaultCharset utf-8

В хтмл -

<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>

И все равно русские ники в топе загагулинами).

Может сталкивался кто с этим и нашел решение?

Так-же замечу, что исходный вывод у меня в отдельном диве, но я не понимаю как это может влиять на вывод информации на сайт.

Менял все на "cp1251" - реакции 0.

Изменено пользователем S2pidsMan
Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...
  • 2 года спустя...

http://lost-soulsro.ru/pvptop.php

что там куда добавлять непонятно ))в других случаях ты пишешь что куда вписать в пхп но тут я нечего не понял в пхп что вписать?

Ссылка на комментарий
Поделиться на другие сайты

http://lost-soulsro.ru/pvptop.php

что там куда добавлять непонятно ))в других случаях ты пишешь что куда вписать в пхп но тут я нечего не понял в пхп что вписать?

можешь хотя бы вопрос сформулировать нормально?

Ссылка на комментарий
Поделиться на другие сайты

http://lost-soulsro.ru/pvptop.php

что там куда добавлять непонятно ))в других случаях ты пишешь что куда вписать в пхп но тут я нечего не понял в пхп что вписать?

можешь хотя бы вопрос сформулировать нормально?

да я решил эту проблему...

только что бы я не писал нпц на команды не отвечает...

npc:pvp_rate инфо#3

пробовал без пробовал

Нечего не отвечает...

Изменено пользователем qabakrall
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика