hl8882 发表于 2009-2-3 17:05:35

个人贡献图标问题

本人的库自己测试,个人贡献图标在游戏里不显示,就是玩家名字前面的那个图标,那位高手帮忙,谢谢

hl8882 发表于 2009-2-3 17:06:39

月贡献图标不显示,帮忙的高手,谢谢了!

lz2006 发表于 2009-2-3 18:22:54

/****** Object:Stored Procedure dbo.UPDATE_KNIGHTS_MARK    Script Date: 6/6/2006 6:03:32 PM ******/

-----------------------------------------------------------------------------------------------
-- UPDATE_KNIGHTS_MARK 프로시저
-- 나이트 기사단 마크를 입력 받아서 Knights 테이블에 업데이트 하고 버전을 자동으로 올려주는 프로시저
-- 업데이트에 트랜젝션을 걸고 1을 리턴하면 정상 처리가 되것으로 생각한다.
-- (처음에 SET @nRet = 0가 의미가 있는지는 모르겠다 )
-- UpdateKnightMark.sql        2003.6.9        정영훈
-----------------------------------------------------------------------------------------------


CREATE PROC UPDATE_KNIGHTS_MARK
@nRet SMALLINTOUTPUT,
@IDNum SMALLINT,@MarkLen SMALLINT, @KnightMark varbinary(2400)

AS

SET @nRet = 0

BEGIN TRAN
       
        UPDATE KNIGHTS
        SET Mark = @KnightMark,
        sMarkVersion = sMarkVersion + 1,
        sMarkLen = @MarkLen
        WHERE IDNum = @IDNum

COMMIT TRAN

SET @nRet = 1
RETURN


GO

lz2006 发表于 2009-2-3 18:23:10

/****** Object:Stored Procedure dbo.UPDATE_KNIGHTS    Script Date: 6/6/2006 6:03:32 PM ******/


CREATE PROCEDURE UPDATE_KNIGHTS

@nRet                smallint OUTPUT,
@Type                tinyint,
@UserId         char(21),
@KnightsIndex        smallint,
@Domanation        tinyint

AS

DECLARE @Row tinyint
DECLARE @Members tinyint
DECLARE @UserMembers tinyint
DECLARE @KnightsNumber smallint
DECLARE @ViceChief_1 char(21)
DECLARE @ViceChief_2 char(21)
DECLARE @ViceChief_3 char(21)
        SET @Row = 0
        SET @KnightsNumber = 0

        SELECT @Row = COUNT(*) FROM KNIGHTS WHERE IDNum = @KnightsIndex
       
        IF @Row = 0
        BEGIN
                SET @nRet =7
                RETURN
        END

        SELECT @Members = Members, @ViceChief_1=ViceChief_1, @ViceChief_2=ViceChief_2, @ViceChief_3=ViceChief_3 FROM KNIGHTS WHERE IDNum = @KnightsIndex
        IF @Type = 18
                BEGIN
                        SELECT @UserMembers = COUNT(*) FROM USERDATA WHERE Knights = @KnightsIndex
                        IF @Members >= 36 or @UserMembers >= 36
                        BEGIN
                                SET @nRet =8
                                RETURN
                        END
                END
        ELSE
                BEGIN
                        IF @Members > 36
                        BEGIN
                                SET @nRet =8
                                RETURN
                        END
                END

        SELECT @Row = COUNT(*) FROM USERDATA WHERE strUserId = @UserId
        IF @Row = 0
        BEGIN
                SET @nRet =2
                RETURN
        END

--SELECT @ViceChief_1=ViceChief_1, @ViceChief_2=ViceChief_2, @ViceChief_3=ViceChief_3FROM KNIGHTS WHERE IDNum = @KnightsIndex       

BEGIN TRAN       
        IF @Type = 18                                        -- JOIN
                BEGIN
                        UPDATE KNIGHTS SET Members = Members + 1 WHERE IDNum = @KnightsIndex
                        INSERT INTO KNIGHTS_USER ( sIDNum, strUserID) VALUES       (@KnightsIndex,@UserId )
                END
        ELSE IF @Type = 19 or @Type = 20 or @Type = 23        -- WITHDRAW, REMOVE, REJECT
                BEGIN
                        IF @Members <= 1
                                UPDATE KNIGHTS SET Members = 1 WHERE IDNum = @KnightsIndex
                        ELSE
                                UPDATE KNIGHTS SET Members = Members - 1 WHERE IDNum = @KnightsIndex
                        DELETE FROM KNIGHTS_USER WHERE strUserID = @UserId
                        IF @ViceChief_1 = @UserId
                                UPDATE KNIGHTS SET ViceChief_1 = NULL WHERE IDNum = @KnightsIndex       
                        IF @ViceChief_2 = @UserId
                                UPDATE KNIGHTS SET ViceChief_2 = NULL WHERE IDNum = @KnightsIndex       
                        IF @ViceChief_3 = @UserId
                                UPDATE KNIGHTS SET ViceChief_3 = NULL WHERE IDNum = @KnightsIndex       
                END
        ELSE IF @Type = 25                                -- Change Chief, 부단장중에 한명이 단장으로 승격시에는 부단장 데이타변수에서 부단장 이름을 빼준다
                BEGIN
                        UPDATE KNIGHTS SET Chief = @UserId WHERE IDNum = @KnightsIndex
                        IF @ViceChief_1 = @UserId
                                UPDATE KNIGHTS SET ViceChief_1 = NULL WHERE IDNum = @KnightsIndex       
                        IF @ViceChief_2 = @UserId
                                UPDATE KNIGHTS SET ViceChief_2 = NULL WHERE IDNum = @KnightsIndex       
                        IF @ViceChief_3 = @UserId
                                UPDATE KNIGHTS SET ViceChief_3 = NULL WHERE IDNum = @KnightsIndex       
                END
        ELSE IF @Type = 26                                -- Change Vice Chief
                BEGIN
                        IF @ViceChief_1 IS NOT NULL AND @ViceChief_2 IS NOT NULL AND @ViceChief_3 IS NOT NULL
                        BEGIN
                                SET @nRet =8
                                COMMIT TRAN
                                RETURN
                        END

                        IF @ViceChief_1 IS NULL
                                UPDATE KNIGHTS SET ViceChief_1 = @UserId WHERE IDNum = @KnightsIndex
                        ELSE IF @ViceChief_2 IS NULL
                                UPDATE KNIGHTS SET ViceChief_2 = @UserId WHERE IDNum = @KnightsIndex
                        ELSE IF @ViceChief_3 IS NULL
                                UPDATE KNIGHTS SET ViceChief_3 = @UserId WHERE IDNum = @KnightsIndex
                END
--        ELSE IF @Type = 27                                -- Change Officer
        --        UPDATE KNIGHTS SET ViceChief_2 = @UserId WHERE IDNum = @KnightsIndex

        IF @@ERROR <> 0
        BEGIN       
                ROLLBACK TRAN
                SET @nRet =2
                RETURN
        END

        IF @Type = 20        -- REMOVE
                UPDATE USERDATA SET Knights = -1, Fame = 0WHERE strUserId = @UserId
/*
        IF @Type = 18
                BEGIN
                        SELECT @KnightsNumber = Knights FROM USERDATA WHERE strUserId = @UserId
                        IF @KnightsNumber <> 0
                        BEGIN
                                ROLLBACK TRAN
                                SET @nRet =5
                                RETURN
                        END
                        UPDATE USERDATA SET Knights = @KnightsIndex, Fame = 5   WHERE strUserId = @UserId        -- TRAINEE
                END
        ELSE IF @Type = 19 or @Type = 20 or @Type = 23        -- WITHDRAW, REMOVE, REJECT
                UPDATE USERDATA SET Knights = 0, Fame = 0WHERE strUserId = @UserId
        ELSE IF @Type = 22                                -- ADMIT
                UPDATE USERDATA SET Fame = 3WHERE strUserId = @UserId
        ELSE IF @Type = 24                                -- Punish
                UPDATE USERDATA SET Fame = 6   WHERE strUserId = @UserId       
        ELSE IF @Type = 25                                -- Change Chief
                UPDATE USERDATA SET Fame = 1WHERE strUserId = @UserId
        ELSE IF @Type = 26                                -- Change Vice Chief
                UPDATE USERDATA SET Fame = 2WHERE strUserId = @UserId
        ELSE IF @Type = 27                                -- Change Officer
                UPDATE USERDATA SET Fame = 4WHERE strUserId = @UserId


               
        IF @@ERROR <> 0
        BEGIN       
                ROLLBACK TRAN
                SET @nRet =5
                RETURN
        END        */
       
COMMIT TRAN
SET @nRet =0

GO

lz2006 发表于 2009-2-3 18:23:35

CREATE PROCEDURE imbacodermyst AS

-- amfetamin ve www.frienzko.info i&ccedil;in oluşturulmuştur.
-- 27 Nisan 2008 tarihinde Myst tarafından oluşturulmuştur.
-- Script üzerinde değişiklik yapan Toptur , Delikli Nane POLO dur , Ajdardır
-- Tüm hakları saklı değil , a&ccedil;ıkta ve ortadadır

truncate table np_kings
insertnp_kings
        select top 100 strUserID, Loyalty,LoyaltyMonthly, 'gokhantasci'
        from USERDATA
        where Nation = 1
        order by Loyalty desc, LoyaltyMonthly desc

truncate table np_kings2
insertnp_kings2
        select top 100 strUserID, Loyalty,LoyaltyMonthly, 'gokhantasci'
        from USERDATA
        where Nation = 2
        order by Loyalty desc, LoyaltyMonthly desc


declare @KarusD varchar(21), @KarusH varchar(21), @KarusM varchar(21),@KarusS varchar(21), @KarusMi varchar(21), @KarusT varchar(21), @ElmoD varchar(21), @ElmoH varchar(21), @ElmoM varchar(21),@ElmoS varchar(21), @ElmoMi varchar(21), @ElmoT varchar(21)
select@KarusD = struserid from np_kings where nrank = 1
select@KarusH = struserid from np_kings where nrank = 2
select@KarusM = struserid from np_kings where nrank = 3
select@KarusS = struserid from np_kings where nrank = 4
select@KarusMi = struserid from np_kings where nrank = 5
select@KarusT = struserid from np_kings where nrank = 6
select@ElmoD = struserid from np_kings2 where nrank = 1
select@ElmoH = struserid from np_kings2 where nrank = 2
select@ElmoM = struserid from np_kings2 where nrank = 3
select@ElmoS = struserid from np_kings2 where nrank = 4
select@ElmoMi = struserid from np_kings2 where nrank = 5
select@ElmoT = struserid from np_kings2 where nrank = 6

/* Update part wowowo */
update user_knights_rank set strelmouserid = @ElmoD, strelmoknightsname = (select idname from knights where idnum = (select knights from userdata where struserid = @elmoD)), nElmoLoyalty = (select loyalty from userdata where struserid = @ElmoD), strkarususerid = @karusD, strkarusknightsname = (select idname from knights where idnum = (select knights from userdata where struserid = @karusD)), nkarusLoyalty = (select loyalty from userdata where struserid = @karusD) where shindex = 1
update user_knights_rank set strelmouserid = @ElmoH, strelmoknightsname = (select idname from knights where idnum = (select knights from userdata where struserid = @ElmoH)), nElmoLoyalty = (select loyalty from userdata where struserid = @ElmoH), strkarususerid = @KarusH, strkarusknightsname = (select idname from knights where idnum = (select knights from userdata where struserid = @KarusH)), nkarusLoyalty = (select loyalty from userdata where struserid = @KarusH) where shindex = 2
update user_knights_rank set strelmouserid = @ElmoM, strelmoknightsname = (select idname from knights where idnum = (select knights from userdata where struserid = @ElmoM)), nElmoLoyalty = (select loyalty from userdata where struserid = @ElmoM), strkarususerid = @KarusM, strkarusknightsname = (select idname from knights where idnum = (select knights from userdata where struserid = @KarusM)), nkarusLoyalty = (select loyalty from userdata where struserid = @KarusM) where shindex = 3
update user_knights_rank set strelmouserid = @ElmoS, strelmoknightsname = (select idname from knights where idnum = (select knights from userdata where struserid = @ElmoS)), nElmoLoyalty = (select loyalty from userdata where struserid = @ElmoS), strkarususerid = @KarusS, strkarusknightsname = (select idname from knights where idnum = (select knights from userdata where struserid = @KarusS)), nkarusLoyalty = (select loyalty from userdata where struserid = @KarusS) where shindex = 4
update user_knights_rank set strelmouserid = @ElmoMi, strelmoknightsname = (select idname from knights where idnum = (select knights from userdata where struserid = @ElmoMi)), nElmoLoyalty = (select loyalty from userdata where struserid = @ElmoMi), strkarususerid = @KarusMi, strkarusknightsname = (select idname from knights where idnum = (select knights from userdata where struserid = @KarusMi)), nkarusLoyalty = (select loyalty from userdata where struserid = @KarusMi) where shindex = 5
update user_knights_rank set strelmouserid = @ElmoT, strelmoknightsname = (select idname from knights where idnum = (select knights from userdata where struserid = @ElmoT)), nElmoLoyalty = (select loyalty from userdata where struserid = @ElmoT), strkarususerid = @KarusT, strkarusknightsname = (select idname from knights where idnum = (select knights from userdata where struserid = @KarusT)), nkarusLoyalty = (select loyalty from userdata where struserid = @KarusT) where shindex = 6
/* end of the update */

GO

hl8882 发表于 2009-2-3 18:27:09

是替换3个储存过程吗,谢谢,能详细点吗。笨人!

hl8882 发表于 2009-2-3 19:01:09

替换了3个储存过程,还是不好用

hl8882 发表于 2009-2-3 19:09:47

和客户端有关吗?

aiiq 发表于 2009-2-3 19:18:16

主要是表的数据未加,基本与储存过程无关
我的要手动更新表的贡献

hl8882 发表于 2009-2-3 19:21:21

楼上兄弟,怎么弄呢?说明下,谢谢
页: [1] 2
查看完整版本: 个人贡献图标问题