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

ПВП рейтинг смерть


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

Имеется пвп рейтинг. Но есть 1 не приятный нюанс: когда убивает монстр то рейтинг все равно идет в мину.

Как исправить?

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

Кусок кода.

- script PVP_RATING_DIE -1,{
OnPCDieEvent:
if(killerrid == getcharid(0) || killerrid < 150000) end;
sleep2 500;
deltimer "PvP_Killers::OnMKReset";
if(@MultiKill > 0)set @MultiKill, 0;
if(@KillingSpree > 0)set @KillingSpree, 0;
if(getcharid(0) == killerrid) end;
if(!FirstPK){
set Rating,Rating + 1200;
set pvp_die, pvp_die +1;
query_sql "INSERT INTO `pvp_rating` (`name`, `dies`, `rating`) VALUES ('"+strcharinfo(0)+"', '"+pvp_die+"', '"+Rating+"')";
set FirstPK, 1;
end;
}
set Rating,Rating - rand(40,60);
set pvp_die, pvp_die +1;
dispbottom "[PvP System] : Вы умерли, у вас теперь :["+Rating+"] рейтинга и "+pvp_die+" смертей.";
query_sql "UPDATE `pvp_rating` SET `dies`='"+pvp_die+"', `rating`='"+Rating+"' WHERE `name`='"+strcharinfo(0)+"'";
end;

}

function script get_rating {
if(!FirstPK){
set Rating,Rating + 1200;
set pvp_kill,pvp_kill +1;
query_sql "INSERT INTO `pvp_rating` (`name`, `kills`, `rating`) VALUES ('"+strcharinfo(0)+"', '"+pvp_kill+"', '"+Rating+"')";
set FirstPK, 1;
return;
}
set Rating,Rating + rand(30,50);
set pvp_kill,pvp_kill+1;
dispbottom "[PvP System] : Вы убили, у вас теперь :["+Rating+"] рейтига и "+pvp_kill+" убийств.";
query_sql "UPDATE `pvp_rating` SET `kills`='"+pvp_kill+"', `rating`='"+Rating+"' WHERE `name`='"+strcharinfo(0)+"'";
return;
}

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

Не знаю почему, но не срабатывает проверка

killerrid < 150000

Можно попробовать избавиться от от OnPCDieEvent, вместо этого после подсчета рейтинга убийцы аттачиться к убитому через killedrid и считать ему рейтинг.

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

Мой магический шар как не старался, не смог выявить причину без скрипта\куска скрипта

Стареешь, Джар, стареешь.

По теме же: может они втюхали моба с ID > 15000 ? )))

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

Строчкой блять ниже

OnPCKillEvent:

This special label triggers when a player kills another player. The variable

'killedrid' is set to the ID of the player killed.

А при чем здесь киллед? Тут киллер

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

Имеется пвп рейтинг. Но есть 1 не приятный нюанс: когда убивает монстр то рейтинг все равно идет в мину.

Как исправить?

При срабатывании лейбла OnPCDieEvent в killerrid записывается ID игрового объекта, а не ID моба. ID игрового объекта для моба/нпц/гома >= 110000000. Можете воспользоваться этим. Но я бы предпочел использовать лейбл OnPCKillEvent при написании скрипта PvP рейтинга. ;)

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

Кстати лучше не делать запросов из скрипта а писать все в переменные чара. Потом это все легко получается простым многотабличным запросом.

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

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