Gans Опубликовано 6 февраля, 2012 Жалоба Поделиться Опубликовано 6 февраля, 2012 (изменено) И так прошу помочь на сервер стоит вот этот PvP счетчик.После того как я удалил пвп-логи с MYSQL скрипт перестал считать ПК для старых игроков.Если сделать нового чара тогда НПЦ работает стабильно, а для старого не дает ПК рейтинг и не убовляет.@reloadscript не решил проблему.Помогите решить проблему.//===== eAthena Script =======================================// PvP Rating System//===== Автор ================================================// Empty//===== Текущая версия =======================================// 3.1//===== Совместимость ========================================// SQL eAthena version//===== Описание =============================================// Система PvP рейтинга.//===== Изменения ============================================// v1.0b - Первый релиз.// Счёт очков ведётся по фиксированным числам. [Empty]// v1.0 - Исправлен баг с калькуляцией очков [Empty]// v1.1 - В табилице не указываются чары с 0 PK очков [Empty]// v1.1b - Исправлен баг с отниманием очков у убитого.// Теперь очков не может быть меньше 0 [Empty]// v1.2 - Исправлен баг с начислением "левых" поинтов [Empty]// v1.3 - Изменены переменные.// Все функции расставлены по порядку. [Empty]// v1.4 - Отключены счётчики в замках.// Добавлены аннонсы убийце и убитому. [Empty]// v1.5 - Добавлены формулы подсчёта рейтинга. [Empty]// v1.5b - Добавлено большее количество локаций-исключений.// (спасибо Rumpl!) [Empty]// v1.6 - При смерти если количиство отнимаемых очков больше,// чем количиство имеющихся,// значиние приравнивается к 0.// (за идею спасиб I'm n00b XD) [Empty]// v1.7 - За убийство самого себя не снимают и не прибавляют// поинтов (За идею спасиб I'm n00b XD) [Empty]// v1.7b - Исправлены ошибки с перенаправлением. [Empty]// v2.0b - Заменена система исключений. Теперь проверка// Идёт на убийство на PvP арене.// В иных зонах не работает. [Empty]// v2.1 - Изменена структура рейтинга. Теперь работает через// OnPCKillEvent. Оптимизирован код. Доска рейтинга// Теперь расположена отдельно. [Empty]// v2.1a - Добавлена проверка на ГМ левел. За идею спасибо// VoidLess. [Empty]// v2.2b - Имя локаций теперь задаёться переменной @pvpmap$// Стандартом выставлены 5 локаций-городов. [Empty]// v2.3 - Для ревизий 12ххх+ добавлен лейбл OnPCKillEvent.// Поправлен маленький недочёт.// Добавлен выбор типа сервера (PvP, Normal) [Empty]// v3.0b - В очередной раз переделана структура.// Весь рейтинг вынесен в отдельную таблицу. [Empty]// v3.0 - Поправлены все недочёты. Скрипт стабилен.// Добавлена переменная на вкл\выкл проверки на ГМов.// Немного изменена ф-ция проигравших. [Empty]// v3.1 - Исправлен баг с "двойным начислением"...// аннонсы получают только убитый и жертва. [Empty]// v3.1.1 Небольшие изменения. [nomn]//============================================================- script OnPCKillEvent -1,{OnPCKillEvent: function Rating_Winner; function Rating_Loser; set @disable_gms, 1; // Проверка на Гм уровень. 1 - вкл. 0 - выкл. set @servertype, 1; // 1 - Normal Server; 2 - PvP Server. set $@db_name$, "sqluser00659c"; // Название базы данных, в которых расположена таблица рейтинга. setarray @eventmaps$[0], "pvp_n_1-5", "pvp_n_2-5", "prtg_cas01", "guild_vs1", "guild_vs2", "guild_vs3"; if ( getcharid(0) == killerrid ) end; if ( getmapxy( @mapname$, @mapx, @mapy, 0, strcharinfo(0) ) != 0 ) end; switch (@servertype) { case 1: for ( set @i, 0; @i <= getstrlen( @eventmaps$ ); set @i, @i+1 ) { if ( @mapname$ == @eventmaps$[@i] ) { set @eventgo, 1; break; } } break; case 2: set @eventgo, 1; for ( set @i, 0; @i <= getstrlen( @eventmaps$ ); set @i, @i+1 ) { if ( @mapname$ == @eventmaps$[@i] ) { set @eventgo, 0; break; } } break; } if ( !@eventgo ) end; if ( @disable_gms && getgmlevel() >= 30 ) end; set $@PvP_Point, 80; set PvP_Kills,PvP_Kills+1; set $@KillerName$, strcharinfo(0); set $@KilledName$, rid2name( killedrid ); set $@Kill_base, BaseLevel; set @killer_sex, Sex; if ( @killer_sex ) set $@kill_msg$, ""; else set $@kill_msg$, "Была убита"; set @tmp_attach, killedrid; attachrid( @tmp_attach ); set PvP_Death, PvP_Death+1; set $@Dead_base, BaseLevel; set @dead_sex, Sex; if ( @dead_sex ) set $@dead_msg$, "убил"; else set $@dead_msg$, "убила"; Rating_Loser; set @tmp_attach, killerrid; attachrid( @tmp_attach ); Rating_Winner; // Больше не нужен... // announce "["+$@KillerName$+"] "+$@kill_msg$+" ["+$@KilledName$+"]. Рейтинг [ + "+$@CountWinner+" / - "+$@CountLoser+" ]",bc_map|bc_blue; 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$+".pvplog SET pvprat=pvprat+"+@CountWinner+" WHERE name='"+$@KillerName$+"'"; } else { query_sql "INSERT INTO "+$@db_name$+".pvplog (`name`,`pvprat`) VALUES ('"+$@KillerName$+"',"+@CountWinner+")"; } announce $@kill_msg$+" [ "+$@KilledName$+" ]. Рейтинг +"+@CountWinner,bc_self|bc_blue; return; } function Rating_Loser { if ( !PvP_Kills ) return; set @PvP_LosPoints, 0; if ( PvP_Kills - PvP_Death >= 0 ) { if ( $@Kill_base < $@Dead_base ) set @CountLoser, ( $@PvP_Point + ( $@Dead_base - $@Kill_base ) ) / 5; else set @CountLoser, ( $@PvP_Point - ( $@Kill_base - $@Dead_base ) ) / 5; cleararray @pvp_loser[0],0,1; query_sql "SELECT pvprat FROM "+$@db_name$+".pvplog WHERE name='"+$@KilledName$+"'", @pvp_loser; if ( $@CountLoser < @pvp_loser[0] ) set @PvP_LosPoints, @pvp_loser[0] - @CountLoser; } query_sql "UPDATE "+$@db_name$+".pvplog SET pvprat="+@PvP_LosPoints+" WHERE name='"+$@KilledName$+"'"; announce "Вас "+$@dead_msg$+" [ "+$@KillerName$+" ]. Рейтинг -"+@CountLoser,bc_self|bc_blue; return; }} Изменено 6 февраля, 2012 пользователем Gans Ссылка на комментарий Поделиться на другие сайты Поделиться
Kubix! Опубликовано 6 февраля, 2012 Жалоба Поделиться Опубликовано 6 февраля, 2012 попробуй поменять переменные киллов, смертей и реснуть скрипты Ссылка на комментарий Поделиться на другие сайты Поделиться
Mephisto Опубликовано 6 февраля, 2012 Жалоба Поделиться Опубликовано 6 февраля, 2012 Удалить нафиг этот кривой, старый Пвп Рейтинг и взять ПВП Рейтинг Санасола... Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения