|
• الانـتـسـاب » Sep 2012
|
• رقـم العـضـويـة » 105765
|
• المشـــاركـات » 3,016
|
• الـدولـة » تحت البحر
|
• الـهـوايـة » hack Site
|
• اسـم الـسـيـرفـر » No Server
|
• الـجـنـس » Male
|
• نقـاط التقييم » 25
|
|
|
اعمل query ده
كود PHP:
USE [SRO_VT_SHARD] GO /****** Object: StoredProcedure [dbo].[_ADD_GM_GEAR] Script Date: 11/02/2013 23:44:41 ******/ /* * Purpose: Add custom equipment to GM character * Auto check: Will auto detect character existence, GM status, race and gender. * How to use: * - * USE [SRO_VT_SHARD] * EXEC [_ADD_GM_GEAR] '<character_name>', '<weapon_type>', '<equipment_type>', '<equipment_degree>', <plus> * - * Parameters: * <character_name>: duh? * <weapon_type>, could be one of these: * Chinese: BOW, SWORD, BLADE, TBLADE, SPEAR * Euro: SWORD, TSWORD, AXE, DAGGER, CROSSBOW, HARP, TSTAFF, STAFF, DARKSTAFF * <equipment_type>: HEAVY, LIGHT, or CLOTHES * <equipment_degree>: duh? * <plus>: duh? * * Example: EXEC [_ADD_GM_GEAR] 'Visenya', 'DAGGER', 'LIGHT', '11', 12 * Will give: 'Visenya' (11 Degree, +12 100% Str/Int 7) Dagger, Light Armor, Shield, Accessories, * 1B Gold, 10M SP, and 109 Inventory slots * * Notes: * - Feel free to change anything ;) * - GM levels determined by "sec_primary" group in TB_User table in [SRO_VT_ACCOUNT] database. * I use default GM levels of 1-6 and 10. (GM level check section) * - I put Egy A and B 11D gears as default. (Item codes section) * * Important stuff: * - Dependecies SP (make sure they are exist): _FN_ADD_INITIAL_EQUIP, _ADD_ITEM_EXTERN, _IsExistingCharName, _STRG_DEL_ITEM_NoTX * - This will replace any equipped items automatically, except weapon and shield. New weapon and shield will be added without replacing old ones. * * -- Witchy * */ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO
-- Check if SP exist, if not, auto create the SP IF NOT EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = '_ADD_GM_GEAR') EXEC('CREATE PROCEDURE [dbo].[_ADD_GM_GEAR] AS BEGIN SET NOCOUNT ON; END') GO
ALTER PROCEDURE [dbo].[_ADD_GM_GEAR] @CharName AS VARCHAR(64), @WPClass AS VARCHAR(16), @EQClass AS VARCHAR(16), @EQDegree AS VARCHAR(2), @EQPlus AS tinyINT AS -- Check if character exist DECLARE @isCharExist tinyINT
EXEC @isCharExist = [_IsExistingCharName] @CharNameToCheck = @CharName if (@isCharExist = 0) BEGIN RAISERROR('Character does not exist: %s', 1, 16, @CharName) RETURN -1 END
-- Check character and account related information (In relation with SRO_VT_ACCOUNT) DECLARE @CharID INT DECLARE @RefCharID INT DECLARE @UserJID INT DECLARE @GMLevel INT DECLARE @AccountName VARCHAR(32)
-- Check if character assigned to Account ID SELECT @CharID = CharID, @RefCharID = RefObjID FROM [_Char] WHERE CharName16 = @CharName SELECT @UserJID = UserJID FROM [_User] WHERE CharID = @CharID IF (@UserJID IS NULL OR @UserJID = 0) BEGIN RAISERROR('Account ID does not exist, character is not assigned to any user accounts: %s', 1, 16, @CharName) RETURN -2 END
-- Check GM levels (FEEL FREE TO CHANGE THESE) SELECT @GMLevel = sec_primary, @AccountName = StrUserID FROM [SRO_VT_ACCOUNT].[dbo].[TB_User] WHERE JID = @UserJID IF (@GMLevel IS NULL OR (@GMLevel > 6 AND @GMLevel < 10)) BEGIN RAISERROR('Account associated with this char does not have GM prvileges: %s', 1, 16, @AccountName) RETURN -3 END
-- Check character gender and race DECLARE @CharGender VARCHAR(1) DECLARE @CharRace VARCHAR(2)
IF (@RefCharID <= 14887 AND @RefCharID >= 14875) -- European Male BEGIN SET @CharGender = 'M' SET @CharRace = 'EU' END IF (@RefCharID <= 14900 AND @RefCharID >= 14888) -- European Female BEGIN SET @CharGender = 'W' SET @CharRace = 'EU' END IF (@RefCharID <= 1919 AND @RefCharID >= 1907) -- Chinesse Male BEGIN SET @CharGender = 'M' SET @CharRace = 'CH' END IF (@RefCharID <= 1932 AND @RefCharID >= 1920) -- Chinesse Female BEGIN SET @CharGender = 'W' SET @CharRace = 'CH' END
-- Setting up equipment -- Gears DECLARE @CodeNameHelm VARCHAR(256) DECLARE @CodeNameMail VARCHAR(256) DECLARE @CodeNameShoulder VARCHAR(256) DECLARE @CodeNameGauntlet VARCHAR(256) DECLARE @CodeNamePants VARCHAR(256) DECLARE @CodeNameBoots VARCHAR(256) DECLARE @RefHelmID INT DECLARE @RefMailID INT DECLARE @RefShoulderID INT DECLARE @RefGauntletID INT DECLARE @RefPantsID INT DECLARE @RefBootsID INT DECLARE @RefHelmLinkID INT DECLARE @RefMailLinkID INT DECLARE @RefShoulderLinkID INT DECLARE @RefGauntletLinkID INT DECLARE @RefPantsLinkID INT DECLARE @RefBootsLinkID INT DECLARE @DuraHelm INT DECLARE @DuraMail INT DECLARE @DuraShoulder INT DECLARE @DuraGauntlet INT DECLARE @DuraPants INT DECLARE @DuraBoots INT
-- Accessories DECLARE @CodeNameEarring VARCHAR(256) DECLARE @CodeNameNecklace VARCHAR(256) DECLARE @CodeNameRing VARCHAR(256) DECLARE @RefEarringID INT DECLARE @RefNecklaceID INT DECLARE @RefRingID INT DECLARE @RefEarringLinkID INT DECLARE @RefNecklaceLinkID INT DECLARE @RefRingLinkID INT
-- Weapon and Shield DECLARE @CodeNameWeapon VARCHAR(256) DECLARE @CodeNameShield VARCHAR(256) DECLARE @RefWeaponID INT DECLARE @RefShieldID INT DECLARE @RefWeaponLinkID INT DECLARE @RefShieldLinkID INT
-- Item codes (FEEL FREE TO CHANGE THESE) -- Gears SET @CodeNameHelm = 'ITEM_' + @CharRace + '_' + @CharGender + '_' + @EQClass + '_' + @EQDegree + '_HA_SET_B_RARE' SET @CodeNameMail = 'ITEM_' + @CharRace + '_' + @CharGender + '_' + @EQClass + '_' + @EQDegree + '_BA_SET_B_RARE' SET @CodeNameShoulder = 'ITEM_' + @CharRace + '_' + @CharGender + '_' + @EQClass + '_' + @EQDegree + '_SA_SET_B_RARE' SET @CodeNameGauntlet = 'ITEM_' + @CharRace + '_' + @CharGender + '_' + @EQClass + '_' + @EQDegree + '_AA_SET_B_RARE' SET @CodeNamePants = 'ITEM_' + @CharRace + '_' + @CharGender + '_' + @EQClass + '_' + @EQDegree + '_LA_SET_B_RARE' SET @CodeNameBoots = 'ITEM_' + @CharRace + '_' + @CharGender + '_' + @EQClass + '_' + @EQDegree + '_FA_SET_B_RARE'
-- Accessories SET @CodeNameEarring = 'ITEM_' + @CharRace + '_EARRING_' + @EQDegree + '_SET_A_RARE' SET @CodeNameNecklace = 'ITEM_' + @CharRace + '_NECKLACE_' + @EQDegree + '_SET_A_RARE' SET @CodeNameRing = 'ITEM_' + @CharRace + '_RING_' + @EQDegree + '_SET_A_RARE'
-- Weapon and Shield SET @CodeNameWeapon = 'ITEM_' + @CharRace + '_' + @WPClass + '_' + @EQDegree + '_SET_A_RARE' SET @CodeNameShield = 'ITEM_' + @CharRace + '_SHIELD_' + @EQDegree + '_SET_A_RARE'
-- Get Reference ID and Link ID -- Gears SELECT @RefHelmID = ID, @RefHelmLinkID = link FROM [_RefObjCommon] WHERE CodeName128 = @CodeNameHelm SELECT @RefMailID = ID, @RefMailLinkID = link FROM [_RefObjCommon] WHERE CodeName128 = @CodeNameMail SELECT @RefShoulderID = ID, @RefShoulderLinkID = link FROM [_RefObjCommon] WHERE CodeName128 = @CodeNameShoulder SELECT @RefGauntletID = ID, @RefGauntletLinkID = link FROM [_RefObjCommon] WHERE CodeName128 = @CodeNameGauntlet SELECT @RefPantsID = ID, @RefPantsLinkID = link FROM [_RefObjCommon] WHERE CodeName128 = @CodeNamePants SELECT @RefBootsID = ID, @RefBootsLinkID = link FROM [_RefObjCommon] WHERE CodeName128 = @CodeNameBoots
-- Accessories SELECT @RefEarringID = ID, @RefEarringLinkID = link FROM [_RefObjCommon] WHERE CodeName128 = @CodeNameEarring SELECT @RefNecklaceID = ID, @RefNecklaceLinkID = link FROM [_RefObjCommon] WHERE CodeName128 = @CodeNameNecklace SELECT @RefRingID = ID, @RefRingLinkID = link FROM [_RefObjCommon] WHERE CodeName128 = @CodeNameRing
-- Weapon and Shield SELECT @RefWeaponID = ID, @RefWeaponLinkID = link FROM [_RefObjCommon] WHERE CodeName128 = @CodeNameWeapon SELECT @RefShieldID = ID, @RefShieldLinkID = link FROM [_RefObjCommon] WHERE CodeName128 = @CodeNameShield
IF ( @RefHelmID IS NULL OR @RefHelmID = 0 OR @RefMailID IS NULL OR @RefMailID = 0 OR @RefShoulderID IS NULL OR @RefShoulderID = 0 OR @RefGauntletID IS NULL OR @RefGauntletID = 0 OR @RefPantsID IS NULL OR @RefPantsID = 0 OR @RefBootsID IS NULL OR @RefBootsID = 0 OR @RefEarringID IS NULL OR @RefEarringID = 0 OR @RefNecklaceID IS NULL OR @RefNecklaceID = 0 OR @RefRingID IS NULL OR @RefRingID = 0 OR @RefWeaponID IS NULL OR @RefWeaponID = 0 OR @RefShieldID IS NULL OR @RefShieldID = 0 ) BEGIN RAISERROR('Invalid item reference ID, check item codename.', 1, 16) RETURN -4 END IF ( @RefHelmLinkID IS NULL OR @RefHelmLinkID = 0 OR @RefMailLinkID IS NULL OR @RefMailLinkID = 0 OR @RefShoulderLinkID IS NULL OR @RefShoulderLinkID = 0 OR @RefGauntletLinkID IS NULL OR @RefGauntletLinkID = 0 OR @RefPantsLinkID IS NULL OR @RefPantsLinkID = 0 OR @RefBootsLinkID IS NULL OR @RefBootsLinkID = 0 OR @RefEarringLinkID IS NULL OR @RefEarringLinkID = 0 OR @RefNecklaceLinkID IS NULL OR @RefNecklaceLinkID = 0 OR @RefRingLinkID IS NULL OR @RefRingLinkID = 0 OR @RefWeaponLinkID IS NULL OR @RefWeaponLinkID = 0 OR @RefShieldLinkID IS NULL OR @RefShieldLinkID = 0 ) BEGIN RAISERROR('Invalid link reference ID, check item codename.', 1, 16) RETURN -5 END
-- Get durability for 'Data' SELECT @DuraHelm = Dur_L from [_RefObjItem] WHERE ID = @RefHelmLinkID SELECT @DuraMail = Dur_L from [_RefObjItem] WHERE ID = @RefMailLinkID SELECT @DuraShoulder = Dur_L from [_RefObjItem] WHERE ID = @RefShoulderLinkID SELECT @DuraGauntlet = Dur_L from [_RefObjItem] WHERE ID = @RefGauntletLinkID SELECT @DuraPants = Dur_L from [_RefObjItem] WHERE ID = @RefPantsLinkID SELECT @DuraBoots = Dur_L from [_RefObjItem] WHERE ID = @RefBootsLinkID
-- Clear inventory (Just equipped items) ;) -- Update: will only clear equipped items only, so you don't have to take them off -- New weapon and shield will be added to inventory, not replacing old ones DECLARE @TSlots INT DECLARE @CharSlot INT SET @CharSlot = 0 SELECT @TSlots = COUNT(Slot) from _Inventory WHERE CharID = @CharID WHILE @CharSlot <= @TSlots BEGIN IF (@CharSlot < 6 OR (@CharSlot > 7 AND @CharSlot < 13)) BEGIN EXEC [_STRG_DEL_ITEM_NoTX] 1, @CharID, @CharSlot END SET @CharSlot = @CharSlot + 1 END
-- Start adding items to equipment slots BEGIN TRANSACTION
-- Add other stuff (make sure they're exist in database and Media) EXEC [_ADD_ITEM_EXTERN] @CharName, 'ITEM_MALL_REVERSE_RETURN_SCROLL', 10, 0 EXEC [_ADD_ITEM_EXTERN] @CharName, 'ITEM_MALL_RETURN_SCROLL_HIGH_SPEED', 10, 0 EXEC [_ADD_ITEM_EXTERN] @CharName, 'ITEM_MALL_CHAR_SKIN_CHANGE_SCROLL', 1, 0
DECLARE @HelmItemID64 BIGINT DECLARE @MailItemID64 BIGINT DECLARE @ShoulderItemID64 BIGINT DECLARE @GauntletItemID64 BIGINT DECLARE @PantsItemID64 BIGINT DECLARE @BootsItemID64 BIGINT
DECLARE @EarringItemID64 BIGINT DECLARE @NecklaceItemID64 BIGINT DECLARE @RingLItemID64 BIGINT DECLARE @RingRItemID64 BIGINT
DECLARE @WeaponItemID64 BIGINT DECLARE @ShieldItemID64 BIGINT
SET @HelmItemID64 = 0 SET @MailItemID64 = 0 SET @ShoulderItemID64 = 0 SET @GauntletItemID64 = 0 SET @PantsItemID64 = 0 SET @BootsItemID64 = 0
SET @EarringItemID64 = 0 SET @NecklaceItemID64 = 0 SET @RingLItemID64 = 0 SET @RingRItemID64 = 0
SET @WeaponItemID64 = 0 SET @ShieldItemID64 = 0
EXEC @HelmItemID64 = [_FN_ADD_INITIAL_EQUIP] @CharID, 0, @RefHelmID, @DuraHelm IF (@HelmItemID64 <= 0) BEGIN ROLLBACK TRANSACTION RETURN -4 END
EXEC @MailItemID64 = [_FN_ADD_INITIAL_EQUIP] @CharID, 1, @RefMailID, @DuraMail IF (@MailItemID64 <= 0) BEGIN ROLLBACK TRANSACTION RETURN -5 END
EXEC @ShoulderItemID64 = [_FN_ADD_INITIAL_EQUIP] @CharID, 2, @RefShoulderID, @DuraShoulder IF (@ShoulderItemID64 <= 0) BEGIN ROLLBACK TRANSACTION RETURN -6 END
EXEC @GauntletItemID64 = [_FN_ADD_INITIAL_EQUIP] @CharID, 3, @RefGauntletID, @DuraGauntlet IF (@GauntletItemID64 <= 0) BEGIN ROLLBACK TRANSACTION RETURN -7 END
EXEC @PantsItemID64 = [_FN_ADD_INITIAL_EQUIP] @CharID, 4, @RefPantsID, @DuraPants IF (@PantsItemID64 <= 0) BEGIN ROLLBACK TRANSACTION RETURN -8 END
EXEC @BootsItemID64 = [_FN_ADD_INITIAL_EQUIP] @CharID, 5, @RefBootsID, @DuraBoots IF (@BootsItemID64 <= 0) BEGIN ROLLBACK TRANSACTION RETURN -9 END
EXEC @EarringItemID64 = [_FN_ADD_INITIAL_EQUIP] @CharID, 9, @RefEarringID, 0 IF (@EarringItemID64 <= 0) BEGIN ROLLBACK TRANSACTION RETURN -10 END
EXEC @NecklaceItemID64 = [_FN_ADD_INITIAL_EQUIP] @CharID, 10, @RefNecklaceID, 0 IF (@NecklaceItemID64 <= 0) BEGIN ROLLBACK TRANSACTION RETURN -11 END
EXEC @RingLItemID64 = [_FN_ADD_INITIAL_EQUIP] @CharID, 11, @RefRingID, 0 IF (@RingLItemID64 <= 0) BEGIN ROLLBACK TRANSACTION RETURN -12 END
EXEC @RingRItemID64 = [_FN_ADD_INITIAL_EQUIP] @CharID, 12, @RefRingID, 0 IF (@RingRItemID64 <= 0) BEGIN ROLLBACK TRANSACTION RETURN -13 END
EXEC @WeaponItemID64 = [_ADD_ITEM_EXTERN] @CharName, @CodeNameWeapon, 1, 0 IF (@WeaponItemID64 <= 0) BEGIN ROLLBACK TRANSACTION RETURN -14 END
EXEC @ShieldItemID64 = [_ADD_ITEM_EXTERN] @CharName, @CodeNameShield, 1, 0 IF (@ShieldItemID64 <= 0) BEGIN ROLLBACK TRANSACTION RETURN -15 END
-- Make 100% and FB -- Gears UPDATE _Items SET OptLevel = @EQPlus, Variance = 34359738336, MagParamNum = 4, MagParam1 = 30064771144, MagParam2 = 30064771150, MagParam3 = 858993459290, MagParam4 = 257698037898, MagParam5 = NULL, MagParam6 = NULL, MagParam7 = NULL, MagParam8 = NULL, MagParam9 = NULL, MagParam10 = NULL, MagParam11 = NULL, MagParam12 = NULL WHERE ID64 = @HelmItemID64 OR ID64 = @MailItemID64 OR ID64 = @ShoulderItemID64 OR ID64 = @GauntletItemID64 OR ID64 = @PantsItemID64 OR ID64 = @BootsItemID64 -- Accessories UPDATE _Items SET OptLevel = @EQPlus, Variance = 1073741823, MagParamNum = 7, MagParam1 = 30064771144, MagParam2 = 30064771150, MagParam3 = 85899346100, MagParam4 = 85899346094, MagParam5 = 85899346088, MagParam6 = 85899346106, MagParam7 = 85899346112, MagParam8 = NULL, MagParam9 = NULL, MagParam10 = NULL, MagParam11 = NULL, MagParam12 = NULL WHERE ID64 = @EarringItemID64 OR ID64 = @NecklaceItemID64 OR ID64 = @RingLItemID64 OR ID64 = @RingRItemID64 -- Weapon UPDATE _Items SET OptLevel = @EQPlus, Variance = 34359738336, MagParamNum = 5, MagParam1 = 30064771144, MagParam2 = 30064771150, MagParam3 = 858993459290, MagParam4 = 429496729714, MagParam5 = 257698037862, MagParam6 = NULL, MagParam7 = NULL, MagParam8 = NULL, MagParam9 = NULL, MagParam10 = NULL, MagParam11 = NULL, MagParam12 = NULL WHERE ID64 = @WeaponItemID64 -- Shield UPDATE _Items SET OptLevel = @EQPlus, Variance = 34359738336, MagParamNum = 4, MagParam1 = 30064771144, MagParam2 = 30064771150, MagParam3 = 858993459290, MagParam4 = 429496729726, MagParam5 = NULL, MagParam6 = NULL, MagParam7 = NULL, MagParam8 = NULL, MagParam9 = NULL, MagParam10 = NULL, MagParam11 = NULL, MagParam12 = NULL WHERE ID64 = @ShieldItemID64
-- Set other attributes UPDATE _Char SET RemainGold = 1000000000, RemainSkillPoint = 10000000, InventorySize = 109 WHERE _Char.CharID = @CharID
COMMIT TRANSACTION
RETURN 1 -- EOF
الـحاجات اللى هـتعدل علـيها فى الـكويرى
كود:
<character_name>', '<weapon_type>', '<equipment_type>', '<equipment_degree>', <plus>
|