[Help] New character with X days seal of wealth

FlamingArm

Member
Joined
Jan 3, 2012
Messages
56
Reaction score
3
how to config the procedure so that every new character will have X days of seal of wealth?

1) wz_createcharacter:

/****** Object: Stored Procedure dbo.WZ_CreateCharacter Script Date: 28.11.2008 19:52:26 ******/

CREATE Procedure WZ_CreateCharacter

@AccountID varchar(10),
@Name varchar(10),
@Class tinyint
AS
Begin

SET NOCOUNT ON
SET XACT_ABORT ON
DECLARE @Result tinyint

SET @Result = 0x00

If EXISTS ( SELECT Name FROM Character WHERE Name = @Name )
begin
SET @Result = 0x01
GOTO ProcEnd
end

BEGIN TRAN

If NOT EXISTS ( SELECT Id FROM AccountCharacter WHERE Id = @AccountID )
begin
INSERT INTO dbo.AccountCharacter(Id, GameID1, GameID2, GameID3, GameID4, GameID5, GameIDC)
VALUES(@AccountID, @Name, NULL, NULL, NULL, NULL, NULL)

SET @Result = @@Error
end
else
begin
Declare @g1 varchar(10), @g2 varchar(10), @g3 varchar(10), @g4 varchar(10), @g5 varchar(10)
SELECT @g1=GameID1, @g2=GameID2, @g3=GameID3, @g4=GameID4, @g5=GameID5 FROM dbo.AccountCharacter Where Id = @AccountID
if( ( @g1 Is NULL) OR (Len(@g1) = 0))

begin
UPDATE AccountCharacter SET GameID1 = @Name
WHERE Id = @AccountID

SET @Result = @@Error
end
else if( @g2 Is NULL OR Len(@g2) = 0)
begin
UPDATE AccountCharacter SET GameID2 = @Name
WHERE Id = @AccountID

SET @Result = @@Error
end
else if( @g3 Is NULL OR Len(@g3) = 0)
begin
UPDATE AccountCharacter SET GameID3 = @Name
WHERE Id = @AccountID

SET @Result = @@Error
end
else if( @g4 Is NULL OR Len(@g4) = 0)
begin
UPDATE AccountCharacter SET GameID4 = @Name
WHERE Id = @AccountID

SET @Result = @@Error
end
else if( @g5 Is NULL OR Len(@g5) = 0)
begin
UPDATE AccountCharacter SET GameID5 = @Name
WHERE Id = @AccountID

SET @Result = @@Error
end
else
begin
SET @Result = 0x03
GOTO TranProcEnd
end
end

if( @Result <> 0 )
begin
GOTO TranProcEnd
end
else
begin
INSERT INTO dbo.Character(AccountID, Name, cLevel, LevelUpPoint, Class, Strength, Dexterity, Vitality, Energy, Inventory,MagicList,
Life, MaxLife, Mana, MaxMana, MapNumber, MapPosX, MapPosY, MDate, LDate, Quest, DbVersion, Leadership,money )
SELECT @AccountID As AccountID, @Name As Name, Level, 0, @Class As Class,
Strength, Dexterity, Vitality, Energy, Inventory,MagicList, Life, MaxLife, Mana, MaxMana, MapNumber, MapPosX, MapPosY,
getdate() As MDate, getdate() As LDate, Quest, DbVersion, Leadership,0
FROM DefaultClassType WHERE Class = @Class

SET @Result = @@Error
end

TranProcEnd:
IF ( @Result <> 0 )
ROLLBACK TRAN
ELSE
COMMIT TRAN

ProcEnd:

SET NOCOUNT OFF
SET XACT_ABORT OFF

SELECT
CASE @Result
WHEN 0x00 THEN 0x01
WHEN 0x01 THEN 0x00
WHEN 0x03 THEN 0x03
ELSE 0x02
END AS Result
End


GO


2) The table for the seal effect: T_periodItem_info
bxq24SH.png


in the table all character were/are with the seal of wealth
 

FlamingArm

Member
Joined
Jan 3, 2012
Messages
56
Reaction score
3
need to add in the create character procedure that will add in the table T_periodItem_info
memb_guid (acc ID)
char (charname that is created from the procedure)
itemcode 6700;
optiontype 0;
item_effect1 6;
item_effect2 7;
UseTime 10080; (7 days)
ExpireDate createdate+7days;
 

FlamingArm

Member
Joined
Jan 3, 2012
Messages
56
Reaction score
3
INSERT INTO dbo.T_periodItem_info(memb_guid,char,itemcode,optiontype,item_effect1,item_effect2,UseTime,ExpireDate)
VALUES(@memb_guid, @name,6700,0,6,7,10080,getdate()+7)

now the problem is how to get the @mem_guid for the @name created to add in tables..
 

FlamingArm

Member
Joined
Jan 3, 2012
Messages
56
Reaction score
3
SELECT memb_guid
from MEMB_INFO, AccountCharacter
where memb___id = Id
and
(GameID1 = @name' or GameID2 = @name' or GameID3 = @name' or GameID4 = @name' or GameID5 = @name');

something like this gives me the game_uid of acc where @name is in one of the gameid
what to do next?)