It worked perfectly, but did not inject into the database. Run the query from Luis_br!Code:.h #define MAX_COMMAND 32 COMMAND_MARRY = 32, .cpp this->Add(gMessage.GetMessage(628),COMMAND_MARRY);
run full query form MaxMuOnIt worked perfectly, but did not inject into the database. Run the query from Luis_br!
here:Run both, but still not injected.
USE [MuOnline]
GO/****** Object: Table [dbo].[Marry] Script Date: 11/16/2016 20:27:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GOCREATE TABLE [dbo].[Marry](
[Character] [varchar](15) NOT NULL,
[MarryCharacter] [varchar](15) NOT NULL,
[MarriedOn] [datetime] NOT NULL
) ON [PRIMARY]
GOSET ANSI_PADDING OFF
GOALTER TABLE [dbo].[Marry] ADD CONSTRAINT [DF_Marry_MarriedOn] DEFAULT (getdate()) FOR [MarriedOn]
GOGO
/****** Object: StoredProcedure [dbo].[WZ_GetMarryInfo] Script Date: 11/16/2016 20:27:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GOALTER Procedure [dbo].[WZ_GetMarryInfo] @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] varchar(10), @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character varchar(10)
AS
BEGINSET NOCOUNT ON
SET XACT_ABORT ONDECLARE @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]You int
DECLARE @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]Him intDECLARE @[I][B][URL="http://forum.ragezone.com/members/829527.html"]Start[/URL][/B][/I]date datetime2 = '2016-01-01 00:00:00.0000000';
DECLARE @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOnEnd datetime2
DECLARE @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOn intDECLARE @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get1 varchar(10)
DECLARE @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get2 varchar(10)
/*DECLARE @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOn int*/
SELECT @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]You=Count(*) FROM [dbo].[Marry] WHERE Character = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] OR MarryCharacter = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL]
[/B][/I]
/*You are already married*/
SELECT @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]Him=Count(*) FROM [dbo].[Marry] WHERE Character = @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character OR MarryCharacter = @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character
/*He/She is already married*/
SELECT @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get1=MarryCharacter FROM [dbo].[Marry] WHERE Character = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]
SELECT @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get2=Character FROM [dbo].[Marry] WHERE MarryCharacter = @[I][B][URL="http://forum.ragezone.com/members/560057.html"]Names[/URL][/B][/I]ELECT @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOnEnd=MarriedOn FROM [dbo].[Marry] WHERE Character = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] OR MarryCharacter = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL]
[/B][/I]/*Married date*/
SELECT @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOn=DATEDIFF(SECOND, @[I][B][URL="http://forum.ragezone.com/members/829527.html"]Start[/URL][/B][/I]date, @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOnEnd) SELECT @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]You AS CountYou, @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]Him AS CountHim, @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOn AS MarriedOn, @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get1 AS NameGet1, @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get2 AS NameGet2
SET NOCOUNT OFF
SET XACT_ABORT OFFENDGO
/****** Object: StoredProcedure [dbo].[WZ_SetDivorceInfo] Script Date: 11/16/2016 20:28:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GOALTER Procedure [dbo].[WZ_SetDivorceInfo] @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] varchar(10), @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character varchar(10)
AS
BEGINSET NOCOUNT ON
SET XACT_ABORT ONDELETE FROM [dbo].[Marry] where Character = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] OR MarryCharacter = @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character
SET NOCOUNT OFF
SET XACT_ABORT OFFENDGO
/****** Object: StoredProcedure [dbo].[WZ_SetMarryInfo] Script Date: 11/16/2016 20:28:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GOALTER Procedure [dbo].[WZ_SetMarryInfo] @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] = varchar(10), @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character = varchar(10)
AS
BEGINSET NOCOUNT ON
SET XACT_ABORT ONINSERT INTO [dbo].[Marry] (Character, MarryCharacter) VALUES @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character);
SET NOCOUNT OFF
SET XACT_ABORT OFFEND
here:
Code:Error irrecuperable de scripting.Se ha encontrado sintaxis incorrecta al analizar GO. USE [MuOnline] GO/****** Object: Table [dbo].[Marry] Script Date: 11/16/2016 20:27:26 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GOCREATE TABLE [dbo].[Marry]( [Character] [varchar](15) NOT NULL, [MarryCharacter] [varchar](15) NOT NULL, [MarriedOn] [datetime] NOT NULL ) ON [PRIMARY] GOSET ANSI_PADDING OFF GOALTER TABLE [dbo].[Marry] ADD CONSTRAINT [DF_Marry_MarriedOn] DEFAULT (getdate()) FOR [MarriedOn] GOGO /****** Object: StoredProcedure [dbo].[WZ_GetMarryInfo] Script Date: 11/16/2016 20:27:58 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GOALTER Procedure [dbo].[WZ_GetMarryInfo] @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] varchar(10), @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character varchar(10) AS BEGINSET NOCOUNT ON SET XACT_ABORT ONDECLARE @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]You int DECLARE @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]Him intDECLARE @[I][B][URL="http://forum.ragezone.com/members/829527.html"]Start[/URL][/B][/I]date datetime2 = '2016-01-01 00:00:00.0000000'; DECLARE @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOnEnd datetime2 DECLARE @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOn intDECLARE @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get1 varchar(10) DECLARE @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get2 varchar(10) /*DECLARE @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOn int*/ SELECT @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]You=Count(*) FROM [dbo].[Marry] WHERE Character = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] OR MarryCharacter = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL] [/B][/I] /*You are already married*/ SELECT @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]Him=Count(*) FROM [dbo].[Marry] WHERE Character = @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character OR MarryCharacter = @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character /*He/She is already married*/ SELECT @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get1=MarryCharacter FROM [dbo].[Marry] WHERE Character = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] SELECT @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get2=Character FROM [dbo].[Marry] WHERE MarryCharacter = @[I][B][URL="http://forum.ragezone.com/members/560057.html"]Names[/URL][/B][/I]ELECT @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOnEnd=MarriedOn FROM [dbo].[Marry] WHERE Character = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] OR MarryCharacter = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL] [/B][/I]/*Married date*/ SELECT @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOn=DATEDIFF(SECOND, @[I][B][URL="http://forum.ragezone.com/members/829527.html"]Start[/URL][/B][/I]date, @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOnEnd) SELECT @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]You AS CountYou, @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]Him AS CountHim, @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOn AS MarriedOn, @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get1 AS NameGet1, @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get2 AS NameGet2 SET NOCOUNT OFF SET XACT_ABORT OFFENDGO /****** Object: StoredProcedure [dbo].[WZ_SetDivorceInfo] Script Date: 11/16/2016 20:28:31 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GOALTER Procedure [dbo].[WZ_SetDivorceInfo] @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] varchar(10), @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character varchar(10) AS BEGINSET NOCOUNT ON SET XACT_ABORT ONDELETE FROM [dbo].[Marry] where Character = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] OR MarryCharacter = @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character SET NOCOUNT OFF SET XACT_ABORT OFFENDGO /****** Object: StoredProcedure [dbo].[WZ_SetMarryInfo] Script Date: 11/16/2016 20:28:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GOALTER Procedure [dbo].[WZ_SetMarryInfo] @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] = varchar(10), @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character = varchar(10) AS BEGINSET NOCOUNT ON SET XACT_ABORT ONINSERT INTO [dbo].[Marry] (Character, MarryCharacter) VALUES @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character); SET NOCOUNT OFF SET XACT_ABORT OFFEND
It shows an error message after running this query :
Error irrecuperable de scripting.Se ha encontrado sintaxis incorrecta al analizar GO.
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Marry](
[Character] [varchar](15) NOT NULL,
[MarryCharacter] [varchar](15) NOT NULL,
[MarriedOn] [datetime] NOT NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
ALTER TABLE [dbo].[Marry] ADD CONSTRAINT [DF_Marry_MarriedOn] DEFAULT (getdate()) FOR [MarriedOn]
GO
GO
/****** Object: StoredProcedure [dbo].[WZ_GetMarryInfo] Script Date: 11/16/2016 20:27:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Procedure [dbo].[WZ_GetMarryInfo] @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] varchar(10), @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character varchar(10)
AS
BEGIN
SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]You int
DECLARE @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]Him int
DECLARE @[I][B][URL="http://forum.ragezone.com/members/829527.html"]Start[/URL][/B][/I]date datetime2 = '2016-01-01 00:00:00.0000000';
DECLARE @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOnEnd datetime2
DECLARE @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOn int
DECLARE @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get1 varchar(10)
DECLARE @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get2 varchar(10)
/*DECLARE @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOn int*/
SELECT @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]You=Count(*) FROM [dbo].[Marry] WHERE Character = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] OR MarryCharacter = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] /*You are already married*/
SELECT @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]Him=Count(*) FROM [dbo].[Marry] WHERE Character = @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character OR MarryCharacter = @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character /*He/She is already married*/
SELECT @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get1=MarryCharacter FROM [dbo].[Marry] WHERE Character = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]
SELECT @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get2=Character FROM [dbo].[Marry] WHERE MarryCharacter = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]
SELECT @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOnEnd=MarriedOn FROM [dbo].[Marry] WHERE Character = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] OR MarryCharacter = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] /*Married date*/
SELECT @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOn=DATEDIFF(SECOND, @[I][B][URL="http://forum.ragezone.com/members/829527.html"]Start[/URL][/B][/I]date, @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOnEnd)
SELECT @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]You AS CountYou, @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]Him AS CountHiM, @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOn AS MarriedOn, @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get1 AS NameGet1, @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get2 AS NameGet2
SET NOCOUNT OFF
SET XACT_ABORT OFF
END
GO
/****** Object: StoredProcedure [dbo].[WZ_SetDivorceInfo] Script Date: 11/16/2016 20:28:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Procedure [dbo].[WZ_SetDivorceInfo] @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] varchar(10), @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character varchar(10)
AS
BEGIN
SET NOCOUNT ON
SET XACT_ABORT ON
DELETE FROM [dbo].[Marry] where Character = @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] OR MarryCharacter = @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character
SET NOCOUNT OFF
SET XACT_ABORT OFF
END
GO
/****** Object: StoredProcedure [dbo].[WZ_SetMarryInfo] Script Date: 11/16/2016 20:28:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Procedure [dbo].[WZ_SetMarryInfo] @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] varchar(10), @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character varchar(10)
AS
BEGIN
SET NOCOUNT ON
SET XACT_ABORT ON
INSERT INTO [dbo].[Marry] (Character, MarryCharacter) VALUES (@[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I], @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character);
SET NOCOUNT OFF
SET XACT_ABORT OFF
END
Hello,can you shares source for this cool release ? For people like me that added and moddified a lot of stuff like zen values, mix, commands, marry and events (like trivia event + bot buffer race and hide. )
I will start sharing tooMostly except marry system, i copied from scf s6.
My MarrySystem
602 "You can not marry yourself 0,0!"DATASERVER
Code:------------------------------------------------ CommandManager.h ------------------------------------------------ struct SDHP_COMMAND_MARRY_RECV { PSBMSG_HEAD header; // C1:0F:00 WORD index; char name[11]; char marryname[11]; char mode[11]; }; struct SDHP_COMMAND_MARRY_SEND { PSBMSG_HEAD header; // C1:0F:00 WORD index; char name[11]; char marryname[11]; char mode[11]; char NameGet1[11]; char NameGet2[11]; UINT countyou; UINT counthim; UINT marriedon; }; void GDCommandMarryRecv(SDHP_COMMAND_MARRY_RECV* lpMsg,int index); ------------------------------------------------ CommandManager.cpp ------------------------------------------------ void CCommandManager::GDCommandMarryRecv(SDHP_COMMAND_MARRY_RECV* lpMsg,int index) // OK { SDHP_COMMAND_MARRY_SEND pMsg; pMsg.header.set(0x0F,0x02,sizeof(pMsg)); pMsg.index = lpMsg->index; memcpy(pMsg.name,lpMsg->name,sizeof(pMsg.name)); memcpy(pMsg.marryname,lpMsg->marryname,sizeof(pMsg.marryname)); memcpy(pMsg.mode,lpMsg->mode,sizeof(pMsg.mode)); gQueryManager.ExecQuery("EXEC WZ_GetMarryInfo '%s','%s'",lpMsg->name,lpMsg->marryname); gQueryManager.Fetch(); pMsg.countyou = gQueryManager.GetAsInteger("CountYou"); pMsg.counthim = gQueryManager.GetAsInteger("CountHim"); pMsg.marriedon = gQueryManager.GetAsInteger("MarriedOn"); gQueryManager.GetAsString("NameGet1",pMsg.NameGet1,sizeof(pMsg.NameGet1)); gQueryManager.GetAsString("NameGet2",pMsg.NameGet2,sizeof(pMsg.NameGet2)); gQueryManager.Close(); gSocketManager.DataSend(index,(BYTE*)&pMsg,pMsg.header.size); } ------------------------------------------------ DataServerProtocol.h ------------------------------------------------ struct SDHP_MARRY_INFO_SAVE_RECV { PBMSG_HEAD header; // C1:39 WORD index; char name[11]; char marryname[11]; char mode[11]; }; void GDMarryInfoSaveRecv(SDHP_MARRY_INFO_SAVE_RECV* lpMsg); ------------------------------------------------ DataServerProtocol.cpp ------------------------------------------------ void GDMarryInfoSaveRecv(SDHP_MARRY_INFO_SAVE_RECV* lpMsg) // OK { if(strcmp(lpMsg->mode,"marry") == 0) { gQueryManager.ExecQuery("EXEC WZ_SetMarryInfo '%s','%s'",lpMsg->name,lpMsg->marryname); gQueryManager.Fetch(); gQueryManager.Close(); } else if(strcmp(lpMsg->mode,"divorce") == 0) { gQueryManager.ExecQuery("EXEC WZ_SetDivorceInfo '%s','%s'",lpMsg->name,lpMsg->marryname); gQueryManager.Fetch(); gQueryManager.Close(); } } ------------------------------------------------ DataServerProtocol.cpp ------------------------------------------------ case 0x0F: switch(((lpMsg[0]==0xC1)?lpMsg[3]:lpMsg[4])) { case 0x00: gCommandManager.GDCommandResetRecv((SDHP_COMMAND_RESET_RECV*)lpMsg,index); break; case 0x01: gCommandManager.GDCommandMasterResetRecv((SDHP_COMMAND_MASTER_RESET_RECV*)lpMsg,index); break; case 0x02: gCommandManager.GDCommandMarryRecv((SDHP_COMMAND_MARRY_RECV*)lpMsg,index); break; } + case 0xF0: GDMarryInfoSaveRecv((SDHP_MARRY_INFO_SAVE_RECV*)lpMsg); break;
MSSQL
Code:------------------------------------------------ USE [MuOnline] GO /****** Object: Table [dbo].[Marry] Script Date: 11/16/2016 20:27:26 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Marry]( [Character] [varchar](15) NOT NULL, [MarryCharacter] [varchar](15) NOT NULL, [MarriedOn] [datetime] NOT NULL ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[Marry] ADD CONSTRAINT [DF_Marry_MarriedOn] DEFAULT (getdate()) FOR [MarriedOn] GO GO /****** Object: StoredProcedure [dbo].[WZ_GetMarryInfo] Script Date: 11/16/2016 20:27:58 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER Procedure [dbo].[WZ_GetMarryInfo] @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] varchar(10), @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character varchar(10) AS BEGIN SET NOCOUNT ON SET XACT_ABORT ON DECLARE @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]You int DECLARE @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]Him int DECLARE @[I][B][URL="http://forum.ragezone.com/members/829527.html"]Start[/URL][/B][/I]date datetime2 = '2016-01-01 00:00:00.0000000'; DECLARE @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOnEnd datetime2 DECLARE @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOn int DECLARE @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get1 varchar(10) DECLARE @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get2 varchar(10) /*DECLARE @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOn int*/ SELECT @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]You=Count(*) FROM [dbo].[Marry] WHERE Character @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] OR MarryCharacter @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] /*You are already married*/ SELECT @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]Him=Count(*) FROM [dbo].[Marry] WHERE Character @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character OR MarryCharacter @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character /*He/She is already married*/ SELECT @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get1=MarryCharacter FROM [dbo].[Marry] WHERE Character @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] SELECT @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get2=Character FROM [dbo].[Marry] WHERE MarryCharacter @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] SELECT @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOnEnd=MarriedOn FROM [dbo].[Marry] WHERE Character @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] OR MarryCharacter @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] /*Married date*/ SELECT @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOn=DATEDIFF(SECOND, @[I][B][URL="http://forum.ragezone.com/members/829527.html"]Start[/URL][/B][/I]date, @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOnEnd) SELECT @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]You AS CountYou @[I][B][URL="http://forum.ragezone.com/members/138004.html"]count[/URL][/B][/I]Him AS CountHim @[I][B][URL="http://forum.ragezone.com/members/283349.html"]mar[/URL][/B][/I]riedOn AS MarriedOn @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get1 AS NameGet1 @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I]Get2 AS NameGet2 SET NOCOUNT OFF SET XACT_ABORT OFF END GO /****** Object: StoredProcedure [dbo].[WZ_SetDivorceInfo] Script Date: 11/16/2016 20:28:31 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER Procedure [dbo].[WZ_SetDivorceInfo] @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] varchar(10), @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character varchar(10) AS BEGIN SET NOCOUNT ON SET XACT_ABORT ON DELETE FROM [dbo].[Marry] where Character @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] OR MarryCharacter @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character SET NOCOUNT OFF SET XACT_ABORT OFF END GO /****** Object: StoredProcedure [dbo].[WZ_SetMarryInfo] Script Date: 11/16/2016 20:28:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER Procedure [dbo].[WZ_SetMarryInfo] @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] varchar(10), @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character varchar(10) AS BEGIN SET NOCOUNT ON SET XACT_ABORT ON INSERT INTO [dbo].[Marry] (Character, MarryCharacter) VALUES @[I][B][URL="http://forum.ragezone.com/members/1333344765.html"]name[/URL][/B][/I] @[I][B][URL="http://forum.ragezone.com/members/2000111361.html"]Marry[/URL][/B][/I]Character); SET NOCOUNT OFF SET XACT_ABORT OFF END ------------------------------------------------
GAMSERVER
Code:------------------------------------------------ DSProtocol.cpp ------------------------------------------------ case 0x0F: switch(((lpMsg[0]==0xC1)?lpMsg[3]:lpMsg[4])) { case 0x00: gCommandManager.DGCommandResetRecv((SDHP_COMMAND_RESET_RECV*)lpMsg); break; case 0x01: gCommandManager.DGCommandMasterResetRecv((SDHP_COMMAND_MASTER_RESET_RECV*)lpMsg); break; case 0x02: gCommandManager.DGCommandMarryRecv((SDHP_COMMAND_MARRY_RECV*)lpMsg); break; } break; void GDMarryInfoSaveSend(int aIndex,char* marryname,char* mode) // OK { LPOBJ lpObj = &gObj[aIndex]; SDHP_MARRY_INFO_SAVE_SEND pMsg; pMsg.header.set(0xF0,sizeof(pMsg)); pMsg.index = aIndex; memcpy(pMsg.name,lpObj->Name,sizeof(pMsg.name)); memcpy(pMsg.marryname,marryname,sizeof(pMsg.marryname)); memcpy(pMsg.mode,mode,sizeof(pMsg.mode)); //pMsg.name = name; //pMsg.marryname = marryname; gDataServerConnection.DataSend((BYTE*)&pMsg,pMsg.header.size); } ------------------------------------------------ User.h ------------------------------------------------ DWORD MarryTimeMsj; ------------------------------------------------ DSProtocol.h ------------------------------------------------ struct SDHP_MARRY_INFO_SAVE_SEND { PBMSG_HEAD header; // C1:39 WORD index; char name[11]; char marryname[11]; char mode[11]; UINT countyou; UINT counthim; UINT marriedon; }; void GDMarryInfoSaveSend(int aIndex,char* marryname,char* mode); ------------------------------------------------ CommandManager.h ------------------------------------------------ struct SDHP_COMMAND_MARRY_RECV { PSBMSG_HEAD header; // C1:0F:02 WORD index; char name[11]; char marryname[11]; char mode[11]; char NameGet1[11]; char NameGet2[11]; UINT countyou; UINT counthim; UINT marriedon; }; struct SDHP_COMMAND_MARRY_SEND { PSBMSG_HEAD header; // C1:0F:02 WORD index; char name[11]; char marryname[11]; char mode[11]; }; void DGCommandMarryRecv(SDHP_COMMAND_MARRY_RECV* lpMsg); void CommandMarry(LPOBJ lpObj,char* arg); ------------------------------------------------ CommandManager.cpp ------------------------------------------------ case COMMAND_MARRY: this->CommandMarry(lpObj,argument); break; void CCommandManager::CommandMarry(LPOBJ lpObj,char* arg) // OK { char mode[11] = {0}; this->GetString(arg,mode,sizeof(mode),0); if(gServerInfo.m_CommandMarrySwitch == 0) { gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(619)); return; } if (mode[0] == NULL){ gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(606)); gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(623),gServerInfo.m_CommandMarryLevel,gServerInfo.m_CommandMarryCost); return; } if(strcmp(mode,"to") == 0) { char MarryName[11] = {0}; this->GetString(arg,MarryName,sizeof(MarryName),1); LPOBJ lpTarget = gObjFind(MarryName); if (lpTarget == 0) { gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(111)); return; } if (strcmp(MarryName,lpObj->Name) == 0) { gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(602)); return; } SDHP_COMMAND_MARRY_SEND pMsg; pMsg.header.set(0x0F,0x02,sizeof(pMsg)); pMsg.index = lpObj->Index; memcpy(pMsg.name,lpObj->Name,sizeof(pMsg.name)); memcpy(pMsg.marryname,MarryName,sizeof(pMsg.marryname)); memcpy(pMsg.mode,"marry",sizeof(pMsg.mode)); gDataServerConnection.DataSend((BYTE*)&pMsg,pMsg.header.size); } else if(strcmp(mode,"divorce") == 0) { SDHP_COMMAND_MARRY_SEND pMsg; pMsg.header.set(0x0F,0x02,sizeof(pMsg)); pMsg.index = lpObj->Index; memcpy(pMsg.name,lpObj->Name,sizeof(pMsg.name)); memcpy(pMsg.marryname,lpObj->Name,sizeof(pMsg.marryname)); memcpy(pMsg.mode,"divorce",sizeof(pMsg.mode)); gDataServerConnection.DataSend((BYTE*)&pMsg,pMsg.header.size); } else if(strcmp(mode,"track") == 0) { if (lpObj->Money < (DWORD)gServerInfo.m_CommandMarryCost) { gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(620),gServerInfo.m_CommandMarryCost); return; } SDHP_COMMAND_MARRY_SEND pMsg; pMsg.header.set(0x0F,0x02,sizeof(pMsg)); pMsg.index = lpObj->Index; memcpy(pMsg.name,lpObj->Name,sizeof(pMsg.name)); memcpy(pMsg.marryname,lpObj->Name,sizeof(pMsg.marryname)); memcpy(pMsg.mode,"track",sizeof(pMsg.mode)); gDataServerConnection.DataSend((BYTE*)&pMsg,pMsg.header.size); } else if(strcmp(mode,"trace") == 0) { if (lpObj->Money < (DWORD)gServerInfo.m_CommandMarryCost) { gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(620),gServerInfo.m_CommandMarryCost); return; } SDHP_COMMAND_MARRY_SEND pMsg; pMsg.header.set(0x0F,0x02,sizeof(pMsg)); pMsg.index = lpObj->Index; memcpy(pMsg.name,lpObj->Name,sizeof(pMsg.name)); memcpy(pMsg.marryname,lpObj->Name,sizeof(pMsg.marryname)); memcpy(pMsg.mode,"trace",sizeof(pMsg.mode)); gDataServerConnection.DataSend((BYTE*)&pMsg,pMsg.header.size); } else { gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(606)); gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(623),gServerInfo.m_CommandMarryLevel,gServerInfo.m_CommandMarryCost); return; } } void CCommandManager::DGCommandMarryRecv(SDHP_COMMAND_MARRY_RECV* lpMsg) // OK { LPOBJ lpObj = &gObj[lpMsg->index]; LPOBJ lpTarget = gObjFind(lpMsg->marryname); //lpMsg->name; if(strcmp(lpMsg->mode,"marry") == 0) { if (lpMsg->countyou > 0){ gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(604)); return; } if (lpMsg->counthim > 0){ gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(605)); return; } // int minx = 12; int maxx = 15; int miny = 23; int maxy = 28; if (lpObj->Map == 2 && lpObj->X >= minx && lpObj->X <= maxx && lpObj->Y >= miny && lpObj->Y <= maxy) { //good to go for you } else { gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(621)); return; } if (lpTarget->Map == 2 && lpTarget->X >= minx && lpTarget->X <= maxx && lpTarget->Y >= miny && lpTarget->Y <= maxy) { //good to go for the other person } else { gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(622)); return; } // int first_classtype = 0; if( (lpObj->DBClass == DB_CLASS_DW) || (lpObj->DBClass == DB_CLASS_SM) || (lpObj->DBClass == DB_CLASS_GM) || (lpObj->DBClass == DB_CLASS_DK) || (lpObj->DBClass == DB_CLASS_BK) || (lpObj->DBClass == DB_CLASS_BM) || (lpObj->DBClass == DB_CLASS_MG) || (lpObj->DBClass == DB_CLASS_DM) || (lpObj->DBClass == DB_CLASS_DL) || (lpObj->DBClass == DB_CLASS_LE) || (lpObj->DBClass == DB_CLASS_RF) || (lpObj->DBClass == DB_CLASS_FM) ) { first_classtype=0; } else if( (lpObj->DBClass == DB_CLASS_FE) || (lpObj->DBClass == DB_CLASS_ME) || (lpObj->DBClass == DB_CLASS_HE) || (lpObj->DBClass == DB_CLASS_SU) || (lpObj->DBClass == DB_CLASS_BS) || (lpObj->DBClass == DB_CLASS_DS) ) { first_classtype=1; } // int second_classtype = 0; if( (lpTarget->DBClass == DB_CLASS_DW) || (lpTarget->DBClass == DB_CLASS_SM) || (lpTarget->DBClass == DB_CLASS_GM) || (lpTarget->DBClass == DB_CLASS_DK) || (lpTarget->DBClass == DB_CLASS_BK) || (lpTarget->DBClass == DB_CLASS_BM) || (lpTarget->DBClass == DB_CLASS_MG) || (lpTarget->DBClass == DB_CLASS_DM) || (lpTarget->DBClass == DB_CLASS_DL) || (lpTarget->DBClass == DB_CLASS_LE) || (lpTarget->DBClass == DB_CLASS_RF) || (lpTarget->DBClass == DB_CLASS_FM) ) { second_classtype=0; } else if( (lpTarget->DBClass == DB_CLASS_FE) || (lpTarget->DBClass == DB_CLASS_ME) || (lpTarget->DBClass == DB_CLASS_HE) || (lpTarget->DBClass == DB_CLASS_SU) || (lpTarget->DBClass == DB_CLASS_BS) || (lpTarget->DBClass == DB_CLASS_DS) ) { second_classtype=1; } char fulltext_new[256]; wsprintf(fulltext_new,gMessage.GetMessage(615),lpMsg->name,lpMsg->marryname); if ((first_classtype == 0) && (second_classtype == 0)) { if((GetTickCount()-lpObj->MarryTimeMsj) > (DWORD)(gServerInfo.m_CommandMarryNoticeDelay*1000)) { GDGlobalNoticeSend(gMapServerManager.GetMapServerGroup(),0,0,0,0,0,0,gMessage.GetMessage(616));//nohomo allowed GDGlobalNoticeSend(gMapServerManager.GetMapServerGroup(),0,0,0,0,0,0,fulltext_new);//nohomo allowed } lpObj->MarryTimeMsj = GetTickCount(); return; } if ((first_classtype == 1) && (second_classtype == 1)) { if((GetTickCount()-lpObj->MarryTimeMsj) > (DWORD)(gServerInfo.m_CommandMarryNoticeDelay*1000)) { GDGlobalNoticeSend(gMapServerManager.GetMapServerGroup(),0,0,0,0,0,0,gMessage.GetMessage(616));//nohomo allowed GDGlobalNoticeSend(gMapServerManager.GetMapServerGroup(),0,0,0,0,0,0,fulltext_new);//nohomo allowed } lpObj->MarryTimeMsj = GetTickCount(); return; } // GDGlobalNoticeSend(gMapServerManager.GetMapServerGroup(),0,0,0,0,0,0,gMessage.GetMessage(614)); GDMarryInfoSaveSend(lpObj->Index,lpMsg->marryname,lpMsg->mode); gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(603),lpMsg->marryname); char fulltext[256]; wsprintf(fulltext,gMessage.GetMessage(612),lpObj->Name,lpMsg->marryname); GDGlobalNoticeSend(gMapServerManager.GetMapServerGroup(),0,0,0,0,0,0,fulltext); for(int n=0;n < 15;n++) { GCFireworksSend(lpObj,(lpObj->X+(((GetLargeRand()%5)*2)-4)),(lpObj->Y+(((GetLargeRand()%5)*2)-4))); } // } else if(strcmp(lpMsg->mode,"divorce") == 0) { if (lpMsg->countyou == 0){ gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(609)); return; } time_t timer; struct tm y2k = {0}; UINT seconds; y2k.tm_hour = 0; y2k.tm_min = 0; y2k.tm_sec = 0; y2k.tm_year = 116; y2k.tm_mon = 0; y2k.tm_mday = 1; time(&timer); /* get current time; same as: timer = time(NULL) */ seconds = static_cast<UINT>(difftime(timer,mktime(&y2k))); UINT value = seconds - lpMsg->marriedon; if (value < (UINT)gServerInfo.m_CommandMarryMinTime){ gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(607)); return; } LPOBJ lpTarget1 = gObjFind(lpMsg->NameGet1); LPOBJ lpTarget2 = gObjFind(lpMsg->NameGet2); if (lpTarget1 == 0 && lpTarget2 == 0) { gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(624)); return; } char fulltext[256]; GDGlobalNoticeSend(gMapServerManager.GetMapServerGroup(),0,0,0,0,0,0,gMessage.GetMessage(614)); if(lpTarget1 == 0) { wsprintf(fulltext,gMessage.GetMessage(613),lpObj->Name,lpMsg->NameGet2); GDGlobalNoticeSend(gMapServerManager.GetMapServerGroup(),0,0,0,0,0,0,fulltext); } if(lpTarget2 == 0) { wsprintf(fulltext,gMessage.GetMessage(613),lpObj->Name,lpMsg->NameGet1); GDGlobalNoticeSend(gMapServerManager.GetMapServerGroup(),0,0,0,0,0,0,fulltext); } // GDMarryInfoSaveSend(lpObj->Index,lpMsg->marryname,lpMsg->mode); gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(608)); // } else if(strcmp(lpMsg->mode,"track") == 0) { if (lpMsg->countyou == 0){ gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(609)); return; } LPOBJ lpTarget1 = gObjFind(lpMsg->NameGet1); LPOBJ lpTarget2 = gObjFind(lpMsg->NameGet2); if (lpTarget1 == 0 && lpTarget2 == 0) { gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(625)); return; } if (lpObj->Level >= gServerInfo.m_CommandMarryLevel) { if(lpTarget1 == 0) { gObjTeleport(lpObj->Index,lpTarget2->Map,lpTarget2->X,lpTarget2->Y); gObjTeleport(lpTarget2->Index,lpTarget2->Map,lpTarget2->X,lpTarget2->Y); } if(lpTarget2 == 0) { gObjTeleport(lpObj->Index,lpTarget1->Map,lpTarget1->X,lpTarget1->Y); gObjTeleport(lpTarget1->Index,lpTarget1->Map,lpTarget1->X,lpTarget1->Y); } } else{ gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(617),gServerInfo.m_CommandMarryLevel); return; } // GDMarryInfoSaveSend(lpObj->Index,lpMsg->marryname,lpMsg->mode); gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(610),lpMsg->marryname); lpObj->Money -= gServerInfo.m_CommandMarryCost; GCMoneySend(lpObj->Index,lpObj->Money); // } else if(strcmp(lpMsg->mode,"trace") == 0) { if (lpMsg->countyou == 0){ gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(609)); return; } LPOBJ lpTarget1 = gObjFind(lpMsg->NameGet1); LPOBJ lpTarget2 = gObjFind(lpMsg->NameGet2); // if (lpTarget1 == 0 && lpTarget2 == 0) { gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(625)); return; } if(lpTarget1 == 0) { if (lpTarget2->Level >= gServerInfo.m_CommandMarryLevel) { gObjTeleport(lpTarget2->Index,lpObj->Map,lpObj->X,lpObj->Y); gObjTeleport(lpObj->Index,lpObj->Map,lpObj->X,lpObj->Y); } else { gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(618),gServerInfo.m_CommandMarryLevel); return; } } if(lpTarget2 == 0) { if (lpTarget1->Level >= gServerInfo.m_CommandMarryLevel) { gObjTeleport(lpTarget1->Index,lpObj->Map,lpObj->X,lpObj->Y); gObjViewportListProtocolDestroy(lpObj); } else { gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(618),gServerInfo.m_CommandMarryLevel); return; } } // GDMarryInfoSaveSend(lpObj->Index,lpMsg->marryname,lpMsg->mode); gNotice.GCNoticeSend(lpObj->Index,1,0,0,0,0,0,gMessage.GetMessage(611),lpMsg->marryname); lpObj->Money -= gServerInfo.m_CommandMarryCost; GCMoneySend(lpObj->Index,lpObj->Money); // } gLog.Output(LOG_COMMAND,"[CommandMarry][%s][%d][%d][%d][%s][%s][%s]",lpObj->Account,lpMsg->countyou,lpMsg->counthim,lpMsg->marriedon,lpMsg->marryname,lpMsg->NameGet1,lpMsg->NameGet2); } ------------------------------------------------ ServerInfo.h ------------------------------------------------ int m_CommandMarrySwitch; int m_CommandMarryLevel; int m_CommandMarryCost; int m_CommandMarryNoticeDelay; int m_CommandMarryMinTime; ------------------------------------------------ ServerInfo.cpp ------------------------------------------------ this->m_CommandMarrySwitch = GetPrivateProfileInt(section,"CommandMarrySwitch",0,path); this->m_CommandMarryLevel = GetPrivateProfileInt(section,"CommandMarryLevel",0,path); this->m_CommandMarryCost = GetPrivateProfileInt(section,"CommandMarryCost",0,path); this->m_CommandMarryMinTime = GetPrivateProfileInt(section,"CommandMarryMinTime",0,path); this->m_CommandMarryNoticeDelay = GetPrivateProfileInt(section,"CommandMarryNoticeDelay",0,path); --Gameserverinfo - Command.txt inside gs/Data folder ;================================================== ; Marry Command Settings ;================================================== CommandMarrySwitch = 1 CommandMarryLevel = 150 CommandMarryCost = 350 CommandMarryNoticeDelay = 60 CommandMarryMinTime = 604800
603 "You just got married to %s!"
604 "You are already married!"
605 "The other character is already married!"
606 "Usage: [/marry to name | /marry divorce | /marry track or trace]!"
607 "You can not divorce in the first week of being married!"
608 "You just got divorced!"
609 "You are not married!"
610 "You tracked!"
611 "You traced!"
612 "%s just married %s!"
613 "%s just divorced %s!"
614 "[Marry System]Congragulations,"
615 "between %s and %s!"
616 "[Marry System]No hommo allowed"
617 "You need at least %d level to use this command!"
618 "He/She needs at least %d level to use this command!"
619 "Marry system has been disabled!"
620 "You need at least %d zen to use this command!"
621 "You need to stand on the correct position in Devias2!"
622 "Your target need to stand on the correct position in Devias2!"
623 "Info: [Minimum Level : %d | Track&Trace Cost : %d zen]!"
624 "You cannot divorce while he/she is disconnected!"
625 "The other character is disconnected!"
626 "Skin %d applied to %d players!"
627 "/skinaround"
628 "/marry"
you have to code it.how to fix item custom bow and crowbow work with skill in Season 4 mueMU ???
you have to code it.
i have source work on my s6, but you need research offset your main.
http://forum.ragezone.com/f508/custom-bows-crossbows-client-source-1080350/ source.share source please
[COLOR=#ff0000]#define iBowAddSkillEffect 0x0074A128 // 1.04E
#define iBowAddInventoryPos 0x005CC8E4 // 1.04E
#define iBowAddPlayerDimension 0x00566178 // 1.04E [/COLOR]
DWORD IsBowItem = 0;
DWORD IsCrossItem = 0;
DWORD BowValue = 0x09C;
DWORD MaxBoneCount = 0x108;
DWORD WorldPosition = 0x0FC;
DWORD oCreateEffect = 0x006D9070; // 1.04E
DWORD ReturnBowCode = 0x0074A12E; // 1.04E
DWORD BowPosition = 0x005CC8ED; // 1.04E
DWORD NextBowPosition = 0x005CC92E; // 1.04E
DWORD BowAddPlayerDimension_Offset = 0x0056617F; // 1.04E
please share offset in main 1.05D season 4http://forum.ragezone.com/f508/custom-bows-crossbows-client-source-1080350/ source.
Code:[COLOR=#ff0000]#define iBowAddSkillEffect 0x0074A128 // 1.04E #define iBowAddInventoryPos 0x005CC8E4 // 1.04E #define iBowAddPlayerDimension 0x00566178 // 1.04E [/COLOR]
Code:DWORD IsBowItem = 0; DWORD IsCrossItem = 0; DWORD BowValue = 0x09C; DWORD MaxBoneCount = 0x108; DWORD WorldPosition = 0x0FC; DWORD oCreateEffect = 0x006D9070; // 1.04E DWORD ReturnBowCode = 0x0074A12E; // 1.04E DWORD BowPosition = 0x005CC8ED; // 1.04E DWORD NextBowPosition = 0x005CC92E; // 1.04E DWORD BowAddPlayerDimension_Offset = 0x0056617F; // 1.04E
incompleteplease share offset in main 1.05D season 4
DWORD oCreateEffect = 0063CAB0
DWORD ReturnBowCode = 0068300F
#define iBowAddSkillEffect 00683009[COLOR=#000000]
[/COLOR]