Start weapon Plus

05/18/2012 17:43 LegendM#1
Hello guys I want edit start weapon plus ,which procedure
Thanks
05/18/2012 18:43 ÑõÑ_Ŝŧóp#2
_AddNewChar

Edit:no, _FN_ADD_INITIAL_EQUIP
Quote:
UPDATE _Items SET RefItemID = @RefItemID, OptLevel = 0, Variance = 0, Data = @Data WHERE ID64 = @NewItem
05/18/2012 20:08 djfisring#3
Quote:
Originally Posted by ÑõÑ_Ŝŧóp View Post
_AddNewChar

Edit:no, _FN_ADD_INITIAL_EQUIP
Possible to change the item degree aswell?
05/18/2012 20:27 ÑõÑ_Ŝŧóp#4
Quote:
Originally Posted by djfisring View Post
Possible to change the item degree aswell?
not database side,its gameserver.exe and sro_client.exe (but not that easy)
05/19/2012 00:21 IceAmStiel#5
You cud do it "manually" means _ADD_ITEM_EXTERN the new Degree and switch the current Degree 1 Weapons with the new added ones - @ _Inventory, Slot 0 -> 12 = Equipped stuff

0 -> Head
1 -> Suit
2 -> Shoulder
3 -> Hands
4 -> Legs
5 -> Shoes
6 -> 1st Weapon Slot
7 -> Shield/Arrows
8 -> Job Item
9 -> Earring
10 -> Necklace
11 -> Ring 1
12 -> Ring 2
05/19/2012 00:38 CrazyGirL_ZSZC#6
u just need to go to AddNewChar then scroll down to end , u will see the start items will be like this ITEM_EU_DARKSTAFF_11_SET_B_RARE 0 , 0

first 0 how many items u wanna add , like scrolls if u edit the first 0 to 20 they will get 20 scrolls

secound 0 is the plus of item , thats as i remember , i hope i helped u
05/19/2012 11:19 LegendM#7
Quote:
Originally Posted by CrazyGirL_ZSZC View Post
u just need to go to AddNewChar then scroll down to end , u will see the start items will be like this ITEM_EU_DARKSTAFF_11_SET_B_RARE 0 , 0

first 0 how many items u wanna add , like scrolls if u edit the first 0 to 20 they will get 20 scrolls

secound 0 is the plus of item , thats as i remember , i hope i helped u
Rofl I know it,it's extra start items
05/19/2012 11:52 ✗EpicSoul✗#8
you could always make a if query for starting items. for example
if sword gets chosen, they will get a sword in their inventory. not spamming their inventory with items.
05/19/2012 12:07 IceAmStiel#9
Quote:
Originally Posted by ✗EpicSoul✗ View Post
you could always make a if query for starting items. for example
if sword gets chosen, they will get a sword in their inventory. not spamming their inventory with items.
Yup, e.g.


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 /*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 /* = 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 /* = 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 
05/19/2012 16:18 LegendM#10
Quote:
Originally Posted by IceAmStiel View Post
Yup, e.g.


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 /*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 /* = 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 /* = 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 
Wow thanks for amazing query