L2-scripts Форум

L2-scripts Форум (http://l2-scripts.ru/forum/index.php)
-   Archive Lindvior, Ertheia, Odyssey, Undergeround, Helios, Grand Crusade (http://l2-scripts.ru/forum/forumdisplay.php?f=103)
-   -   Для выдачи не выданных героев. (http://l2-scripts.ru/forum/showthread.php?t=2717)

Core 03.03.2013 22:45

Для выдачи не выданных героев.
 
Эта тема предназначена для тех, кто желает выдать не выданных героев за прошедший месяц.

Для этой процедуры обновление самой сборки можно не дожидаться, а сделать прямо сейчас.

!!!Внимание!!! Статистика олимпиады с 1го по текущее число (когда вы поставите этот запрос), ОБНУЛИТСЯ!

1. Выключаем сервер.
2. Переименовываем таблицу olympiad_nobles в olympiad_nobles1.
3. Восстанавливаем бекап таких таблиц: heroes, olympiad_history, olympiad_nobles, за 28.02.2013 или ранее.
4. Выполняем этот запрос
!!!ВНИМАНИЕ!!! ЗАПРОС ВЫПОЛНЯЕМ ТОЛЬКО ОДИН РАЗ!!!
PHP код:

DELETE FROM olympiad_history WHERE old=1;
UPDATE olympiad_history SET old=1;

UPDATE heroes SET played 0active 0;

REPLACE INTO heroes (`char_id`, `count`, `played`, `active`, `message`) SELECT olympiad_nobles.char_idheroes.count 110'' FROM olympiad_nobles LEFT JOIN character_subclasses ON olympiad_nobles.char_id=character_subclasses.char_obj_id AND character_subclasses.type=0 LEFT JOIN heroes ON olympiad_nobles.char_id=heroes.char_id AND character_subclasses.type=0 WHERE heroes.char_id AND character_subclasses.class_id 139 AND `competitions_done` >= 15 AND `competitions_win` > 0 ORDER BY `olympiad_pointsDESC, `competitions_winDESC, `competitions_doneDESC LIMIT 1;
REPLACE INTO heroes (`char_id`, `count`, `played`, `active`, `message`) SELECT olympiad_nobles.char_idheroes.count 110'' FROM olympiad_nobles LEFT JOIN character_subclasses ON olympiad_nobles.char_id=character_subclasses.char_obj_id AND character_subclasses.type=0 LEFT JOIN heroes ON olympiad_nobles.char_id=heroes.char_id AND character_subclasses.type=0 WHERE heroes.char_id AND character_subclasses.class_id 140 AND `competitions_done` >= 15 AND `competitions_win` > 0 ORDER BY `olympiad_pointsDESC, `competitions_winDESC, `competitions_doneDESC LIMIT 1;
REPLACE INTO heroes (`char_id`, `count`, `played`, `active`, `message`) SELECT olympiad_nobles.char_idheroes.count 110'' FROM olympiad_nobles LEFT JOIN character_subclasses ON olympiad_nobles.char_id=character_subclasses.char_obj_id AND character_subclasses.type=0 LEFT JOIN heroes ON olympiad_nobles.char_id=heroes.char_id AND character_subclasses.type=0 WHERE heroes.char_id AND character_subclasses.class_id 141 AND `competitions_done` >= 15 AND `competitions_win` > 0 ORDER BY `olympiad_pointsDESC, `competitions_winDESC, `competitions_doneDESC LIMIT 1;
REPLACE INTO heroes (`char_id`, `count`, `played`, `active`, `message`) SELECT olympiad_nobles.char_idheroes.count 110'' FROM olympiad_nobles LEFT JOIN character_subclasses ON olympiad_nobles.char_id=character_subclasses.char_obj_id AND character_subclasses.type=0 LEFT JOIN heroes ON olympiad_nobles.char_id=heroes.char_id AND character_subclasses.type=0 WHERE heroes.char_id AND character_subclasses.class_id 142 AND `competitions_done` >= 15 AND `competitions_win` > 0 ORDER BY `olympiad_pointsDESC, `competitions_winDESC, `competitions_doneDESC LIMIT 1;
REPLACE INTO heroes (`char_id`, `count`, `played`, `active`, `message`) SELECT olympiad_nobles.char_idheroes.count 110'' FROM olympiad_nobles LEFT JOIN character_subclasses ON olympiad_nobles.char_id=character_subclasses.char_obj_id AND character_subclasses.type=0 LEFT JOIN heroes ON olympiad_nobles.char_id=heroes.char_id AND character_subclasses.type=0 WHERE heroes.char_id AND character_subclasses.class_id 143 AND `competitions_done` >= 15 AND `competitions_win` > 0 ORDER BY `olympiad_pointsDESC, `competitions_winDESC, `competitions_doneDESC LIMIT 1;
REPLACE INTO heroes (`char_id`, `count`, `played`, `active`, `message`) SELECT olympiad_nobles.char_idheroes.count 110'' FROM olympiad_nobles LEFT JOIN character_subclasses ON olympiad_nobles.char_id=character_subclasses.char_obj_id AND character_subclasses.type=0 LEFT JOIN heroes ON olympiad_nobles.char_id=heroes.char_id AND character_subclasses.type=0 WHERE heroes.char_id AND character_subclasses.class_id 144 AND `competitions_done` >= 15 AND `competitions_win` > 0 ORDER BY `olympiad_pointsDESC, `competitions_winDESC, `competitions_doneDESC LIMIT 1;
REPLACE INTO heroes (`char_id`, `count`, `played`, `active`, `message`) SELECT olympiad_nobles.char_idheroes.count 110'' FROM olympiad_nobles LEFT JOIN character_subclasses ON olympiad_nobles.char_id=character_subclasses.char_obj_id AND character_subclasses.type=0 LEFT JOIN heroes ON olympiad_nobles.char_id=heroes.char_id AND character_subclasses.type=0 WHERE heroes.char_id AND character_subclasses.class_id 145 AND `competitions_done` >= 15 AND `competitions_win` > 0 ORDER BY `olympiad_pointsDESC, `competitions_winDESC, `competitions_doneDESC LIMIT 1;
REPLACE INTO heroes (`char_id`, `count`, `played`, `active`, `message`) SELECT olympiad_nobles.char_idheroes.count 110'' FROM olympiad_nobles LEFT JOIN character_subclasses ON olympiad_nobles.char_id=character_subclasses.char_obj_id AND character_subclasses.type=0 LEFT JOIN heroes ON olympiad_nobles.char_id=heroes.char_id AND character_subclasses.type=0 WHERE heroes.char_id AND character_subclasses.class_id 146 AND `competitions_done` >= 15 AND `competitions_win` > 0 ORDER BY `olympiad_pointsDESC, `competitions_winDESC, `competitions_doneDESC LIMIT 1;

REPLACE INTO heroes (`char_id`, `count`, `played`, `active`, `message`) SELECT olympiad_nobles.char_id110'' FROM olympiad_nobles LEFT JOIN character_subclasses ON olympiad_nobles.char_id=character_subclasses.char_obj_id AND character_subclasses.type=0 WHERE olympiad_nobles.char_id NOT IN (SELECT char_id FROM heroes) AND character_subclasses.class_id 139 AND `competitions_done` >= 15 AND `competitions_win` > 0 ORDER BY `olympiad_pointsDESC, `competitions_winDESC, `competitions_doneDESC LIMIT 1;
REPLACE INTO heroes (`char_id`, `count`, `played`, `active`, `message`) SELECT olympiad_nobles.char_id110'' FROM olympiad_nobles LEFT JOIN character_subclasses ON olympiad_nobles.char_id=character_subclasses.char_obj_id AND character_subclasses.type=0 WHERE olympiad_nobles.char_id NOT IN (SELECT char_id FROM heroes) AND character_subclasses.class_id 140 AND `competitions_done` >= 15 AND `competitions_win` > 0 ORDER BY `olympiad_pointsDESC, `competitions_winDESC, `competitions_doneDESC LIMIT 1;
REPLACE INTO heroes (`char_id`, `count`, `played`, `active`, `message`) SELECT olympiad_nobles.char_id110'' FROM olympiad_nobles LEFT JOIN character_subclasses ON olympiad_nobles.char_id=character_subclasses.char_obj_id AND character_subclasses.type=0 WHERE olympiad_nobles.char_id NOT IN (SELECT char_id FROM heroes) AND character_subclasses.class_id 141 AND `competitions_done` >= 15 AND `competitions_win` > 0 ORDER BY `olympiad_pointsDESC, `competitions_winDESC, `competitions_doneDESC LIMIT 1;
REPLACE INTO heroes (`char_id`, `count`, `played`, `active`, `message`) SELECT olympiad_nobles.char_id110'' FROM olympiad_nobles LEFT JOIN character_subclasses ON olympiad_nobles.char_id=character_subclasses.char_obj_id AND character_subclasses.type=0 WHERE olympiad_nobles.char_id NOT IN (SELECT char_id FROM heroes) AND character_subclasses.class_id 142 AND `competitions_done` >= 15 AND `competitions_win` > 0 ORDER BY `olympiad_pointsDESC, `competitions_winDESC, `competitions_doneDESC LIMIT 1;
REPLACE INTO heroes (`char_id`, `count`, `played`, `active`, `message`) SELECT olympiad_nobles.char_id110'' FROM olympiad_nobles LEFT JOIN character_subclasses ON olympiad_nobles.char_id=character_subclasses.char_obj_id AND character_subclasses.type=0 WHERE olympiad_nobles.char_id NOT IN (SELECT char_id FROM heroes) AND character_subclasses.class_id 143 AND `competitions_done` >= 15 AND `competitions_win` > 0 ORDER BY `olympiad_pointsDESC, `competitions_winDESC, `competitions_doneDESC LIMIT 1;
REPLACE INTO heroes (`char_id`, `count`, `played`, `active`, `message`) SELECT olympiad_nobles.char_id110'' FROM olympiad_nobles LEFT JOIN character_subclasses ON olympiad_nobles.char_id=character_subclasses.char_obj_id AND character_subclasses.type=0 WHERE olympiad_nobles.char_id NOT IN (SELECT char_id FROM heroes) AND character_subclasses.class_id 144 AND `competitions_done` >= 15 AND `competitions_win` > 0 ORDER BY `olympiad_pointsDESC, `competitions_winDESC, `competitions_doneDESC LIMIT 1;
REPLACE INTO heroes (`char_id`, `count`, `played`, `active`, `message`) SELECT olympiad_nobles.char_id110'' FROM olympiad_nobles LEFT JOIN character_subclasses ON olympiad_nobles.char_id=character_subclasses.char_obj_id AND character_subclasses.type=0 WHERE olympiad_nobles.char_id NOT IN (SELECT char_id FROM heroes) AND character_subclasses.class_id 145 AND `competitions_done` >= 15 AND `competitions_win` > 0 ORDER BY `olympiad_pointsDESC, `competitions_winDESC, `competitions_doneDESC LIMIT 1;
REPLACE INTO heroes (`char_id`, `count`, `played`, `active`, `message`) SELECT olympiad_nobles.char_id110'' FROM olympiad_nobles LEFT JOIN character_subclasses ON olympiad_nobles.char_id=character_subclasses.char_obj_id AND character_subclasses.type=0 WHERE olympiad_nobles.char_id NOT IN (SELECT char_id FROM heroes) AND character_subclasses.class_id 146 AND `competitions_done` >= 15 AND `competitions_win` > 0 ORDER BY `olympiad_pointsDESC, `competitions_winDESC, `competitions_doneDESC LIMIT 1;

UPDATE `olympiad_noblesSET `olympiad_points_past` = `olympiad_points`, `olympiad_points_past_static` = `olympiad_pointsWHERE `competitions_done` >= 15;
UPDATE `olympiad_noblesSET `olympiad_points` = 50, `competitions_done` = 0, `competitions_win` = 0, `competitions_loose` = 0game_classes_count=0game_noclasses_count=0;

UPDATE olympiad_noblesolympiad_nobles1 SET olympiad_nobles.olympiad_points=olympiad_nobles1.olympiad_points+olympiad_nobles.olympiad_pointsolympiad_nobles.olympiad_points_past=olympiad_nobles1.olympiad_points_past+olympiad_nobles.olympiad_points_past,
 
olympiad_nobles.olympiad_points_past_static=olympiad_nobles1.olympiad_points_past_static+olympiad_nobles.olympiad_points_past_staticolympiad_nobles.competitions_done=olympiad_nobles1.competitions_done+olympiad_nobles.competitions_done,
 
olympiad_nobles.competitions_win=olympiad_nobles1.competitions_win+olympiad_nobles.competitions_winolympiad_nobles.competitions_loose=olympiad_nobles1.competitions_loose+olympiad_nobles.competitions_loose
 
olympiad_nobles.game_classes_count=olympiad_nobles1.game_classes_count+olympiad_nobles.game_classes_countolympiad_nobles.game_noclasses_count=olympiad_nobles1.game_noclasses_count+olympiad_nobles.game_noclasses_count WHERE olympiad_nobles.char_id=olympiad_nobles1.char_id;

REPLACE INTO olympiad_nobles (`char_id`, `class_id`, `olympiad_points`, `olympiad_points_past`, `olympiad_points_past_static`, `competitions_done`, `competitions_win`, `competitions_loose`, `game_classes_count`, `game_noclasses_count`) 
SELECT olympiad_nobles1.char_idolympiad_nobles1.class_idolympiad_nobles1.olympiad_pointsolympiad_nobles1.olympiad_points_pastolympiad_nobles1.olympiad_points_past_staticolympiad_nobles1.competitions_doneolympiad_nobles1.competitions_winolympiad_nobles1.competitions_looseolympiad_nobles1.game_classes_countolympiad_nobles1.game_noclasses_count FROM olympiad_nobles1 WHERE olympiad_nobles1.char_id NOT IN (SELECT char_id FROM olympiad_nobles);
DROP TABLE olympiad_nobles1

или же скачайте в SQL: http://yadi.sk/d/Pzz7OW2Z311Xp

5. Запускаем сервер.
6. Готово.

unteam 03.03.2013 22:48

а сервер вариаблес что писать?

Core 03.03.2013 22:49

Ничего. Период олимпиады нормально 1го числа у вас самостоятельно изменился. Не выдалось только геройство.

Core 03.03.2013 22:50

P.S. Не забудьте игроков послать к статуе за геройством. =)

l2gold 04.03.2013 00:58

ВРОДЕ ВЫДАЛО !! СПАСИБО !Ё!!

l2gold 04.03.2013 01:00

только жалуются что нублесс у многих попроподал.

unteam 04.03.2013 03:39

нубелс попропадал..

unteam 04.03.2013 05:46

саб скилы еще перестали работать вроде как у кого-то

ankam26 04.03.2013 06:52

ждем ответа и подтверждения Алексея по вышеперечисленным нюансам. пока не стали рисковать с этими запросами. возможно будет поправка

l2gold 04.03.2013 12:10

теперь игроки нублесом долбят !

l2gold 04.03.2013 13:38

Цитата:

Сообщение от unteam (Сообщение 7612)
саб скилы еще перестали работать вроде как у кого-то

можно сменить саб и взять обратно нублес через альт+б
но у некоторых вроде трабла - саб не берется

ankam26 04.03.2013 13:41

странные - ненужные манипуляции. не правильнее ли дождаться нормального скрипта-запроса, с учетом всех выявившихся глюков?
а что еще вылезет?

l2gold 04.03.2013 13:46

пока дождемся - все игроки посваливают.

даже окей, запустили на тест сервере - все выдало.
и опять же как на тесте выцепить баги с нублом ? ну дало хиро - отлично ! а дальше что ? проверять все 1000 возможностей л2 нет ли бага ?


я просто к тому что на тесте все не оттестишь.
ну а боевой перед каждым апдйтом - 10000% полный бекам и базы и сборки


в принципе самое сложное это найт крит баг, или кривой скил разгонящий овер статы после апдйта, но уже привык ... !

ankam26 04.03.2013 13:53

баги с нублом выявлять задача Алексея. Он этот запрос выдал. пусть и исправляет. хотя это уже 3й его вариант решения проблемы и третий раз мимо цели ((

l2gold 04.03.2013 14:10

мое мнение, такие вещи, апдейты. лучше всего делать так

прогеры в сети
несколько овнеров накатывают на боем
сливаем крит баги
прогеры быстро фиксят

ВСЕ ДОВОЛЬНЫ !!!! (некто не кому не ебет мозг, не нервничает и не ждет апдейты сутками)

unteam 04.03.2013 14:25

не обновления, ни нублов, ни саб скилов збс

ну понятно всё, откуда будут нубелсы если бэкап был, новые кто зарегались после не попали в таблицу.

Core 04.03.2013 20:06

Забыли уточнить, что в Челябинске из-за запроса упал метеорит. Я же предупреждал, что данные по олимпиаде обнулятся, потому что вы данные восстановили с бекапа. Естественно, все, кто взял нубл после бекапа, обнулились.

Core 04.03.2013 20:08

А саб скиллы, ну вообще никак не связанны с этими таблицами и геройством.

Core 04.03.2013 20:23

Кто хочет восстановить нублесов, которые были выданы до восстановления бекапа, должные сделать такую манипуляцию:

1. Отключаем сервер.
2. Восстановить таблицу olympiad_nobles, которая была до восстановления бекапа таблицу.
3. Переименовать ее в olympiad_nobles1.
4. Залить ее в БД.
5. Выполнить запрос:
PHP код:

REPLACE INTO olympiad_nobles (`char_id`, `class_id`, `olympiad_points`, `olympiad_points_past`, `olympiad_points_past_static`, `competitions_done`, `competitions_win`, `competitions_loose`, `game_classes_count`, `game_noclasses_count`) 
SELECT olympiad_nobles1.char_idolympiad_nobles1.class_idolympiad_nobles1.olympiad_pointsolympiad_nobles1.olympiad_points_pastolympiad_nobles1.olympiad_points_past_staticolympiad_nobles1.competitions_doneolympiad_nobles1.competitions_winolympiad_nobles1.competitions_looseolympiad_nobles1.game_classes_countolympiad_nobles1.game_noclasses_count FROM olympiad_nobles1 WHERE olympiad_nobles1.char_id NOT IN (SELECT char_id FROM olympiad_nobles);
DROP TABLE olympiad_nobles1

или скачать SQL: http://yadi.sk/d/uN6i1TOG32YfU
6. Запускаем сервер.

l2gold 04.03.2013 20:49

Вопрос в другом - почему игроки не могут теперь взять ноб, ? (т.е. те кто был им раньше)

или каким SQL запросом выдавать хиро ? (пока зборка кривая проще в лк добавить и выдвать через сайт)

Core 04.03.2013 20:59

Лог чистый?

l2gold 04.03.2013 21:09

лог смотрел, лог чистый (т.е. новых ошибок не видел)
(ну только старые ошибки, которые уже посливал на давно на форуме)

Core 04.03.2013 21:25

Они берут нубл через квест? Если нет, попробуйте взять через квест.

ankam26 05.03.2013 02:04

СПАСИБО , теперь все нормуль
Код:

[09:11:58]  INFO Olympiad System: Loaded 536 Noblesses
[09:11:58]  INFO Olympiad System: Competition Period Starts in 3 days, 8 hours and 48 mins.
[09:11:58]  INFO Olympiad System: Event starts/started: Fri Mar 08 18:00:58 GMT+12:00 2013
[09:11:58]  INFO Hero System: Loaded 5 Heroes.
[09:11:58]  INFO Hero System: Loaded 5 all time Heroes.


ankam26 05.03.2013 14:03

Короче не все так просто с этими героями.
Все получилось, все получили геройство, НО!!!
ща предьявы кидают что очки набитые за этот месяц не сохранились - а это примерно 18 часов игры ( 3 дня по 6 часов)
Делал по инструкции по последнему запросу. а очки сейчас по состоянию на 28 число (стартовое типа)
Алексей - нужно восстановить , помогай.
все таблицы есть для этого

l2gold 05.03.2013 16:05

попробовал - вернуло нублесы.

ankam26 05.03.2013 16:41

я ваще то не про нублесы пишу. в коде видно что они есть.
я написал про очки за эти 5 дней. люди реально потратили на олимпы 18 часов, набили очки и вот очков нет. надо их вернуть с бекапа теперь других таблиц))

Core 05.03.2013 17:50

Блин, какие же все внимательные...
Цитата:

!!!Внимание!!! Статистика олимпиады с 1го по текущее число (когда вы поставите этот запрос), ОБНУЛИТСЯ!
Ok. Делаем такую манипуляцию:

1. Вырубаем сервер.
2. Восстанавливаем таблицу olympiad_noblesse ту, которая была до бекапа под именем olympiad_noblesse1.
3. Выполняем запрос:
PHP код:

UPDATE olympiad_noblesolympiad_nobles1 SET olympiad_nobles.olympiad_points=olympiad_nobles1.olympiad_points+olympiad_nobles.olympiad_pointsolympiad_nobles.olympiad_points_past=olympiad_nobles1.olympiad_points_past+olympiad_nobles.olympiad_points_past,
 
olympiad_nobles.olympiad_points_past_static=olympiad_nobles1.olympiad_points_past_static+olympiad_nobles.olympiad_points_past_staticolympiad_nobles.competitions_done=olympiad_nobles1.competitions_done+olympiad_nobles.competitions_done,
 
olympiad_nobles.competitions_win=olympiad_nobles1.competitions_win+olympiad_nobles.competitions_winolympiad_nobles.competitions_loose=olympiad_nobles1.competitions_loose+olympiad_nobles.competitions_loose
 
olympiad_nobles.game_classes_count=olympiad_nobles1.game_classes_count+olympiad_nobles.game_classes_countolympiad_nobles.game_noclasses_count=olympiad_nobles1.game_noclasses_count+olympiad_nobles.game_noclasses_count WHERE olympiad_nobles.char_id=olympiad_nobles1.char_id;
 
DROP TABLE olympiad_nobles1

4. Врубаем сервер.

P.S. Первый топик обновлен для тех, кто еще не выполнял ланную операцию.

l2gold 05.03.2013 18:25

а глобальный апдейт будет не ? как быу же 5тое число

Core 05.03.2013 18:45

Да. Обратитесь к Юре.

Admin 06.03.2013 08:17

Глобальный апдейт чуть задерживается, у Игоря теперь возникли проблемы со шлефом харда, случайно порвался, а в ноутах HP разъемы сата нелепые... вот ищет сейчас в своем городе - весьма редкая хрень.
Я думаю это не затянется, извиняемся.

ankam26 07.03.2013 06:40

Алексей, ну вот скажи мне с какого ты сочинил последние запросы чтобы очки выдались за олимп??
Код:

UPDATE olympiad_nobles, olympiad_nobles1 SET olympiad_nobles.olympiad_points=olympiad_nobles1.olympiad_points+olympiad_nobles.olympiad_points, olympiad_nobles.olympiad_points_past=olympiad_nobles1.olympiad_points_past+olympiad_nobles.olympiad_points_past,
 olympiad_nobles.olympiad_points_past_static=olympiad_nobles1.olympiad_points_past_static+olympiad_nobles.olympiad_points_past_static, olympiad_nobles.competitions_done=olympiad_nobles1.competitions_done+olympiad_nobles.competitions_done,
 olympiad_nobles.competitions_win=olympiad_nobles1.competitions_win+olympiad_nobles.competitions_win, olympiad_nobles.competitions_loose=olympiad_nobles1.competitions_loose+olympiad_nobles.competitions_loose, 
 olympiad_nobles.game_classes_count=olympiad_nobles1.game_classes_count+olympiad_nobles.game_classes_count, olympiad_nobles.game_noclasses_count=olympiad_nobles1.game_noclasses_count+olympiad_nobles.game_noclasses_count WHERE olympiad_nobles.char_id=olympiad_nobles1.char_id;
 DROP TABLE olympiad_nobles1;

Ну ептыть - теперь выдались всем игрокам сервера по 156 очков , даже тем кто на олимпе то никогда не был!!!!!!!!!!!!!!!
ну что за приколы ваще. ну почему прежде что то написать нельзя подумать к чему это приведет??!!!
ИСПРАВЛЯЙЙЙ!!!!!!!!!!!!!!!!!!!

Admin 08.03.2013 02:21

Ожидаем глобального стабильного апдейта от Игоря. Все что ыдает вам Алексей, это его личная инициатива, притензии просьба писать лично ему, а не на форум. ОФициально пработа будет возобновлена с востановлениям работы Игоря и когда онт выдавать обновки будет. Леша - не отвественен за выдачи обновлений.

Admin 08.03.2013 02:34

Игорь с 8го числа на рабочем месте.


Часовой пояс GMT +4, время: 02:13.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot