Break Опубликовано 7 сентября, 2012 Жалоба Поделиться Опубликовано 7 сентября, 2012 (изменено) Необходимо написать глобальный эвент. Суть заключается в том что, нужно в течении нескольких дней/недель сдавать определенный лут. Помимо этого НПЦ сообщает общую и личную статистику как в пвп-рейтинге. По окончанию тройке лидеров выдаются призы. Сам написать полностью не смог, но исходник есть, поэтому можете воспользоваться им или написать сами скрипт с нуля как хотите (по желанию)Предложения в лс или 619-833-663 Изменено 7 сентября, 2012 пользователем mrboob Ссылка на комментарий Поделиться на другие сайты Поделиться
Лилит Опубликовано 7 сентября, 2012 Жалоба Поделиться Опубликовано 7 сентября, 2012 Необходимо написать глобальный эвент. Суть заключается в том что, нужно в течении нескольких дней/недель сдавать определенный лут. Помимо этого НПЦ сообщает общую и личную статистику как в пвп-рейтинге. По окончанию тройке лидеров выдаются призы. Сам написать полностью не смог, но исходник есть, поэтому можете воспользоваться им или написать сами скрипт с нуля как хотите (по желанию)Предложения в лс или 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); 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
botka4aet Опубликовано 7 сентября, 2012 Жалоба Поделиться Опубликовано 7 сентября, 2012 (изменено) "Это слишком сложно для меня, лучше я закажу у когонть, а потом не буду платить" Изменено 7 сентября, 2012 пользователем botka4aet Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 7 сентября, 2012 Автор Жалоба Поделиться Опубликовано 7 сентября, 2012 (изменено) Возникла одна проблема (при сдаче лута вторым персонажем, в статистике отображает одинаковое кол-во сданного лута с первым,хотя в самой базе значения разные) это видимо где то я накосячил, найти ошибку не могу... Лилит выручай 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;} Изменено 7 сентября, 2012 пользователем mrboob Ссылка на комментарий Поделиться на другие сайты Поделиться
Лилит Опубликовано 7 сентября, 2012 Жалоба Поделиться Опубликовано 7 сентября, 2012 for(set .@i,0; .@i < getarraysize(.@name$); set .@i,.@i +1) mes (.@i+1)+". "+.@name$[.@i]+" - "+.@points[.@i]; close; break;}// OnDay<month><day>: 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Break Опубликовано 7 сентября, 2012 Автор Жалоба Поделиться Опубликовано 7 сентября, 2012 for(set .@i,0; .@i < getarraysize(.@name$); set .@i,.@i +1) mes (.@i+1)+". "+.@name$[.@i]+" - "+.@points[.@i]; close; break;}// OnDay<month><day>: Спасибо, помогло) тему можно закрыть Ссылка на комментарий Поделиться на другие сайты Поделиться
Magnum Опубликовано 8 сентября, 2012 Жалоба Поделиться Опубликовано 8 сентября, 2012 Кстати зачем делать sql-запрос при каждом убийстве в ваших рейтингах? Можно же в переменных хранить. Ссылка на комментарий Поделиться на другие сайты Поделиться
Evil_1494 Опубликовано 8 сентября, 2012 Жалоба Поделиться Опубликовано 8 сентября, 2012 Кстати зачем делать sql-запрос при каждом убийстве в ваших рейтингах? Можно же в переменных хранить.Многие просто не знают, что переменные тоже сейвятся в бд и их оттуда можно достать. Ссылка на комментарий Поделиться на другие сайты Поделиться
botka4aet Опубликовано 8 сентября, 2012 Жалоба Поделиться Опубликовано 8 сентября, 2012 (изменено) Изменено 8 сентября, 2012 пользователем botka4aet Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения