PoiSSioN Admin
Mesaj Sayısı : 127 Rep Puanı : 333 Kayıt tarihi : 02/08/09 Yaş : 29 Nerden : Bilmem x) Ruh hali : Takımın :
| Konu: [Paylaşım] DC olunca karakteri ışınlama C.tesi Eyl. 19, 2009 5:38 pm | |
| Selam, Bir çoğunuz karakter oyuna girince veya oyundan çıkınca bknz. account_login veya account_logout prosedürlerinde savaşta DC olanları update userdata set Zone = '21' where Zone = '101' or Zone = '102' gibi bir komutu ekleyip bu oyuncuları moradona ışınlıyorsunuz ama bu aslında yanlış bir komut kullanımıdır ve SQL'i aşırı derecede yorar karakter sayısıylada alakalıdır.Bende bunun için bir prosedür hazırladım CZde DC olanları CZ towna atıyor, savaşta DC olanları lunara gidiş kapısına atıyor.Bifrostta DC olanlarıda moradona yolluyor ve sadece bu hesaba bağlı karakterleri yapıyor. Kod : - Kod:
-
CREATE PROCEDURE [dbo].[FIX_WARP] (@strAccountID varchar(30)) AS DECLARE @strNation int, @strCharID1 varchar(30),@strCharID2 varchar(30),@strCharID3 varchar(30) BEGIN TRAN SELECT @strNation = bNation , @strCharID1 = strCharID1 , @strCharID2 = strCharID2, @strCharID3 = strCharID3 from account_char where strAccountID=@strAccountID IF @strNation = 1 BEGIN update userdata set Zone = '21' where Zone = '31' and (struserid=@strCharID1 or struserid=@strCharID2 or struserid=@strCharID3) update userdata set Zone = '1',px='187730',py='1660',pz='17130' where (Zone = '101' or Zone = '111' or Zone = '103' or Zone = '102') and nation='1' and (struserid=@strCharID1 or struserid=@strCharID2 or struserid=@strCharID3) update userdata set Zone = '201',pz='109300',py='300',px='138000' where Zone = '201' and Nation='1' and (struserid=@strCharID1 or struserid=@strCharID2 or struserid=@strCharID3) END ELSE IF @strNation = 2 BEGIN update userdata set Zone = '21' where Zone = '31' and (struserid=@strCharID1 or struserid=@strCharID2 or struserid=@strCharID3) update userdata set Zone = '2',pz='186940',py='2330',px='19910' where (Zone = '101' or Zone = '111' or Zone = '103' or Zone = '102') and nation='2' and (struserid=@strCharID1 or struserid=@strCharID2 or struserid=@strCharID3) update userdata set Zone = '201',pz='92029',py='1150',px='64929' where (Zone = '201' and Nation='2') and (struserid=@strCharID1 or struserid=@strCharID2 or struserid=@strCharID3) END COMMIT TRAN Kullanımı account_logout'a eklenmesi kafi olup EXEC FIX_WARP @AccountID şeklinde ekleyebilirsiniz. Eğer kullandığınız mapler değişikse ve farklı yerlerde doğuyorlar ise onuda kendiniz pz,py,px olarak belirttiğim alanlardan düzeltebilirsiniz. İyi oyunlar. | |
|