[Мануал] Создание собственных тригеров - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Другие игры / Other games > Rising Force Online > Документация

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

Ответ
Опции темы
Непрочитано 26.12.2009, 15:33   #1
Аватар для MMd
Пользователь

Автор темы (Топик Стартер) [Мануал] Создание собственных тригеров

Любой тригер фактически пишется по шаблону. Шаблон с необходимыми комментариями показан ниже:
Код:
USE [ ]	-- Название используемой базы
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [ ]		-- Название тригера
   ON  [dbo].[ ]		-- Название таблицы, к которой крепится тригер
   FOR UPDATE
AS
SET NOCOUNT ON;

    IF UPDATE ( )		-- Название поля, при обновлении которого выполняется тригер
BEGIN
			-- Тело тригера
			-- Здесь пишутся действия, которые должны происходить
			-- при выполнении тригера
END

END
Ниже приведён пример тригера, который ограничивает кач персов 65м уровнем после того, как они выполнили квест на разблокировку кача на 56м уровне.
Код:
USE [RF_WORLD_NOVUS]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [MaxLv]		
   ON  [dbo].[tbl_general]
   FOR UPDATE
AS
SET NOCOUNT ON;

    IF UPDATE (MaxLevel)	-- При обновлении поля MaxLevel в таблице tbl_general
BEGIN
	declare @serial int		-- Обьявляем переменную @serial типа int
	declare @MaxLv int		-- Обьявляем переменную @MaxLv типа int
	set @serial = (select serial from inserted)	-- Присваиваем переменной серийник персонажа у которого обновляется параметр MaxLevel
	set @MaxLv = (select MaxLevel from tbl_general where serial = @serial)	-- Присваиваем переменной параметр MaxLevel нужного нам перса
	if @MaxLv = 66			-- Если параметр @MaxLv равен 66му уровню, выполняется следующее действие
	BEGIN
		update tbl_general		-- Указываем, что вносим изменения в таблицу tbl_general
		set MaxLevel = 65		-- Присваиваем значение 65 параметру MaxLevel
		where serial = @serial	-- В строке, у которой параметр serial равен серийнику персонажа
	END						-- у которого обновляется параметр MaxLevel
END
Мануал написал мной(MMd).
MMd вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


© 2007–2019 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 03:39. Часовой пояс GMT +3.

Вверх