Merhaba MMOZirve halkı bu gün sizlere normalde server.cfg'e ekli olmayan kodlar ile servere nasıl müdahale edeceğinizi göztereceğim
Direk Başlayalım.
Başlangıç Olarak Server full iken servere Premiumu olan kişiler direk girmesi için ayarları vereceğim.
İlk olarak Aşağıdaki kodları yazdığım kısımların altına ekleyiniz. (Server.cfg dosyasının içine)
GlobalManager
PHP:
Download Server
PHP:
Shard Server
PHP:
GameServer
PHP:
Daha Sonra aşağıdaki Quaryleri databasenize okutun
/****** Object: Table [dbo].[_FreeAccess] Script Date: 03/31/2012 11:22:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[_FreeAccess](
[JID] [int] NOT NULL,
[EndTime] [datetime] NOT NULL,
[ShardID] [int] NOT NULL
) ON [PRIMARY]
GO
/****** Object: StoredProcedure [dbo].[_CheckFreeAccess] Script Date: 03/31/2012 11:24:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
----------------------------------------------------------------------
-- ภฺภฏมขฑูภฬ ฐกดษวัม๖ธฆ ศฎภฮวฯฑโ ภงวั วมทฮฝรมฎ
----------------------------------------------------------------------
CREATE PROCEDURE [dbo].[_CheckFreeAccess]
@JID INT, @ShardID INT
AS
-- วุด็ JID ภว วุด็ ปตๅภว BanLvl ภฬ ฑโบปภฬ พฦดั พึต้ฟก EndTime ภป ฐกมฎฟยดู.
DECLARE @EnDTIme DATETIME
SET @EnDTIme = 0
-- ว๖ภ็ ผณฐ่ ป๓ BANLevel ภฬ 4 ( BanLevel รึฐํฤก ) ภฮ ฐๆฟ์ฟกธธ FA ฐก ฐกดษวฯดู.
SELECT TOP 1 @EnDTIme = Endtime
FROM _FreeAccess
WHERE JID = @JID
AND ShardID = @ShardID
ORDER BY EndTime DESC
if exists (select 1 from TB_User where JID=@JID and block=1)
begin
Select 1
return
end
IF ( @EnDTIme <> 0 ) AND ( DATEDIFF( SECOND, GETDATE(), @EnDTIme ) > 0 )
BEGIN
-- ฝรฐฃย๗ฐก พ็ผ๖, ฝรฐฃ ฟฉภฏฐก ภึดยณ๐
SELECT 1
END
ELSE
BEGIN
-- ฝรฐฃย๗ฐก ภฝผ๖, ฝรฐฃ ฟฉภฏฐก พ๘ดยณ๐
SELECT 0
END
GO
/****** Object: StoredProcedure [dbo].[_ResetFreeAccess] Script Date: 03/31/2012 11:24:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
----------------------------------------------------------------------
-- ณฏยฅฐก ม๖ณญ พึต้ภบ ป่มฆวุ น๖ธฐดู.
----------------------------------------------------------------------
CREATE PROCEDURE [dbo].[_ResetFreeAccess]
AS
DELETE FROM _FreeAccess WHERE GETDATE() > EndTime
GO
----------------------------------------------------------------------
-- ณฏยฅฐก ม๖ณญ พึต้ภบ ป่มฆวุ น๖ธฐดู.
----------------------------------------------------------------------
ALTER PROCEDURE [dbo].[_ResetFreeAccess]
AS
DELETE FROM _FreeAccess WHERE GETDATE() > EndTime
/****** Object: Table [dbo].[_FreeAccessBanLvl] Script Date: 03/31/2012 11:25:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[_FreeAccessBanLvl](
[JID] [int] NOT NULL,
[BanLvl] [int] NOT NULL,
[EndTime] [datetime] NOT NULL
) ON [PRIMARY]
GO
Yukarıdaki İşlemlerin Hepsini Yaptıysanız Artık Full Serverinizde sattığınız premiumlu oyuncular isrodaki gibi tekte girebilecekler.
Sıra Geldi Game Servere Müdahale Edebileceğiniz kodlara
CONTROL_NOTIFY_SPAWN_UNIQUE_MONSTER_MSG O -> Unique ve benzeri şeyleri gameserverde yazdırma (Default Olarak Açık Geliyor)
DO_NOT_SPAWN_MONSTER_OVER_MAX_SERVICE_LEVEL ON -> Tam emin değilim ama ayarlanan lvl in üstündeki canavarların çıkmamasını sağlıyor (Default Kapalı olarak geliyor)
ShowGameServerDisplay -> GameServerde Ayrıntılı olarak gösterilmesini açar
GiantMonster_SpawnRatio -> Giant çıkma oranını ayarlıyabilirsiniz
WINTER_EVENT_2009 EVENT_ON -> Kış eventini açma (Bazı dblerde hatalı Forumda ayrıntılı bilgi var)
PARTYMONSTER_SPAWN (ON/OFF) -> Parti canavarları çıkıp çıkmama ayarı (Default olarak açık geliyor)
MAX_SQUAD_MEMBER_COUNT 8 -> Parti üye sayısı
ENTER_LIMIT_CONDITION_TRADE_COS_RIDING(ON/OFF) -> Trader zorunluluğu getirme ?
ENTER_LIMIT_CONDITION_TRADE_COS_NOT_RIDING(ON/OFF) -> Traderliği kapatma ?
ENTER_LIMIT_CONDITION_FRPVP_VOUCHER_PUT_ON(ON/OFF) -> Pvp giyilme zorunluluğu ?
ENTER_LIMIT_CONDITION_FRPVP_VOUCHER_TAKE_OFF(ON/OFF)-> Pvp modu açılıp açılmama
ENTER_LIMIT_CONDITION_TEMPLE_ASSOCIATION_MINIMUM_NUM 1 -> Tahmini olarak temple Jop leveli diye düşünüyorum
ENTER_LIMIT_CONDITION_TEMPLE_ASSOCIATION_RATE_MERCHANT_HUNTER 1 -> Tahmini olarak Hunter temple Jop leveli diye düşünüyorum
ENTER_LIMIT_CONDITION_TEMPLE_ASSOCIATION_RATE_THIEF 1 -> Tahmini olarak Thief temple Jop leveli diye düşünüyorum
NOTEXIST_PARTY_RESTRICTION_ATTACK (ON) -> Tahmini Parti olarak saldırmayı kapatıyor
NOTEXIST_PARTY_RESTRICTION_ITEM (ON/OFF) -> Tahmini Parti olarak item toplamayı kapatıyor
NOTEXIST_PARTY_RESTRICTION_EXP (ON/OFF) -> Tahmini Parti olarak exp kazanmayı kapatıyor
Direk Başlayalım.
Başlangıç Olarak Server full iken servere Premiumu olan kişiler direk girmesi için ayarları vereceğim.
İlk olarak Aşağıdaki kodları yazdığım kısımların altına ekleyiniz. (Server.cfg dosyasının içine)
GlobalManager
PHP:
MaxUserForNonePCBangIP 1
Download Server
PHP:
USER_LIMIT 1000
Shard Server
PHP:
EnablePremiumFreeAccess 1
PHP:
BanUselessUserWhenFreeAccess 1
GameServer
PHP:
PCSpeedRatio 1000
Daha Sonra aşağıdaki Quaryleri databasenize okutun
Spoyler
USE [SRO_XX_ACCOUNT]Spoyler
GO/****** Object: Table [dbo].[_FreeAccess] Script Date: 03/31/2012 11:22:58 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[_FreeAccess](
[JID] [int] NOT NULL,
[EndTime] [datetime] NOT NULL,
[ShardID] [int] NOT NULL
) ON [PRIMARY]
GO
Spoyler
USE [SRO_XX_ACCOUNT]Spoyler
GO/****** Object: StoredProcedure [dbo].[_CheckFreeAccess] Script Date: 03/31/2012 11:24:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
----------------------------------------------------------------------
-- ภฺภฏมขฑูภฬ ฐกดษวัม๖ธฆ ศฎภฮวฯฑโ ภงวั วมทฮฝรมฎ
----------------------------------------------------------------------
CREATE PROCEDURE [dbo].[_CheckFreeAccess]
@JID INT, @ShardID INT
AS
-- วุด็ JID ภว วุด็ ปตๅภว BanLvl ภฬ ฑโบปภฬ พฦดั พึต้ฟก EndTime ภป ฐกมฎฟยดู.
DECLARE @EnDTIme DATETIME
SET @EnDTIme = 0
-- ว๖ภ็ ผณฐ่ ป๓ BANLevel ภฬ 4 ( BanLevel รึฐํฤก ) ภฮ ฐๆฟ์ฟกธธ FA ฐก ฐกดษวฯดู.
SELECT TOP 1 @EnDTIme = Endtime
FROM _FreeAccess
WHERE JID = @JID
AND ShardID = @ShardID
ORDER BY EndTime DESC
if exists (select 1 from TB_User where JID=@JID and block=1)
begin
Select 1
return
end
IF ( @EnDTIme <> 0 ) AND ( DATEDIFF( SECOND, GETDATE(), @EnDTIme ) > 0 )
BEGIN
-- ฝรฐฃย๗ฐก พ็ผ๖, ฝรฐฃ ฟฉภฏฐก ภึดยณ๐
SELECT 1
END
ELSE
BEGIN
-- ฝรฐฃย๗ฐก ภฝผ๖, ฝรฐฃ ฟฉภฏฐก พ๘ดยณ๐
SELECT 0
END
GO
Spoyler
USE [SRO_XX_ACCOUNT]Spoyler
GO/****** Object: StoredProcedure [dbo].[_ResetFreeAccess] Script Date: 03/31/2012 11:24:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
----------------------------------------------------------------------
-- ณฏยฅฐก ม๖ณญ พึต้ภบ ป่มฆวุ น๖ธฐดู.
----------------------------------------------------------------------
CREATE PROCEDURE [dbo].[_ResetFreeAccess]
AS
DELETE FROM _FreeAccess WHERE GETDATE() > EndTime
GO
----------------------------------------------------------------------
-- ณฏยฅฐก ม๖ณญ พึต้ภบ ป่มฆวุ น๖ธฐดู.
----------------------------------------------------------------------
ALTER PROCEDURE [dbo].[_ResetFreeAccess]
AS
DELETE FROM _FreeAccess WHERE GETDATE() > EndTime
Spoyler
USE [SRO_XX_SHARD]Spoyler
GO/****** Object: Table [dbo].[_FreeAccessBanLvl] Script Date: 03/31/2012 11:25:12 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[_FreeAccessBanLvl](
[JID] [int] NOT NULL,
[BanLvl] [int] NOT NULL,
[EndTime] [datetime] NOT NULL
) ON [PRIMARY]
GO
Yukarıdaki İşlemlerin Hepsini Yaptıysanız Artık Full Serverinizde sattığınız premiumlu oyuncular isrodaki gibi tekte girebilecekler.
Sıra Geldi Game Servere Müdahale Edebileceğiniz kodlara
CONTROL_NOTIFY_SPAWN_UNIQUE_MONSTER_MSG O -> Unique ve benzeri şeyleri gameserverde yazdırma (Default Olarak Açık Geliyor)
DO_NOT_SPAWN_MONSTER_OVER_MAX_SERVICE_LEVEL ON -> Tam emin değilim ama ayarlanan lvl in üstündeki canavarların çıkmamasını sağlıyor (Default Kapalı olarak geliyor)
ShowGameServerDisplay -> GameServerde Ayrıntılı olarak gösterilmesini açar
GiantMonster_SpawnRatio -> Giant çıkma oranını ayarlıyabilirsiniz
WINTER_EVENT_2009 EVENT_ON -> Kış eventini açma (Bazı dblerde hatalı Forumda ayrıntılı bilgi var)
PARTYMONSTER_SPAWN (ON/OFF) -> Parti canavarları çıkıp çıkmama ayarı (Default olarak açık geliyor)
MAX_SQUAD_MEMBER_COUNT 8 -> Parti üye sayısı
ENTER_LIMIT_CONDITION_TRADE_COS_RIDING(ON/OFF) -> Trader zorunluluğu getirme ?
ENTER_LIMIT_CONDITION_TRADE_COS_NOT_RIDING(ON/OFF) -> Traderliği kapatma ?
ENTER_LIMIT_CONDITION_FRPVP_VOUCHER_PUT_ON(ON/OFF) -> Pvp giyilme zorunluluğu ?
ENTER_LIMIT_CONDITION_FRPVP_VOUCHER_TAKE_OFF(ON/OFF)-> Pvp modu açılıp açılmama
ENTER_LIMIT_CONDITION_TEMPLE_ASSOCIATION_MINIMUM_NUM 1 -> Tahmini olarak temple Jop leveli diye düşünüyorum
ENTER_LIMIT_CONDITION_TEMPLE_ASSOCIATION_RATE_MERCHANT_HUNTER 1 -> Tahmini olarak Hunter temple Jop leveli diye düşünüyorum
ENTER_LIMIT_CONDITION_TEMPLE_ASSOCIATION_RATE_THIEF 1 -> Tahmini olarak Thief temple Jop leveli diye düşünüyorum
NOTEXIST_PARTY_RESTRICTION_ATTACK (ON) -> Tahmini Parti olarak saldırmayı kapatıyor
NOTEXIST_PARTY_RESTRICTION_ITEM (ON/OFF) -> Tahmini Parti olarak item toplamayı kapatıyor
NOTEXIST_PARTY_RESTRICTION_EXP (ON/OFF) -> Tahmini Parti olarak exp kazanmayı kapatıyor


