[Release]Plus Auto Notice(Sample + Source)

06/12/2013 18:48 Gavur#1
Hey there,

First of all #DirenGezi, #OccupyTurkey

And then

As you can see on the title it just sends a notice to server about alchemy actions :P When a player successfully upgrades his/her item its automatically recording to Log DB. It will be a bit buggy. I'm not going to make a full guide here but i think you guys can handle it with some brain :P

Btw i've used "auto notice's source codes by someone else". If you let me know his name i'll let others know who he is :P Log in with that old way before sending notice


To _AddLogItem procedure in log DB(be sure that you've changed "SRO_VT_SHARD" to your own shard db in procedure + Be sure that you've created a table in log db with PlusNotice name and 3 columns(sent(int DEFAULT VALUE MUST BE 0), message(varchar(150-200), Date(datetime, defaultvalue GetDate() ) )


Code:
ALTER  procedure [dbo].[_AddLogItem]  
  @CharID  int,   
  @ItemRefID int,   
  @ItemSerial bigint,   
  @dwData int,   
  @TargetStorage tinyint,   
  @Operation tinyint,   
  @Slot_From tinyint,   
  @Slot_To tinyint,   
  @EventPos varchar(64),   
  @strDesc varchar(128), 
  @Gold        bigint        -- #ifdef EXTEND_GOLD_TYPE »ðÀÔ    
  as   
   declare @len_pos int   
   declare @len_desc int  
   declare @strDesc_separado varchar(128)  
   declare  @len_desc1 int 
   set @len_pos = len(@EventPos)   
   set @len_desc = len(@strDesc)   
   if (@len_pos > 0 and @len_desc > 0)   
   begin   
            insert _LogEventItem (EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, EventPos, strDesc, Serial64, Gold)    -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
            values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @EventPos, @strDesc, @ItemSerial, @Gold)        -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
   end   
   else if (@len_pos > 0 and @len_desc = 0)   
   begin   
            insert _LogEventItem (EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, EventPos, Serial64, Gold)            -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
            values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @EventPos, @ItemSerial, @Gold)                -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼  
   end   
   else if (@len_pos = 0 and @len_desc > 0)   
   begin   
            insert _LogEventItem (EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, strDesc, Serial64, Gold)            -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
            values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @strDesc, @ItemSerial, @Gold)                    -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼  
   end   
   else if (@len_pos = 0 and @len_desc = 0)   
   begin   
            insert _LogEventItem (EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, Serial64, Gold)                        -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
            values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @ItemSerial, @Gold)                            -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
   end   
   -- À¯·á ¾ÆÀÌÅÛ ±¸ÀÔÀ̸é!   
   -- #define LOG_ITEMEVENT_BUY_CASHITEM  (BYTE)35   
   if (@Operation = 35)   
   begin   
    insert _LogCashItem (RefItemID, CharID, Cnt, EventTime, Serial64)   
    values(@ItemRefID, @CharID, @dwData, GetDate(), @ItemSerial)   
   end 
   if (@Operation = 90 OR @Operation = 160)   
   begin   
   set @len_desc1 = CHARINDEX (']',@strDesc)  
  if(@len_desc1 = 9)   
     begin 
     set @strDesc = SUBSTRING(@strDesc,0,9) 
     set @strDesc_separado = SUBSTRING(@strDesc, 8, 1) 
    end 
   else if(@len_desc1 = 10) 
        begin 
        set @strDesc = SUBSTRING(@strDesc,0,10) 
        set @strDesc_separado = SUBSTRING(@strDesc, 8, 2) 
        end 
        if(@strDesc_separado >= 8) 
        begin 
        --set @strDesc_separado = @len_desc1 
      insert _LogItemPlus(CharID, Serial64, Plus, Data, Lido) values(@CharID, @ItemSerial, @strDesc_separado, GetDate(), '0')   
    end  
   end 
   if(@Operation = 90)
   begin
    declare @iname varchar(129)
	declare @iid int
	declare @cname varchar(64)
	select @iid = RefItemID from SRO_VT_SHARD.dbo._Items where Serial64 = @ItemSerial
	select @iname = CodeName128 from SRO_VT_SHARD.dbo._RefObjCommon where id = @iid
	select @cname = CharName16 from SRO_VT_SHARD.dbo._Char where CharID = @CharID
	insert PlusNotice(Sent, Message)values(0,@cname + ' has increased ' + @iname + ' to [lvl ' + CAST(@strDesc_separado AS NVARCHAR) + ']')  
  end
Change log:

v1.0.1:
-Sql connection issue fixed

v1.0.2:
-added remote connection

v1.0.3:
-empty/old notice spam fixed

v1.0.4:
-Packet sending issue fixed

V1.0.5:
-Manuel gateway port selection

And the download links of source and the sample:

Sample: [Only registered and activated users can see links. Click Here To Register...]
Source: [Only registered and activated users can see links. Click Here To Register...]

Password: without space

Code:
rage zone
Virustotal: [Only registered and activated users can see links. Click Here To Register...]

Hope you enjoy and hope it works for you :)
06/12/2013 18:49 PortalDark#2
#approved
06/12/2013 19:18 flozz#3
Thanks, I was waiting for such release :)
Btw, you need an notice writer char to use it yea?
06/12/2013 19:25 Gavur#4
Quote:
Originally Posted by flozz View Post
Thanks for me, I was waiting for such release :)
Btw, you need an notice writer char to use it yea?
Yep, true :)
06/14/2013 02:01 PlayCreedSRO#5
good job
06/14/2013 09:05 flozz#6
Something wrong, If PlusNotice table clean - spamming clean notices every 10 sec, If I pluss item, notices gone, whats wrong?
AddLogItem:

Code:
USE [SRO_VT_LOG]
GO
/****** Object:  StoredProcedure [dbo].[_AddLogItem]    Script Date: 6/14/2013 8:45:54 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



------------------------------------------------------------------------------------------------------------------- 
-- Step 2 
-- ±âÁ¸ ¾ÆÀÌÅÛ ·Î±× ÀÔ·Â Stored procedure ¼öÁ¤ 
-- DataBase            : Shard Log   
ALTER  procedure [dbo].[_AddLogItem]  
  @CharID  int,   
  @ItemRefID int,   
  @ItemSerial bigint,   
  @dwData int,   
  @TargetStorage tinyint,   
  @Operation tinyint,   
  @Slot_From tinyint,   
  @Slot_To tinyint,   
  @EventPos varchar(64),   
  @strDesc varchar(128), 
  @Gold         bigint          -- #ifdef EXTEND_GOLD_TYPE »ðÀÔ 
  as   
   declare @len_pos int   
   declare @len_desc int  
   declare @strDesc_separado varchar(128)  
   declare  @len_desc1 int 
   set @len_pos = len(@EventPos)   
   set @len_desc = len(@strDesc)   
   if (@len_pos > 0 and @len_desc > 0)   
   begin   
                        insert _LogEventItem (EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, EventPos, strDesc, Serial64, Gold)    -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
                        values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @EventPos, @strDesc, @ItemSerial, @Gold)              -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
   end   
   else if (@len_pos > 0 and @len_desc = 0)   
   begin   
                        insert _LogEventItem (EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, EventPos, Serial64, Gold)                     -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
                        values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @EventPos, @ItemSerial, @Gold)                                -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼  
   end   
   else if (@len_pos = 0 and @len_desc > 0)   
   begin   
                        insert _LogEventItem (EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, strDesc, Serial64, Gold)                      -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
                        values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @strDesc, @ItemSerial, @Gold)                                 -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼  
   end   
   else if (@len_pos = 0 and @len_desc = 0)   
   begin   
                        insert _LogEventItem (EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, Serial64, Gold)                                               -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
                        values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @ItemSerial, @Gold)                                                   -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
   end   
   -- À¯·á ¾ÆÀÌÅÛ ±¸ÀÔÀ̸é!   
   -- #define LOG_ITEMEVENT_BUY_CASHITEM  (BYTE)35   
   if (@Operation = 35)   
   begin   
        insert _LogCashItem (RefItemID, CharID, Cnt, EventTime, Serial64)   
        values(@ItemRefID, @CharID, @dwData, GetDate(), @ItemSerial)   
   end 
   if (@Operation = 90 OR @Operation = 160)   
   begin   
   set @len_desc1 = CHARINDEX (']',@strDesc)  
  if(@len_desc1 = 9)   
         begin 
         set @strDesc = SUBSTRING(@strDesc,0,9) 
         set @strDesc_separado = SUBSTRING(@strDesc, 8, 1) 
        end 
   else if(@len_desc1 = 10) 
                begin 
                set @strDesc = SUBSTRING(@strDesc,0,10) 
                set @strDesc_separado = SUBSTRING(@strDesc, 8, 2) 
                end 
                if(@strDesc_separado >= 8) 
                begin 
                --set @strDesc_separado = @len_desc1 
          insert _LogItemPlus(CharID, Serial64, Plus, Data, Lido) values(@CharID, @ItemSerial, @strDesc_separado, GetDate(), '0')   
        end  
   end 
   if(@Operation = 90)
   begin
        declare @iname varchar(129)
        declare @iid int
        declare @cname varchar(64)
        select @iid = RefItemID from SRO_VT_SHARD.dbo._Items where Serial64 = @ItemSerial
        select @iname = CodeName128 from SRO_VT_SHARD.dbo._RefObjCommon where id = @iid
        select @cname = CharName16 from SRO_VT_SHARD.dbo._Char where CharID = @CharID
        insert PlusNotice(Sent, Message)values(0,@cname + ' has increased ' + @iname + ' to [lvl ' + CAST(@strDesc_separado AS NVARCHAR) + ']') 
  end
PlusNotice:

Code:
USE [SRO_VT_LOG]
GO

/****** Object:  Table [dbo].[PlusNotice]    Script Date: 6/14/2013 8:46:55 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[PlusNotice](
	[Sent] [int] NOT NULL,
	[message] [varchar](max) NOT NULL,
	[Date] [datetime] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[PlusNotice] ADD  CONSTRAINT [DF_PlusNotice_Sent]  DEFAULT ((0)) FOR [Sent]
GO

ALTER TABLE [dbo].[PlusNotice] ADD  CONSTRAINT [DF_PlusNotice_Date]  DEFAULT (getdate()) FOR [Date]
GO
Code:
1	Hardy has increased ITEM_CH_NECKLACE_09_A_RARE to [lvl 8]	2013-06-14 08:43:01.393
[Only registered and activated users can see links. Click Here To Register...]
06/14/2013 14:46 Gavur#7
Quote:
Originally Posted by PlayCreedSRO View Post
good job
Thank you. :)

Quote:
Originally Posted by flozz View Post
Something wrong, If PlusNotice table clean - spamming clean notices every 10 sec, If I pluss item, notices gone, whats wrong?
AddLogItem:

Code:
USE [SRO_VT_LOG]
GO
/****** Object:  StoredProcedure [dbo].[_AddLogItem]    Script Date: 6/14/2013 8:45:54 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO



------------------------------------------------------------------------------------------------------------------- 
-- Step 2 
-- ±âÁ¸ ¾ÆÀÌÅÛ ·Î±× ÀÔ·Â Stored procedure ¼öÁ¤ 
-- DataBase            : Shard Log   
ALTER  procedure [dbo].[_AddLogItem]  
  @CharID  int,   
  @ItemRefID int,   
  @ItemSerial bigint,   
  @dwData int,   
  @TargetStorage tinyint,   
  @Operation tinyint,   
  @Slot_From tinyint,   
  @Slot_To tinyint,   
  @EventPos varchar(64),   
  @strDesc varchar(128), 
  @Gold         bigint          -- #ifdef EXTEND_GOLD_TYPE »ðÀÔ 
  as   
   declare @len_pos int   
   declare @len_desc int  
   declare @strDesc_separado varchar(128)  
   declare  @len_desc1 int 
   set @len_pos = len(@EventPos)   
   set @len_desc = len(@strDesc)   
   if (@len_pos > 0 and @len_desc > 0)   
   begin   
                        insert _LogEventItem (EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, EventPos, strDesc, Serial64, Gold)    -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
                        values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @EventPos, @strDesc, @ItemSerial, @Gold)              -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
   end   
   else if (@len_pos > 0 and @len_desc = 0)   
   begin   
                        insert _LogEventItem (EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, EventPos, Serial64, Gold)                     -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
                        values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @EventPos, @ItemSerial, @Gold)                                -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼  
   end   
   else if (@len_pos = 0 and @len_desc > 0)   
   begin   
                        insert _LogEventItem (EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, strDesc, Serial64, Gold)                      -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
                        values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @strDesc, @ItemSerial, @Gold)                                 -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼  
   end   
   else if (@len_pos = 0 and @len_desc = 0)   
   begin   
                        insert _LogEventItem (EventTime, CharID, ItemRefID, dwData, TargetStorage, Operation, Slot_From, Slot_To, Serial64, Gold)                                               -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
                        values(GetDate(), @CharID, @ItemRefID, @dwData, @TargetStorage, @Operation, @Slot_From, @Slot_To, @ItemSerial, @Gold)                                                   -- #ifdef EXTEND_GOLD_TYPE ±³Ã¼ 
   end   
   -- À¯·á ¾ÆÀÌÅÛ ±¸ÀÔÀ̸é!   
   -- #define LOG_ITEMEVENT_BUY_CASHITEM  (BYTE)35   
   if (@Operation = 35)   
   begin   
        insert _LogCashItem (RefItemID, CharID, Cnt, EventTime, Serial64)   
        values(@ItemRefID, @CharID, @dwData, GetDate(), @ItemSerial)   
   end 
   if (@Operation = 90 OR @Operation = 160)   
   begin   
   set @len_desc1 = CHARINDEX (']',@strDesc)  
  if(@len_desc1 = 9)   
         begin 
         set @strDesc = SUBSTRING(@strDesc,0,9) 
         set @strDesc_separado = SUBSTRING(@strDesc, 8, 1) 
        end 
   else if(@len_desc1 = 10) 
                begin 
                set @strDesc = SUBSTRING(@strDesc,0,10) 
                set @strDesc_separado = SUBSTRING(@strDesc, 8, 2) 
                end 
                if(@strDesc_separado >= 8) 
                begin 
                --set @strDesc_separado = @len_desc1 
          insert _LogItemPlus(CharID, Serial64, Plus, Data, Lido) values(@CharID, @ItemSerial, @strDesc_separado, GetDate(), '0')   
        end  
   end 
   if(@Operation = 90)
   begin
        declare @iname varchar(129)
        declare @iid int
        declare @cname varchar(64)
        select @iid = RefItemID from SRO_VT_SHARD.dbo._Items where Serial64 = @ItemSerial
        select @iname = CodeName128 from SRO_VT_SHARD.dbo._RefObjCommon where id = @iid
        select @cname = CharName16 from SRO_VT_SHARD.dbo._Char where CharID = @CharID
        insert PlusNotice(Sent, Message)values(0,@cname + ' has increased ' + @iname + ' to [lvl ' + CAST(@strDesc_separado AS NVARCHAR) + ']') 
  end
PlusNotice:

Code:
USE [SRO_VT_LOG]
GO

/****** Object:  Table [dbo].[PlusNotice]    Script Date: 6/14/2013 8:46:55 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[PlusNotice](
	[Sent] [int] NOT NULL,
	[message] [varchar](max) NOT NULL,
	[Date] [datetime] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[PlusNotice] ADD  CONSTRAINT [DF_PlusNotice_Sent]  DEFAULT ((0)) FOR [Sent]
GO

ALTER TABLE [dbo].[PlusNotice] ADD  CONSTRAINT [DF_PlusNotice_Date]  DEFAULT (getdate()) FOR [Date]
GO
Code:
1	Hardy has increased ITEM_CH_NECKLACE_09_A_RARE to [lvl 8]	2013-06-14 08:43:01.393
[Only registered and activated users can see links. Click Here To Register...]
Try now :)
06/15/2013 06:18 Alexiuns#8
thanks good work
06/18/2013 13:16 TeamWork-Backup#9
thanks good work #
06/18/2013 15:00 PlayCreedSRO#10
good job
06/20/2013 15:37 Devsome#11
haha they copied my tool :D
Can anyone send me the ******** link ??

[Only registered and activated users can see links. Click Here To Register...]

[Only registered and activated users can see links. Click Here To Register...]
06/26/2013 08:53 TesterSrv#12
Thank you
06/29/2013 12:50 onurgs59#13
Can we do it and above +8 ?
06/29/2013 17:09 Devsome#14
Quote:
Originally Posted by onurgs59 View Post
Can we do it and above +8 ?
Its an Notice Writer not an pimp tool dude, wrong section
06/29/2013 18:10 onurgs59#15
Quote:
Originally Posted by Devsome View Post
Its an Notice Writer not an pimp tool dude, wrong section
I don't understand ?