attachrid( @tmp_dead ); set PvP_Death, PvP_Death+1; set $@Dead_base, BaseLevel; Rating_Winner; Rating_Loser; announce "[ "+$@KillerName$+" ] "+$@kill_msg$+" [ "+$@KilledName$+" ].",bc_map; end; function Rating_Winner { if ( $@Kill_base < $@Dead_base ) set $@CountWinner, ( $@PvP_Point + ( $@Dead_base - $@Kill_base ) ) / 5; else set $@CountWinner, ( $@PvP_Point - ( $@Kill_base - $@Dead_base ) ) / 5; if ( PvP_Kills > 1 ) { query_sql "UPDATE "+@db_name$+".pvprate SET pvprat=pvprat+"+$@CountWinner+" WHERE name='"+$@KillerName$+"'"; } else { query_sql "INSERT INTO "+@db_name$+".pvprate (`name`,`pvprat`) VALUES ('"+$@KillerName$+"',"+$@CountWinner+")"; } return; } Вот кривой кусок из-за которого дублируются записи в базе. Почему проверяются PvP_Kills у приаттаченного убитого? Надо у киллера проверять >_< Дальше, если честно, лень ковыряться. Прав был кто-то выше, проще с нуля самому написать, чем тут без намека на форматирование ковыряться =(