Startitems - Gender restriction?
Hey everyone,
yes the thread title is a bit strange but didn't found a better one ;p
I was just wondering if it's possible to add Items for EU or CH Chars for example if I create a Chinese Char I wanna get a Sword and with an EU Char I wanna receive a Staff.
Stored Procedure is just
exec _ADD_ITEM_EXTERN @CharName,'ITEMNAME',5,1
so I'm wondering are there any way's?
- greetz
Re: Startitems - Gender restriction?
Extract the stuff you need for your procedure, I made that once in order to add new items for every char relating to its gender and race
PHP Code:
Declare
@BasicWCode varchar(max), @Race varchar(max), @CharName varchar(max),
@WeaponType varchar(max), @Degree varchar(max), @WeaponCodeName varchar(max),
@SOX varchar(max), @Gender varchar(max), @BasicGearCode varchar(max),
@GearType varchar(max), @SuitCodeName varchar(max), @LegsCodeName varchar(max),
@ShoesCodeName varchar(max), @ShieldYN int, @ShieldCodeName varchar(max),
@Plus int;
SET @CharName = 'Lukhach_HP16' /*Already defined @ Add_New_Char*/
SET @Degree = '01' /*1st Degree on default*/
SET @SOX = 'C' /*SUN*/
SET @Plus = 9 /*e.g.*/
SET @Gender = (
CASE
WHEN (((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) >= 1907) AND ((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) <= 1919))
OR
(((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) >= 14875) AND ((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) <= 14887))
THEN 'M'
WHEN (((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) >= 1920) AND ((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) <= 1932))
OR
(((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) >= 14888) AND ((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) <= 14900))
THEN 'W'
ELSE NULL
END
);
SET @Race = (
CASE
WHEN (((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) >= 1907) AND ((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) <= 1919))
OR
(((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) >= 1920) AND ((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) <= 1932))
THEN 'CH'
WHEN (((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) >= 14875) AND ((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) <= 14887))
OR
(((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) >= 14888) AND ((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) <= 14900))
THEN 'EU'
ELSE NULL
END
);
SET @BasicWCode =
(
SELECT TOP 1 ref.CodeName128 FROM _RefObjCommon
JOIN _Char as chart on @CharName = chart.CharName16
JOIN _Inventory as invent on chart.CharID = invent.CharID
JOIN _Items as items on invent.ItemID = items.ID64
JOIN _RefObjCommon as ref on items.RefItemID = ref.ID
WHERE invent.Slot = 6 /* = Weapon */ AND chart.CharName16 = @CharName
)
SET @WeaponType =
(
SELECT SUBSTRING(@BasicWCode,PATINDEX('%'+@Race+'%',@BasicWCode)+3,(PATINDEX('%'+@Degree+'%',@BasicWCode)-1)-(PATINDEX('%'+@Race+'%',@BasicWCode)+3))
);
SET @WeaponCodeName = 'ITEM_'+@Race+'_'+@WeaponType+'_'+@Degree+'_'+@SOX+'_'+'RARE'
SET @ShieldYN = 0
IF (@WeaponType = 'SWORD' OR @WeaponType = 'BLADE' OR @WeaponType = 'STAFF' OR @WeaponType = 'DARKSTAFF')
begin
SET @ShieldCodeName = 'ITEM_'+@Race+'_SHIELD_'+@Degree+'_'+@SOX+'_RARE'
SET @ShieldYN = 1
exec _ADD_ITEM_EXTERN @CharName,@ShieldCodeName,1,@Plus
end
SET @BasicGearCode =
(
SELECT TOP 1 ref.CodeName128 FROM _RefObjCommon
JOIN _Char as chart on @CharName = chart.CharName16
JOIN _Inventory as invent on chart.CharID = invent.CharID
JOIN _Items as items on invent.ItemID = items.ID64
JOIN _RefObjCommon as ref on items.RefItemID = ref.ID
WHERE invent.Slot = 1 /* = Suit */ AND chart.CharName16 = @CharName
);
SET @GearType =
(
SELECT SUBSTRING(@BasicGearCode,PATINDEX('%'+@Gender+'%',@BasicGearCode)+2,(PATINDEX('%'+@Degree+'%',@BasicGearCode)-1)-(PATINDEX('%'+@Gender+'%',@BasicGearCode)+2))
);
SET @SuitCodeName = 'ITEM_'+@Race+'_'+@Gender+'_'+@GearType+'_'+@Degree+'_BA_'+@SOX+'_'+'RARE'
SET @LegsCodeName = 'ITEM_'+@Race+'_'+@Gender+'_'+@GearType+'_'+@Degree+'_LA_'+@SOX+'_'+'RARE'
SET @ShoesCodeName = 'ITEM_'+@Race+'_'+@Gender+'_'+@GearType+'_'+@Degree+'_FA_'+@SOX+'_'+'RARE'
exec _ADD_ITEM_EXTERN @CharName,@WeaponCodeName,1,@Plus
exec _ADD_ITEM_EXTERN @CharName,@SuitCodeName,1,@Plus
exec _ADD_ITEM_EXTERN @CharName,@LegsCodeName,1,@Plus
exec _ADD_ITEM_EXTERN @CharName,@ShoesCodeName,1,@Plus
Re: Startitems - Gender restriction?
Quote:
Originally Posted by
Caipi
Extract the stuff you need for your procedure, I made that once in order to add new items for every char relating to its gender and race
PHP Code:
Declare
@BasicWCode varchar(max), @Race varchar(max), @CharName varchar(max),
@WeaponType varchar(max), @Degree varchar(max), @WeaponCodeName varchar(max),
@SOX varchar(max), @Gender varchar(max), @BasicGearCode varchar(max),
@GearType varchar(max), @SuitCodeName varchar(max), @LegsCodeName varchar(max),
@ShoesCodeName varchar(max), @ShieldYN int, @ShieldCodeName varchar(max),
@Plus int;
SET @CharName = 'Lukhach_HP16' /*Already defined @ Add_New_Char*/
SET @Degree = '01' /*1st Degree on default*/
SET @SOX = 'C' /*SUN*/
SET @Plus = 9 /*e.g.*/
SET @Gender = (
CASE
WHEN (((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) >= 1907) AND ((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) <= 1919))
OR
(((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) >= 14875) AND ((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) <= 14887))
THEN 'M'
WHEN (((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) >= 1920) AND ((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) <= 1932))
OR
(((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) >= 14888) AND ((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) <= 14900))
THEN 'W'
ELSE NULL
END
);
SET @Race = (
CASE
WHEN (((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) >= 1907) AND ((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) <= 1919))
OR
(((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) >= 1920) AND ((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) <= 1932))
THEN 'CH'
WHEN (((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) >= 14875) AND ((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) <= 14887))
OR
(((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) >= 14888) AND ((SELECT RefObjID FROM _Char WHERE CharName16 like @CharName) <= 14900))
THEN 'EU'
ELSE NULL
END
);
SET @BasicWCode =
(
SELECT TOP 1 ref.CodeName128 FROM _RefObjCommon
JOIN _Char as chart on @CharName = chart.CharName16
JOIN _Inventory as invent on chart.CharID = invent.CharID
JOIN _Items as items on invent.ItemID = items.ID64
JOIN _RefObjCommon as ref on items.RefItemID = ref.ID
WHERE invent.Slot = 6 /* = Weapon */ AND chart.CharName16 = @CharName
)
SET @WeaponType =
(
SELECT SUBSTRING(@BasicWCode,PATINDEX('%'+@Race+'%',@BasicWCode)+3,(PATINDEX('%'+@Degree+'%',@BasicWCode)-1)-(PATINDEX('%'+@Race+'%',@BasicWCode)+3))
);
SET @WeaponCodeName = 'ITEM_'+@Race+'_'+@WeaponType+'_'+@Degree+'_'+@SOX+'_'+'RARE'
SET @ShieldYN = 0
IF (@WeaponType = 'SWORD' OR @WeaponType = 'BLADE' OR @WeaponType = 'STAFF' OR @WeaponType = 'DARKSTAFF')
begin
SET @ShieldCodeName = 'ITEM_'+@Race+'_SHIELD_'+@Degree+'_'+@SOX+'_RARE'
SET @ShieldYN = 1
exec _ADD_ITEM_EXTERN @CharName,@ShieldCodeName,1,@Plus
end
SET @BasicGearCode =
(
SELECT TOP 1 ref.CodeName128 FROM _RefObjCommon
JOIN _Char as chart on @CharName = chart.CharName16
JOIN _Inventory as invent on chart.CharID = invent.CharID
JOIN _Items as items on invent.ItemID = items.ID64
JOIN _RefObjCommon as ref on items.RefItemID = ref.ID
WHERE invent.Slot = 1 /* = Suit */ AND chart.CharName16 = @CharName
);
SET @GearType =
(
SELECT SUBSTRING(@BasicGearCode,PATINDEX('%'+@Gender+'%',@BasicGearCode)+2,(PATINDEX('%'+@Degree+'%',@BasicGearCode)-1)-(PATINDEX('%'+@Gender+'%',@BasicGearCode)+2))
);
SET @SuitCodeName = 'ITEM_'+@Race+'_'+@Gender+'_'+@GearType+'_'+@Degree+'_BA_'+@SOX+'_'+'RARE'
SET @LegsCodeName = 'ITEM_'+@Race+'_'+@Gender+'_'+@GearType+'_'+@Degree+'_LA_'+@SOX+'_'+'RARE'
SET @ShoesCodeName = 'ITEM_'+@Race+'_'+@Gender+'_'+@GearType+'_'+@Degree+'_FA_'+@SOX+'_'+'RARE'
exec _ADD_ITEM_EXTERN @CharName,@WeaponCodeName,1,@Plus
exec _ADD_ITEM_EXTERN @CharName,@SuitCodeName,1,@Plus
exec _ADD_ITEM_EXTERN @CharName,@LegsCodeName,1,@Plus
exec _ADD_ITEM_EXTERN @CharName,@ShoesCodeName,1,@Plus
But where do you add this? IN AddNewChar or?
Re: Startitems - Gender restriction?
Quote:
Originally Posted by
Caipi
Extract the stuff you need for your procedure, I made that once in order to add new items for every char relating to its gender and race
i took it from jangan's repack of perfection , thanks to him and you =P