المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : طلب تغيير نسبة النجاح في plus & تغيير Returned spawn point


lord_ahmed_x
28-06-2016, 07:38 AM
السلام عليكم ورحمة الله وبركاته
انا عندي طلبين بعد اذنكم :

اول طلب هو تغيير نسبة النجاح في plus فكنت محتاج كويري يعدله ل :
+1 90%
+2 80%
+3 70%
+4 60%
+5 50%
+6 40%
+7 30%
+8 20%
+9 10%
+10 5%
+11 3%
+12 1%


السؤال التاني هو اني فاتح بس Jg & DW وعايز اي كركتر جديد يتعمل يبقى اتوماتيك return point & respawn بتاعو يبقى Jangan لان دلوقتي هو بينزل في jangan بس لو مات او استعمل return scroll بيرجع نفس المكان الي واقف فيه بالضبط لازم عشان يرجع المدينة يعمل Designate as return/recall point من عند teleport انا عيزها اتوماتيك معمولة jangan لكل الكركترات الجديدة.

واسف جدا على الاطالة وشكرا مقدما للجميع

Dev.Ri3o
28-06-2016, 12:50 PM
دى نسبة ال 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

lord_ahmed_x
29-06-2016, 06:58 AM
اولا الف شكر ليك
بالنسبة للتغيير نسبة + تمام اتغيرت بس برده لقيت النسب عليا والحمد لله لقيت موضوع هنا وصعبتها شوية وخلتهاUSE [SRO_VT_SHARD]
UPDATE _RefObjItem SET Param2 = 1515210300, Param3 = 2629370, Param4 = 20753, Param5 = 0, Param6 = 0 , Param7 = 0 , Param8 = 0 WHERE ID IN (SELECT Link FROM _RefObjCommon WHERE CodeName128 LIKE '%PROB_UP_A%')


وده لينك الموضوع http://www.silkroad4arab.com/vb/showthread.php?t=470243



اما السؤال التاني كل الكويريهات مشت تمام ما عدا اخر واحد وجيبلي الايرور دهMsg 213, Level 16, State 1, Procedure _InsertRefTeleport, Line 67
Column name or number of supplied values does not match table definition.

Dev.Ri3o
29-06-2016, 12:27 PM
بالنسبة لنسبة نجح ال +++ هى لاتشمل ال Premium فممكن تكون عالية لو نت شغال ب premium وبالنسبة لل Procedure الاخير جرب تشيلو و حط الاصلى بتاعك وشوف ايه النظم هتتحل ولا ايه ؟

Dev.Ri3o
29-06-2016, 12:58 PM
لو متغيرتش يبقى المشكلة من Client للعبة نفسها و البرمجة بتعتو ...

lord_ahmed_x
29-06-2016, 01:06 PM
لو متغيرتش يبقى المشكلة من Client للعبة نفسها و البرمجة بتعتو ...

انا عملت كده فعلا وبرده نفس المشكلة ... على العموم الف شكر تعبتك معايا

Dev.Ri3o
29-06-2016, 01:09 PM
##

Dev.BigBear
05-07-2016, 08:48 PM
##