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

Куплю скрипт


Break

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

Необходимо написать глобальный эвент. Суть заключается в том что, нужно в течении нескольких дней/недель сдавать определенный лут. Помимо этого НПЦ сообщает общую и личную статистику как в пвп-рейтинге. По окончанию тройке лидеров выдаются призы. Сам написать полностью не смог, но исходник есть, поэтому можете воспользоваться им или написать сами скрипт с нуля как хотите (по желанию)

Предложения в лс или 619-833-663

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

Необходимо написать глобальный эвент. Суть заключается в том что, нужно в течении нескольких дней/недель сдавать определенный лут. Помимо этого НПЦ сообщает общую и личную статистику как в пвп-рейтинге. По окончанию тройке лидеров выдаются призы. Сам написать полностью не смог, но исходник есть, поэтому можете воспользоваться им или написать сами скрипт с нуля как хотите (по желанию)

Предложения в лс или 619-833-663

Там делать нечего... Бери пример с PVP рейтинга для SQL сервера.

по такому принципу:

map,x,y,face	script	name	sprite,{
if(.enable)
{
query_sql("select points from event where char_id = "+ getcharid(0), .@points );
mes "У вас "+.@points+" очков";
switch(select(сдать лут,общая статистика))
{
case 1:
<...проверки и удаление лута...>
<...заносим в базу...>
if(query_sql("select points from event where char_id = "+getcharid(0), .@points))
query_sql "update event set points = points + 1 where char_id = "+getcharid(0);
else
query_sql("insert into event ( char_id, name, points ) values ( "+getcharid(0) +", '"+strcharinfo(0) +"', 1)");
close;
break;
default:
query_sql("select name, points from event order by points desc limit 10", .@name$, .@points);
for(set .@i,0; .@i < getarraysize(.@name$); set .@i,.@i +1)
mes (.@i+1)+". "+.@name$[.@i]+" - "+.@points;
close;
break;
} else {
mes "эвент окончен";
close;

}
end;

<...дата окончания события...>
OnDay<month><day>:
set .enable,0;
end;

<...при старте событие запущено...>
OnInit:
set .enable,1;
end;

}

Ну и SQL таблица:

CREATE TABLE IF NOT EXISTS `event` (
`char_id` int(11) unsigned NOT NULL,
`name` varchar(30) NOT NULL,
`points` smallint(6) unsigned NOT NULL
);

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

"Это слишком сложно для меня, лучше я закажу у когонть, а потом не буду платить"

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

Возникла одна проблема (при сдаче лута вторым персонажем, в статистике отображает одинаковое кол-во сданного лута с первым,хотя в самой базе значения разные) это видимо где то я накосячил, найти ошибку не могу... Лилит выручай :rolleyes:

prontera,147,177,5	script	Глобальный эвент	709,{

if(.enable==0){mes "Для тебя у меня сейчас нет задания!";close;}

query_sql "select points from event where char_id = "+ getcharid(0), .@points;
mes "Вы уже сдали всего "+.@points+" лута";
switch(select("Сдать лут","Статистика"))
{
case 1:
// предметы 1097,7005,7449,662
set .item,7449;
set points,countitem(.item);
if(points<1){mes "У тебя нет необходимого лута!";close;}
delitem .item,points;
if(query_sql("select points from event where char_id = "+getcharid(0), .@points))
query_sql "update event set points = points+"+points+" where char_id = "+getcharid(0);
else
query_sql("insert into event ( char_id, name, points ) values ( "+getcharid(0) +", '"+strcharinfo(0) +"',"+points+")");
close;
break;
default:
query_sql "select name, points from event order by points desc limit 10", .@name$, .@points;
for(set .@i,0; .@i < getarraysize(.@name$); set .@i,.@i +1)
mes (.@i+1)+". "+.@name$[.@i]+" - "+.@points;
close;
break;
}

// OnDay<month><day>:
OnDay0908:
set .enable,0;
end;

OnInit:
set .enable,1;
end;
}

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

Кстати зачем делать sql-запрос при каждом убийстве в ваших рейтингах? Можно же в переменных хранить.

Многие просто не знают, что переменные тоже сейвятся в бд и их оттуда можно достать.

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

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