当然,服务端客户端方面的生化外观,四围属性这些参数需要大家自己设置,我这里只是让他可以由P正常变形,至于装备显示以及使用方面要靠大家自己去弄,这个不是我所擅长的,不外可以参考完美红月。另外说下之前发的药水存储过程今天也做了更新,可以自己加入其他物品功能而不影响药水使用了。
本存储过程合用于3944V2.1,其他版本未测试,理论上没题目。
修改的存储过程里加入一套新生化,就是在100-194号物品中找到的空余的没用的,由P变形而成,成功几率大家可以根据自己的需要调。
USE[redmoon]
GO
IFEXISTS(SELECT1FROMSYSOBJECTSWHEREID=OBJECT_ID(RMS_DOITEMGROWTH)ANDTYPE=P)
DROPPROCRMS_DOITEMGROWTH
GO
/******对象:StoredProcedure[dbo].[RMS_DOITEMGROWTH]脚本日期:12/31/201114:28:06******/
SETANSI_NULLSOFF
GO
SETQUOTED_IDENTIFIEROFF
GO
CREATEPROCEDURE[dbo].[RMS_DOITEMGROWTH]
@GameID varchar(14),
@WindowKind int,
@WindowIndex int,
@ItemKind int,
@ItemIndex int,
@AttackGrade int,
@StrengthGrade int,
@SpiritGrade int,
@DexterityGrade int,
@PowerGrade int,
@NextItemKind int,
@NextItemIndex int,
@NextAttackGrade int,
@NextStrengthGrade int,
@NextSpiritGrade int,
@NextDexterityGrade int,
@NextPowerGrade int
AS
setnocounton;
DECLARE@ItemID int,
@RandNum int,
@UpdateSuccess int,
@MaxAttackGradeint,
@DebugNewItem int,
@DebugUpgrade int
SELECT@ItemID=0,@UpdateSuccess=0,@MaxAttackGrade=15,
Declare@S1int,@S2int,@S3int,@S5int,@S8int,@S10int,@S12int,@S14int
SELECT @S1=15, --全新,R生化的变形几率
@S2=10, --二改生化的变形几率(G升级到S)
@S3=8, --三改生化的变形几率(S升级到P)
@S5=7, --4~5级的生化升级几率
@S8=6, --6~8级的生化升级几率
@S10=5, --9~~10级的生化升级几率
@S12=4, --11~12级的生化升级几率
@S14=3 --13~14级的生化升级几率
SELECTTOP1@ItemID=IDFROMtblSpecialItem1WHEREGameID=@GameIDANDWindowKind=@WindowKindANDWindowIndex=@WindowIndexAND
ItemKind=@ItemKindANDItemIndex=@ItemIndexANDAttackGrade=@AttackGradeANDStrengthGrade=@StrengthGradeANDSpiritGrade=@SpiritGrade
ANDDexterityGrade=@DexterityGradeANDPowerGrade=@PowerGradeANDPosition=1
IF@ItemID>0
BEGINTRANSACTIONREDZL
BEGIN
IF@DebugNewItem=1SET@RandNum=-1
ELSESET@RandNum=CAST(RAND()*100000ASINT)%100
if(@ItemIndexbetween180and186)and@AttackGrade>=4and@RandNum<3
Begin
SELECT@NextItemIndex=Case@ItemIndex
When180Then117
When181Then118
When182Then119
When183Then137
When184Then138
When185Then139
When186Then157
End,@NextAttackGrade=@AttackGrade,@NextStrengthGrade=@StrengthGrade,@NextSpiritGrade=@SpiritGrade,
@NextDexterityGrade=@DexterityGrade,@NextPowerGrade=@PowerGrade
End
ElseIf@MaxAttackGrade>4 Begin
if@AttackGrade<@MaxAttackGrade
BEGIN
IF@DebugUpgrade=1SET@RandNum=-1
ELSESET@RandNum=CAST(RAND()*100000ASINT)%100
if(@AttackGradebetween0and1)and@RandNum<=@S1Set@UpdateSuccess=1
Elseif@AttackGrade=2and@RandNum<=@S2Set@UpdateSuccess=1
Elseif@AttackGrade=3and@RandNum<=@S3Set@UpdateSuccess=1
Elseif(@AttackGradebetween4and5)and@RandNum<=@S5Set@UpdateSuccess=1
Elseif(@AttackGradebetween6and8)and@RandNum<=@S8Set@UpdateSuccess=1
Elseif(@AttackGradebetween9and10)and@RandNum<=@S10Set@UpdateSuccess=1
Elseif(@AttackGradebetween11and12)and@RandNum<=@S12Set@UpdateSuccess=1
Elseif(@AttackGradebetween13and14)and@RandNum<=@S14Set@UpdateSuccess=1
End
Select@NextItemIndex=CaseWhen(@AttackGrade<4and@UpdateSuccess=1)Then@ItemIndex+20else@ItemIndexEnd,
@NextAttackGrade=Case@UpdateSuccessWhen1Then@AttackGrade+1Else@AttackGradeEnd,
@NextStrengthGrade=Case@UpdateSuccessWhen1Then@StrengthGradeelse@NextStrengthGradeEnd,
@NextSpiritGrade=Case@UpdateSuccessWhen1Then@SpiritGradeelse@NextSpiritGradeEnd,
@NextDexterityGrade=Case@UpdateSuccessWhen1Then@DexterityGradeelse@NextDexterityGradeEnd,
@NextPowerGrade=Case@UpdateSuccessWhen1Then@PowerGradeelse@NextPowerGradeEnd
END
UPDATEtblSpecialItem1SETItemKind=@NextItemKind,ItemIndex=@NextItemIndex,AttackGrade=@NextAttackGrade,StrengthGrade=@NextStrengthGrade,
SpiritGrade=@NextSpiritGrade,DexterityGrade=@NextDexterityGrade,PowerGrade=@NextPowerGradeWHEREID=@ItemID
END
if@@Error=0
BEGIN
COMMITTRANSACTIONREDZL
END
ELSE
BEGIN
ROLLBACKTRANSACTIONREDZL
END