Neler yeni

Foruma hoş geldin, Ziyaretçi

Silkroad Lobby | En İyi Silkroad Destek Forumu | Best Silkroad Support Forum | Silkroad Private Server Tanıtım Advertising | Phbot | Mbot | Sbot
Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

[Release]Various SQL Scripts to Improve you SRO experience

Admin

Silkroad Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Konular
30,467
Mesajlar
30,764
Tepkime puanı
43
Sro Yaşı
4 yıl 24 gün
Trophy Puan
48
Konum
Web sitesi
Sro Gold
310,114
1. Dont ask me to make this query faster
2. Dont flame me for being a lazyass and not using variables
3. Dont ask me for support
4. Dont PM me or anything else
5. If this has been posted b4, i dont give a fucking shit
6. EvaTools blablabla does that ye, but i had to write this cuz our eva didnt wanna work due to some heavy server lags...


PHP Code:[/LEFT]
<code style="white-space:nowrap"> <!-- php buffer start --><code> Declare @Charname varchar (64)<br> Set @Charname = '600RR'<br> <br> Insert into _BlockedUser ([UserJID]<br> ,[UserID]<br> ,[Type]<br> ,[SerialNo]<br> ,[timeBegin]<br> ,[timeEnd])<br> <br> Values (<br> (Select UserJID from SRO_VT_SHARD.dbo._User Where CharID = <br> (Select CharID from SRO_VT_SHARD.dbo._Char Where CharName16 = @Charname)),<br> (Select StrUserID from dbo.TB_User where JID = (Select UserJID from SRO_VT_SHARD.dbo._User Where CharID = (Select CharID from SRO_VT_SHARD.dbo._Char Where CharName16 = @Charname))),<br> 1,<br> (Select MAX(SerialNo)+1 from _BlockedUser ),(Select MAX(timeBegin) from _BlockedUser),<br> (Select MAX(timeEnd) from _BlockedUser) ) <br> </code><!-- php buffer end --> </code>

PHP Code:
<code style="white-space:nowrap"> <!-- php buffer start --><code> Declare @JID bigint<br><br>Use SRO_VT_SHARD<br> Set @JID = (Select JID From [SRO_VT_SHARD].[dbo].[_User]<br> Where CharID= (Select CharID from _Char Where Charname16 = 'CHARNAME HERE') )<br><br>USE SRO_VT_ACCOUNT<br> UPDATE [SRO_VT_ACCOUNT].[dbo].[SK_Silk] Set silk_own=silk_own+10000 Where JID=@JID <br> </code><!-- php buffer end --> </code>
Change the "/" to "*" if u want to "increase" the dmg

PHP Code:
<code style="white-space:nowrap"> <!-- php buffer start --><code> use SRO_VT_SHARD<br><br>DECLARE @MobCodename VARCHAR (64)<br>DECLARE @DivideBy INT<br>Declare @DMG INT <br><br>Set @DMG = '3500'<br>SET @MobCodename = 'MOB_SD_KEISAS_3'<br>set @DivideBy = '2'<br><br>update _RefSkill set Param5 = Param5/@DivideBy where ID like (select DefaultSkill_1 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param5 = Param5/@DivideBy where ID like (select DefaultSkill_2 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param5 = Param5/@DivideBy where ID like (select DefaultSkill_3 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param5 = Param5/@DivideBy where ID like (select DefaultSkill_4 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param5 = Param5/@DivideBy where ID like (select DefaultSkill_5 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param5 = Param5/@DivideBy where ID like (select DefaultSkill_6 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param5 = Param5/@DivideBy where ID like (select DefaultSkill_7 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param5 = Param5/@DivideBy where ID like (select DefaultSkill_8 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param5 = Param5/@DivideBy where ID like (select DefaultSkill_9 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param5 = Param5/@DivideBy where ID like (select DefaultSkill_10 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br><br>update _RefSkill set Param6 = Param5/@DivideBy where ID like (select DefaultSkill_1 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param6 = Param5/@DivideBy where ID like (select DefaultSkill_2 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param6 = Param5/@DivideBy where ID like (select DefaultSkill_3 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param6 = Param5/@DivideBy where ID like (select DefaultSkill_4 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param6 = Param5/@DivideBy where ID like (select DefaultSkill_5 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param6 = Param5/@DivideBy where ID like (select DefaultSkill_6 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param6 = Param5/@DivideBy where ID like (select DefaultSkill_7 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param6 = Param5/@DivideBy where ID like (select DefaultSkill_8 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param6 = Param5/@DivideBy where ID like (select DefaultSkill_9 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG<br>update _RefSkill set Param6 = Param5/@DivideBy where ID like (select DefaultSkill_10 from _RefObjChar where ID = (select Link from _RefObjCommon where CodeName128 like @MobCodename))<br>and Param5 &gt; @DMG <br> </code><!-- php buffer end --> </code>
PHP Code:
<code style="white-space:nowrap"> <!-- php buffer start --><code> SELECT TOP 1000 [AccountID]<br> ,[JID]<br> ,[Gold]<br> FROM [SRO_VT_SHARD].[dbo].[_AccountJID]<br> Where AccountID like '%MISOB%' <br> </code><!-- php buffer end --> </code> This might be existing b4 since i dont remember writing this...


PHP Code:
<code style="white-space:nowrap"> <!-- php buffer start --><code> Use SRO_VT_SHARD<br>Select Distinct SG.GuildID, GM.CharName as GuildMaster, G.Name as GuildName, SG.FortressID, REFSG.CodeName128 As FortressName From _SiegeFortressRequest as SG<br>Right Join _RefSiegeFortress As REFSG On SG.FortressID = REFSG.FortressID<br>Right Join _Guild as G On G.ID = SG.GuildID<br>Right Join _RefSiegeFortress on REFSG.FortressID = SG.FortressID<br>Right Join _GuildMember as GM On GM.GuildID = SG.GuildID <br>Where GM.MemberClass = 0 and SG.RequestType = 0<br>Order By REFSG.CodeName128 Asc <br> </code><!-- php buffer end --> </code> PHP Code:
<code style="white-space:nowrap"> <!-- php buffer start --><code> Declare @Charname varchar (64)<br>Set @Charname = ''<br>Declare @charid int<br>Set @charid = (Select CharID from [SRO_VT_SHARD].[dbo].[_Char]Where CharName16 = @Charname)<br><br>SELECT * FROM [SRO_VT_ACCOUNT].[dbo].[SK_SilkBuyList]<br> Where UserJID = (Select UserJID From [SRO_VT_SHARD].[dbo].[_User] <br> </code><!-- php buffer end --> </code> This needs some pk2 edit and u might need more than 1 braincell for this...

i DONT give any support or anything, im just helping lazy asses like myself to have an easier life.. if this exists or can be made easier or anything dont PM me cuz i dont give a shit.

PHP Code:
<code style="white-space:nowrap"> <!-- php buffer start --><code> declare @newhwan int<br>declare @Charname varchar (30)<br><br>Update _Char Set HwanLevel = '0' where HwanLevel = '10'<br><br>Set @Charname = ( Select top 1 Charname16 from SRO_VT_SHARD.dbo.UniqueKills<br>order by SRO_VT_SHARD.dbo.UniqueKills.timestamp desc)<br><br>set @newhwan = ((select COUNT(Monster) from SRO_VT_SHARD.dbo.UniqueKills <br>where charname16 = @Charname and Monster = 'MOB__NAME_________')+100) -- 100 If first HWANLEVEL = 100...<br>-- HWANLVL 100 = Unique hunter; HWANLEVEL 101 = UniqueHunter #1 ... and so on... u have to media edit that<br><br>Update SRO_VT_SHARD.dbo._Char set SRO_VT_SHARD.dbo._Char.HwanLevel = <br>@newhwan where CharName16 = <br>@Charname AND (select top 1 [SRO_VT_SHARD].dbo.UniqueKills.Monster from [SRO_VT_SHARD].dbo.UniqueKills) = 'MOB_GOD_FLAME_COWKING_B4' <br> </code><!-- php buffer end --> </code> PHP Code:
<code style="white-space:nowrap"> <!-- php buffer start --><code> Select CH.Charname16, CH.CharID, LOGS.strDesc, REFc.CodeName128, LOGS.EventTime<br>from _LogEventItem as LOGS<br>Right join SRO_VT_SHARD.dbo._Char as CH on LOGS.CharID = CH.CharID<br>Right join SRO_VT_SHARD.dbo._RefObjCommon as REFC ON REFC.ID = Logs.ItemRefID<br>Where logs.dwData = '655369' and logs.Operation = 90 <br> </code><!-- php buffer end --> </code> dwdata 655369 = +1 .... to check the logs of +2.. 655369*2+1 (+1 = starting plus, *2 = next plus)
Operation = 90 = Success
Operation = 91 = Fail
to check it for each char add &gt;&gt; AND CH.Charname16 = 'charname' &lt;&lt;
Various SQL Scripts to Improve Your SRO Experience

Silkroad Online oyun deneyiminizi optimize etmek ve sunucunuzda daha verimli bir yönetim sağlamak istiyorsanız
doğru yerdesiniz. Bu makalede
özellikle TR Sro
Vietnam Silkroad (vSRO)
International Silkroad (iSRO) ve diğer özel sunucu yapılandırmaları için kullanılabilecek
çeşitli SQL betikleri paylaşıyoruz. Bu betikler
veritabanı temizliği
performans iyileştirmesi
ve güvenlik artırımı
gibi kritik alanlarda size destek sağlar.

Neden SQL Betiklerine İhtiyacınız Var?
Silkroad Private Server yöneticilerinin en çok karşılaştığı sorunlardan bazıları
gereksiz verilerin birikmesi
hesap çalınması riski
ve karakter eşyalarının bozulmasıdır
. Bu tür durumlar
oyuncu deneyimini olumsuz etkileyebilir. Ancak doğru SQL komutlarını kullanarak
bu sorunların büyük kısmını önleyebilir veya çözebilirsiniz.

1. Silinmemiş Karakterleri Temizleme
Oyuncular tarafından silinen fakat veritabanında hala yer kaplayan karakterler
sunucu performansını düşürebilir. Aşağıdaki betik
silinmiş olarak işaretlenmiş ancak fiziksel olarak silinmemiş karakterleri temizler:

DELETE FROM [CHAR] WHERE Del = 1;

2. Bozuk Eşya ve Envanter Onarımı
Bazı özel sunucularda eşya kaybı veya envanterde görünmeyen eşyalar gibi sorunlar yaşanabilir. Aşağıdaki betik
bozuk envanter kayıtlarını sıfırlayarak bu sorunu giderir:

UPDATE [ITEM] SET Slot = -1 WHERE CharID NOT IN (SELECT CharID FROM [CHAR]);

3. Güvenlik Artırımı: Şifre Hash Güncelleme
Eski sunucu sürümlerinde şifreler düz metin veya zayıf hash algoritmalarıyla saklanabilir. Aşağıdaki betik
güvenlik açığı oluşturabilecek hesapları tespit eder:

SELECT UserID
UserIP FROM [ACCOUNT] WHERE Password NOT LIKE '0x%';


4. Aktif Olmayan Hesapları Temizleme
Uzun süredir giriş yapılmamış hesaplar
hem veritabanı yükünü artırır hem de güvenlik riski oluşturabilir. Son 180 gün içinde giriş yapılmamış hesapları kaldırmak için:

DELETE FROM [ACCOUNT] WHERE LastLogin < DATEADD(day
-180
GETDATE());


Dikkat: Her Betiği Uygulamadan Önce Yedek Alın!
Bu betikler güçlü etkilere sahiptir ve yanlış kullanımı veri kaybına yol açabilir. Her zaman
veritabanınızın tam yedeğini alın ve test ortamında çalıştırmayı deneyin.

Sonuç
Bu SQL betikleri
Silkroad Private Server yöneticileri için paha biçilmez birer araçtır. Performans
güvenlik ve kullanıcı memnuniyeti açısından ciddi avantajlar sağlarlar. Daha fazla içerik ve destek için Silkroad Lobby'u takip etmeye devam edin.

Not: Bu betikler genel amaçlıdır. Sunucu sürümünüz ve yapılandırmanız farklıysa
uyarlama gerekebilir.



Various SQL Scripts to Improve Your SRO Experience

If you aim to optimize your Silkroad Online gameplay experience and manage your server more efficiently
you are in the right place. In this article
we share various SQL scripts specifically designed for TR Sro
Vietnam Silkroad (vSRO)
International Silkroad (iSRO)
and other private server setups. These scripts assist in critical areas such as database cleanup
performance enhancement
and security improvement
.

Why Do You Need SQL Scripts?
Some of the most common issues faced by Silkroad Private Server administrators include accumulation of unnecessary data
account theft risks
and corrupted character inventories
. Such problems can negatively impact player experience. However
most of these issues can be prevented or resolved by applying the correct SQL commands.

1. Cleaning Up Undeleted Characters
Characters marked as deleted by players but still occupying space in the database can degrade server performance. The following script removes characters flagged as deleted but not physically removed:

DELETE FROM [CHAR] WHERE Del = 1;

2. Repairing Corrupted Items and Inventories
On some private servers
players may encounter missing items or invisible inventory slots. The script below resolves this by resetting corrupted inventory records:

UPDATE [ITEM] SET Slot = -1 WHERE CharID NOT IN (SELECT CharID FROM [CHAR]);

3. Security Enhancement: Password Hash Update
Older server versions may store passwords in plain text or weak hash formats. The following query identifies accounts that pose potential security vulnerabilities:

SELECT UserID
UserIP FROM [ACCOUNT] WHERE Password NOT LIKE '0x%';


4. Removing Inactive Accounts
Accounts inactive for extended periods increase database load and introduce security risks. To delete accounts with no login in the last 180 days:

DELETE FROM [ACCOUNT] WHERE LastLogin < DATEADD(day
-180
GETDATE());


Caution: Always Backup Before Running Any Script!
These scripts have powerful effects and incorrect usage may lead to data loss. Always take a full database backup and test scripts in a safe environment first.

Conclusion
These SQL scripts are invaluable tools for Silkroad Private Server administrators. They offer significant advantages in performance
security
and user satisfaction. For more content and support
keep following Silkroad Lobby.

Note: These scripts are general-purpose. If your server version or configuration differs
custom adjustments may be required.
 

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kaydol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Üye ol
Giriş Yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş Yap

Tema düzenleyici

Tema özelletirmeleri