Dev.Ri3o |
28-06-2016 12:50 PM |
رد: طلب تغيير نسبة النجاح في plus & تغيير Returned spawn point
دى نسبة ال Lucky
https://www.sendspace.com/file/brmkok
و بالنسبة لموضوع ال CharRevive
هتحط ده بدل اللى عندك فى _ResetCharPos
كود:
USE [SRO_RI3O_HYPER_SH]
GO
/****** Object: StoredProcedure [dbo].[_ResetCharPos] Script Date: 28/06/2016 11:52:52 ص ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[_ResetCharPos]
as
set xact_abort on
begin transaction
-- reset aux pos
update _Char set TelRegion = 0, TelPosX = 0, TelPosY = 0, TelPosZ = 0, DiedRegion = 0, DiedPosX = 0, DiedPosY = 0, DiedPosZ = 0
-- initialize char pos
declare @RefTelID int
declare @RegionID int
declare @PosX real
declare @PosY real
declare @PosZ real
declare @CharID int
declare @TelID int
declare char_cursor cursor fast_forward for
select CharID, AppointedTeleport
from _Char with(nolock)
open char_cursor
fetch next from char_cursor into @CharID, @TelID
while (@@fetch_status = 0)
begin
if (@TelID is not null and @TelID <> 0)
begin
set @RegionID = 0
set @PosX = 0
set @PosY = 0
set @PosZ = 0
select @RefTelID = ID from _RefObjCommon where ID = @TelID
select @RegionID = GenRegionID, @PosX = GenPos_X, @PosY = GenPos_Y, @PosZ = GenPos_Z from _RefTeleport where AssocRefObjID = @RefTelID
update _char set LatestRegion = @RegionID, PosX = @PosX, PosY = @PosY, PosZ = @PosZ where CharID = @CharID
end
fetch next from char_cursor into @CharID, @TelID
end
close char_cursor
deallocate char_cursor
commit transaction
وكمان _ModifyCharPos
كود:
USE [SRO_RI3O_HYPER_SH]
GO
/****** Object: StoredProcedure [dbo].[_ModifyCharPos] Script Date: 28/06/2016 11:54:17 ص ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
-- ¾È¹Ù²ãµµ µÇ°Ú´Ù by novice.
ALTER PROCEDURE [dbo].[_ModifyCharPos]
@name varchar(64),
@region smallint,
@x float,
@y float,
@z float,
@worldID smallint
AS
-- not existing character
declare @charid int
set @charid = 0
select @charid = charid from _char where charname16 = @name
if (@@rowcount = 0 or @charid is null or @charid = 0)
begin
select -2
return
end
-- failed to rename
update _Char set LatestRegion = @region, PosX = @x, PosY = @y, PosZ = @z, WorldID = @worldID where CharName16 = @name
if (@@error <> 0 or @@rowcount = 0)
begin
select -4
return
end
select 1
return
و _CharInstanceWorldDataUpdate
كود:
USE [SRO_RI3O_HYPER_SH]
GO
/****** Object: StoredProcedure [dbo].[_CharInstanceWorldDataUpdate] Script Date: 28/06/2016 12:00:26 م ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER procedure [dbo].[_CharInstanceWorldDataUpdate]
@CharID int,
@DungeonKeyID int,
@WorldID int,
@LayerID int,
@Openedtime datetime,
@RegionID int,
@PosX float,
@PosY float,
@PosZ float,
@IsActivated tinyint,
@EnterCount int,
@LastEnterTime datetime
AS
BEGIN TRANSACTION
IF( EXISTS( SELECT WorldID FROM _CharInstanceworldData WHERE Charid = @CharID and IsActivated = 1) )
BEGIN
UPDATE _CharInstanceworldData SET IsActivated = 0 WHERE Charid = @CharID
END
IF( EXISTS( SELECT WorldID FROM _CharInstanceworldData WHERE CharID = @CharID and WorldID = @WorldID) )
begin
UPDATE _CharInstanceworldData
SET
DungeonKeyID = @DungeonKeyID
, LayerID = @LayerID
, OpenedTime = @Openedtime
, RegionID = @RegionID
, PosX = @PosX
, PosY = @PosY
, PosZ = @PosZ
, IsActivated = @IsActivated
, EnterCount = @EnterCount
, LastEnterTime = @LastEnterTime
WHERE CharID = @CharID and WorldID = @WorldID
END
ELSE
BEGIN
insert _CharInstanceworldData
values( @CharID, @DungeonKeyID, @WorldID, @LayerID, @Openedtime,@RegionID, @PosX, @PosY, @PosZ ,@IsActivated, @EnterCount, @LastEnterTime )
END
COMMIT TRANSACTION
RETURN 1
و_InsertRefTeleLink
كود:
USE [SRO_RI3O_HYPER_SH]
GO
/****** Object: StoredProcedure [dbo].[_InsertRefTeleLink] Script Date: 28/06/2016 12:15:39 م ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_InsertRefTeleLink]
@Service int,
@OwnerTeleport_CodeName varchar(128),
@TargetTeleport_CodeName varchar(128),
@Fee int,
@RestrictBindMethod tinyint,
@RunTimeTeleportMethod tinyint,
@CheckResult tinyint,
@Restrict1 int,
@RT1_Data1 int,
@RT1_Data2 int,
@RT1_Desc varchar(128),
@Restrict2 int,
@RT2_Data1 int,
@RT2_Data2 int,
@RT2_Desc varchar(128),
@Restrict3 int,
@RT3_Data1 int,
@RT3_Data2 int,
@RT3_Desc varchar(128),
@Restrict4 int,
@RT4_Data1 int,
@RT4_Data2 int,
@RT4_Desc varchar(128),
@Restrict5 int,
@RT5_Data1 int,
@RT5_Data2 int,
@RT5_Desc varchar(128)
as
declare @OwnerTeleport int
declare @TargetTeleport int
begin transaction
begin
exec _GetRestrictTeleLink @Restrict1,@RT1_Data1 output,@RT1_Data2 output,@RT1_Desc
exec _GetRestrictTeleLink @Restrict2,@RT2_Data1 output,@RT2_Data2 output,@RT2_Desc
exec _GetRestrictTeleLink @Restrict3,@RT3_Data1 output,@RT3_Data2 output,@RT3_Desc
exec _GetRestrictTeleLink @Restrict4,@RT4_Data1 output,@RT4_Data2 output,@RT4_Desc
exec _GetRestrictTeleLink @Restrict5,@RT5_Data1 output,@RT5_Data2 output,@RT5_Desc
select @OwnerTeleport = ID from _RefTeleport where CodeName128 = @OwnerTeleport_CodeName
select @TargetTeleport = ID from _RefTeleport where CodeName128 = @TargetTeleport_CodeName
if (@OwnerTeleport is null or @TargetTeleport is null )
begin
rollback transaction
raiserror('owner ȤÀº target teleport°¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù. [owner: %s, target: %s]', @OwnerTeleport_CodeName, @TargetTeleport_CodeName)
return
end
if (exists (select * from _RefTeleLink where OwnerTeleport = @OwnerTeleport and TargetTeleport = @TargetTeleport))
begin
update _RefTeleLink
set Service = @Service,
Fee = @Fee, RestrictBindMethod = @RestrictBindMethod, RunTimeTeleportMethod = @RunTimeTeleportMethod, CheckResult = @CheckResult,
Restrict1 = @Restrict1, Data1_1 = @RT1_Data1, Data1_2 = @RT1_Data2,
Restrict2 = @Restrict2, Data2_1 = @RT2_Data1, Data2_2 = @RT2_Data2,
Restrict3 = @Restrict3, Data3_1 = @RT3_Data1, Data3_2 = @RT3_Data2,
Restrict4 = @Restrict4, Data4_1 = @RT4_Data1, Data4_2 = @RT4_Data2,
Restrict5 = @Restrict5, Data5_1 = @RT5_Data1, Data5_2 = @RT5_Data2
where OwnerTeleport = @OwnerTeleport and TargetTeleport = @TargetTeleport
end
else
begin
insert into _RefTeleLink
values (@Service,
@OwnerTeleport,
@TargetTeleport,
@Fee,
@RestrictBindMethod,
@RunTimeTeleportMethod,
@CheckResult,
@Restrict1, @RT1_Data1, @RT1_Data2,
@Restrict2, @RT2_Data1, @RT2_Data2,
@Restrict3, @RT3_Data1, @RT3_Data2,
@Restrict4, @RT4_Data1, @RT4_Data2,
@Restrict5, @RT5_Data1, @RT5_Data2)
end
if (@@error <> 0)
begin
rollback transaction
raiserror('TeleportLink Ãß°¡(ȤÀº °»½Å) ½ÇÆÐ! [%s, %s]', 1, 16, @OwnerTeleport_CodeName, @TargetTeleport_CodeName)
return
end
commit transaction
end
و_InsertRefTeleport
كود:
USE [SRO_RI3O_HYPER_SH]
GO
/****** Object: StoredProcedure [dbo].[_InsertRefTeleport] Script Date: 28/06/2016 12:15:58 م ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_InsertRefTeleport]
@Service as int,
@CodeName128 as varchar(129),
@GenWorldCodeName as varchar(129),
@AssocObjCodeName as varchar(129),
@ZoneName128 as varchar(129),
@GenRegionID as int,
@GenPos_X as smallint,
@GenPos_Y as smallint,
@GenPos_Z as smallint,
@GenAreaRadius as smallint,
@CanBeResurrectPos as tinyint,
@CanGotoResurrectPos as tinyint,
@BindInteractionMask as tinyint
as
declare @GenWorldID smallint
declare @assoc_ref_obj int
declare @count int
begin transaction
begin
select @GenWorldID = ID from _RefGame_World where WorldCodeName128 = @GenWorldCodeName
if (@GenWorldID < 1)
begin
rollback transaction
raiserror('¿ùµå¾ÆÀ̵𰡠¾ø´Ù! È®ÀÎ ¿ä¸Á! [%s]', 1, 16, @GenWorldCodeName)
return
end
select @count = count(*) from _RefTeleport where AssocRefObjID = @assoc_ref_obj or CodeName128 = @CodeName128
if (@count > 1)
begin
rollback transaction
raiserror('µ¿ÀÏÇÑ ÅÚ·¹Æ÷Æ®°¡ Áߺ¹µÇ¾î ÁöÁ¤µÈ µí ÇÏ´Ù! È®ÀÎ ¿ä¸Á! [%s]', 1, 16, @CodeName128)
return
end
set @assoc_ref_obj = 0
if (@AssocObjCodeName <> 'xxx')
begin
execute @assoc_ref_obj = _FindRefObjCommonID @AssocObjCodeName
if (@assoc_ref_obj is null or @assoc_ref_obj = 0)
begin
rollback transaction
raiserror('AttachÇÒ ¿ÀºêÁ§Æ®¸¦ ãÀ» ¼ö ¾ø´Ù! : %s - %s', 1, 16, @CodeName128, @AssocObjCodeName)
return
end
end
-- sql ÀÌ unsigned short¸¦ Áö¿øÇÏÁö ¾Ê´Â °ü°è·Î WORD ÇüÀ¸·Î ÀԷµǴ RegionID¸¦ ShortÇüÀ¸·Î º¯È¯ÇѰŴÙ... À½¼ö·Î ¹Ù²Û°ÅÁö ¹¹...
if (@GenRegionID > 32767)
begin
set @GenRegionID = (@GenRegionID - 32767 - 2) - 32767
end
if (exists (select * from _RefTeleport where CodeName128 = @CodeName128))
begin
update _RefTeleport
set Service = @Service, AssocRefObjID = @assoc_ref_obj,
ZoneName128 = @ZoneName128,
GenRegionID = @GenRegionID,
GenPos_X = @GenPos_X, GenPos_Y = @GenPos_Y, GenPos_Z = @GenPos_Z,
GenAreaRadius = @GenAreaRadius,
CanBeResurrectPos = @CanBeResurrectPos, CanGotoResurrectPos = @CanGotoResurrectPos,
GenWorldID = @GenWorldID, BindInteractionMask = @BindInteractionMask
where CodeName128 = @CodeName128
end
else
begin
insert into _RefTeleport
values (@Service, @CodeName128, @assoc_ref_obj, @ZoneName128,
@GenRegionID, @GenPos_X, @GenPos_Y, @GenPos_Z, @GenAreaRadius,
@CanBeResurrectPos, @CanGotoResurrectPos, @GenWorldID, @BindInteractionMask)
end
if (@@error <> 0)
begin
rollback transaction
if (@count <> 0)
begin raiserror('Teleport µ¥ÀÌÅÍ Update ½ÇÆÐ! :%s', 1, 16, @CodeName128) end
else
begin raiserror('Teleport µ¥ÀÌÅÍ Insert ½ÇÆÐ! :%s', 1, 16, @CodeName128) end
return
end
commit transaction
end
|