Показать сообщение отдельно

  #2  
Старый 27.04.2009, 08:35
ReduKToR
Постоянный
Регистрация: 05.01.2009
Сообщений: 684
С нами: 9130007

Репутация: 485


По умолчанию

Проще не выйдет:
Давай ка посмотрим поближе на скрипт.
Код:
--создаем промежуточную таблицу памяти
--для того чтобы подсчитать кому в даный момент сколько поинтов добавить
declare @TRef table (Referrer_Name varchar(10), points int)
insert into @TRef (Referrer_Name, points)     
select r.Referrer_Name, sum(5)     from TABLE_Referrer r
          inner join Character c on c.name=r.Referrer_AccountID and cLevel>=200
--               COLLATE Latin1_general_CI_AI
          inner JOIN MEMB_STAT m ON c.AccountID = m.memb___id and m.ConnectStat=0
--               COLLATE Latin1_general_CI_AI
     where r.Add_count=1
      group by r.Referrer_Name
Эта таблица была сделана для того, что бы если в определенный момент для Одного игрока одновременно 2 реферала
достигнут указанного левела, то начислилось не 0,5 WMZ а 1.
То есть другими словами
group by r.Referrer_Name -- сгрупировать по тому кто привел
sum(5) -- за каждого кто достиг по 5 поинтов
and m.ConnectStat=0 --юзверь не в сети
and cLevel>=200 --юзверь достиг 200 левела

Второй оператор Update просто подставляет поинты в таблицу Character.
Есни это будут не левелАПпоинты мы просто добавим поле типа BonusPoints.

ммм.дальше уже под себя....
 
Ответить с цитированием