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

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

Есть скрипт!

В игре НПС показывает топ 10! Всего показывает 10 игроков ,не важно сколько у них Рейтинг ПВП! о_О где сменить сортировку в Базе или Скрипте! Нужно что-бы сортировались игроки по количству ПВП рейтинга!

Зарание спасибо!

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

Вот скрипт!

И ещё вопрос можно добавить в личный статус не только смерти а и убийства?


// PVP rating by Ivan Zombie ICQ ~ 47-51-581 ~ //

prontera,0,0,0 script OnPCKillEvent -1,{


OnPCKillEvent:
getmapxy(@mapname$,@mapx,@mapy,0,strcharinfo(0));
if(@mapname$=="pvp_n_5-5" || @mapname$=="pvp_n_2-5" || @mapname$=="pvp_n_3-5" || @mapname$=="guild_vs2"){
query_sql "SELECT `name` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @name$;
if(@name$==strcharinfo(0)){
query_sql "SELECT `point` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @result;
set @karma,@result+1;
query_sql "UPDATE `pk` SET point="+@karma+" WHERE name='"+strcharinfo(0)+"'";
}
else {
query_sql "INSERT INTO `pk` VALUES ('"+strcharinfo(0)+"', '1')";
}

}

}
prontera,143,180,1 script PvP Рейтинг#1::PvP Рейтинг 413,{
mes "[PVP рейтинг]";
mes "Привет, это рэйтинговая система! Заработать очки ты можеш на ^00ff00Арене^000000";
next;
switch(select("Посмотреть свой рейтинг","Топ 10")){
case 1:
mes "[Статус]";
query_sql "SELECT `name` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @name2$;
if(@name2$==strcharinfo(0)){
query_sql "SELECT `point` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @points;
mes "[Вы убили: "+@points+" ]"; close;}
else { mes "[Вы убили: 0 ]"; close;}
case 2:
// Сортируем имена по колличесву пк
set @query$, "SELECT * FROM pk ORDER BY 'point' DESC LIMIT 10";
query_sql @query$, @line$, @points;
mes "[10 лучших PVP Liders]";
for (set @i,0; @i<10; set @i,@i+1)
if (@line$[@i]!="")
mes ""+(@i+1)+". "+@line$[@i]+" ^FF0000Убил:^000000"+@points[@i];
close;
case 3:
close;
}
}

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

Всё решил! Сколько мозги поломал а оказалось всё настолько просто!

в етой строчке set @query$, "SELECT * FROM pk ORDER BY 'point' DESC LIMIT 10";

нужно заменить на set @query$, "SELECT * FROM pk ORDER BY `point` DESC LIMIT 10";

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

// PVP rating by Ivan Zombie  ICQ ~  47-51-581 ~ //

prontera,0,0,0 script OnPCKillEvent -1,{


OnPCKillEvent:
getmapxy(@mapname$,@mapx,@mapy,0,strcharinfo(0));
if(@mapname$=="pvp_n_-5" || @mapname$=="pvp_n_2-5" || @mapname$=="pvp_n_3-5"){
query_sql "SELECT `name` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @name$;
if(@name$==strcharinfo(0)){
query_sql "SELECT `point` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @result;
set @karma,@result+1;
query_sql "UPDATE `pk` SET point="+@karma+" WHERE name='"+strcharinfo(0)+"'";
}
else {
query_sql "INSERT INTO `pk` VALUES ('"+strcharinfo(0)+"', '1')";
}

}

}
prontera,143,180,1 script PvP Рейтинг#1::PvP Рейтинг 413,{
mes "[PVP рейтинг]";
mes "Привет, это рэйтинговая система! Заработать очки ты можеш на ^00ff00Арене^000000";
next;
switch(select("Посмотреть свой рейтинг","Топ 10")){
case 1:
mes "[Статус]";
query_sql "SELECT `name` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @name2$;
if(@name2$==strcharinfo(0)){
query_sql "SELECT `point` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @points;
mes "[Вы убили: "+@points+" ]"; close;}
else { mes "[Вы убили: 0 ]"; close;}
case 2:
set @query$, "SELECT * FROM pk ORDER BY `point` DESC LIMIT 10";
query_sql @query$, @line$, @points;
mes "[10 лучших пвпшников]";
for (set @i,0; @i<10; set @i,@i+1)
if (@line$[@i]!="")
mes ""+(@i+1)+". "+@line$[@i]+" ^FF0000Убил:^000000"+@points[@i];
close;
case 3:
close;
}
}

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

Мне не нужен НПЦ рейтинга, мне нужен SQL файл от этого рейтинга)

--

Извиняюсь, не заметил.

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

Давно не работал со скриптами, проверю когда буду дома.

SQL File:


CREATE TABLE IF NOT EXISTS `pk` (
`name` varchar(30) NOT NULL,
`point` tinyint(3) NOT NULL default '0',
`dies` tinyint(3) NOT NULL default '0',
PRIMARY KEY (`name`)
) ENGINE=MyISAM ;

Script:

// PVP rating by Ivan Zombie  ICQ ~  47-51-581 ~ //
// Added Dies counter by Oxxy(FreakyL0L) //

prontera,0,0,0 script OnPCKillEvent -1,{


OnPCKillEvent:
getmapxy(@mapname$,@mapx,@mapy,0,strcharinfo(0));
if(@mapname$=="pvp_n_-5" || @mapname$=="pvp_n_2-5" || @mapname$=="pvp_n_3-5"){
query_sql "SELECT `name` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @name$;
if(@name$==strcharinfo(0)){
query_sql "SELECT `point` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @result;
set @karma,@result+1;
query_sql "UPDATE `pk` SET point="+@karma+" WHERE name='"+strcharinfo(0)+"'";
}
else {
query_sql "INSERT INTO `pk` VALUES ('"+strcharinfo(0)+"', '1')";
}

}

}
prontera,143,180,1 script PvP Рейтинг#1::PvP Рейтинг 413,{
mes "[PVP рейтинг]";
mes "Привет, это система ПвП Рейтинга!";
next;
switch(select("Личный Рейтинг","Топ 10 Убийц","Выход")){
case 1:
mes "[Статус]";
query_sql "SELECT `name` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @name2$;
if(@name2$==strcharinfo(0)){
query_sql "SELECT `point` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @points;
query_sql "SELECT `dies` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @dies;
mes "[Вы убили: "+@points+" ]";
mes "[Вас убили: "+@dies+" ]; close;}
else { mes "[Вы убили: 0 ]"; close;}
case 2:
set @query$, "SELECT * FROM pk ORDER BY `point` DESC LIMIT 10";
query_sql @query$, @line$, @points;
mes "[Top 10 Убийц]";
for (set @i,0; @i<10; set @i,@i+1)
if (@line$[@i]!="")
mes ""+(@i+1)+". "+@line$[@i]+" ^FF0000Убил:^000000"+@points[@i] / Смертей:"+@dies[@i]";
close;

case 3:
close;
}
}

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

  • 1 месяц спустя...

Давно не работал со скриптами, проверю когда буду дома.SQL File:

CREATE TABLE IF NOT EXISTS `pk` ( `name` varchar(30) NOT NULL, `point` tinyint(3) NOT NULL default '0', `dies` tinyint(3) NOT NULL default '0', PRIMARY KEY (`name`)) ENGINE=MyISAM ;

Script:

// PVP rating by Ivan Zombie  ICQ ~  47-51-581 ~ //// Added Dies counter by Oxxy(FreakyL0L) //prontera,0,0,0  script  OnPCKillEvent   -1,{        OnPCKillEvent:        getmapxy(@mapname$,@mapx,@mapy,0,strcharinfo(0));        if(@mapname$=="pvp_n_-5" || @mapname$=="pvp_n_2-5" || @mapname$=="pvp_n_3-5"){                query_sql "SELECT `name` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @name$;                if(@name$==strcharinfo(0)){                        query_sql "SELECT `point` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @result;                        set @karma,@result+1;                        query_sql "UPDATE `pk` SET point="+@karma+" WHERE name='"+strcharinfo(0)+"'";                                   }                                else {                                query_sql "INSERT INTO `pk` VALUES ('"+strcharinfo(0)+"', '1')";                                }                }}prontera,143,180,1      script  PvP Рейтинг#1::PvP Рейтинг      413,{        mes "[PVP рейтинг]";        mes "Привет, это система ПвП Рейтинга!";        next;        switch(select("Личный Рейтинг","Топ 10 Убийц","Выход")){ case 1:        mes "[Статус]";        query_sql "SELECT `name` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @name2$;                if(@name2$==strcharinfo(0)){                query_sql "SELECT `point` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @points;                query_sql "SELECT `dies` FROM `pk` WHERE `name`='"+strcharinfo(0)+"'", @dies;                mes "[Вы убили: "+@points+"  ]";		mes "[Вас убили: "+@dies+" ]; close;}                        else { mes "[Вы убили: 0  ]"; close;} case 2:        set @query$, "SELECT * FROM pk ORDER BY `point` DESC LIMIT 10";        query_sql @query$, @line$, @points;        mes "[Top 10 Убийц]";        for (set @i,0; @i<10; set @i,@i+1)         if (@line$[@i]!="")             mes ""+(@i+1)+". "+@line$[@i]+"   ^FF0000Убил:^000000"+@points[@i] / Смертей:"+@dies[@i]";        close; case 3:        close;   }}

Почему то не работает... Говорит ошибка в 44 строке

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

mes ""+(@i+1)+". "+@line$[@i]+" ^FF0000Убил:^000000"+@points[@i] / Смертей:"+@dies[@i]";
mes ""+(@i+1)+". "+@line$[@i]+" ^FF0000Убил:^000000"+@points[@i]+" / Смертей:"+@dies[@i];
Ссылка на комментарий
Поделиться на другие сайты

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