Öncelikle merhaba
Can skıntısından böyle birşey hazırlamak istedim
Biraz sonra anlattıklarımın ardından serverınızda her user sizin verdiğiniz komutlar doğrultusunda char açabilecek
Sonuc olarak şunlar olucak
İstediğiniz Lvlde, stat pointle, skillerler, parayla, np'yle vsvs...
Hatta ve hatta Bunu birçok kişi bilmez İstediğiniz map koordinatlarda başlatabiliceksiniz
Vericeğim QA kodunu dbnizde uygulayın
PHP- Kodu:
CREATE PROCEDURE CREATE_NEW_CHAR
@nRet smallint OUTPUT,
@AccountID char(21),
@index tinyint,
@CharID char(21),
@Race tinyint,
@Class smallint,
@Hair tinyint,
@Face tinyint,
@Str tinyint,
@Sta tinyint,
@Dex tinyint,
@Intel tinyint,
@Cha tinyint
AS
DECLARE @Row tinyint, @Nation tinyint, @Zone tinyint, @PosX int, @PosZ int
SET @Row = 0 SET @Nation = 0 SET @Zone = 0 SET @PosX = 0 SET @PosZ = 0
SELECT @Nation = bNation, @Row = bCharNum FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID
IF @Row >= 5 SET @nRet = 1
IF @Nation = 1 AND @Race > 10 SET @nRet = 2
ELSE IF @Nation = 2 AND @Race < 10 SET @nRet = 2
ELSE IF @Nation <>1 AND @Nation <> 2 SET @nRet = 2
IF @nRet > 0
RETURN
SELECT @Row = COUNT(*) FROM USERDATA WHERE strUserId = @CharID
IF @Row > 0
BEGIN
SET @nRet = 3
RETURN
END
SET @Zone=21
SELECT @PosX = InitX, @PosZ = InitZ FROM ZONE_INFO WHERE ZoneNo = @Zone
select @row = 3
if @CharID like '%___%'
if @CharID like '%_%'
if @CharID like '%__%'
if @CharID like '%:%'
if @CharID like '%::%'
begin
SET @nRet = 3
RETURN
END
BEGIN TRAN
IF @index = 0
UPDATE ACCOUNT_CHAR SET strCharID1 = @CharID, bCharNum = bCharNum + 1 WHERE strAccountID = @AccountID
ELSE IF @index = 1
UPDATE ACCOUNT_CHAR SET strCharID2 = @CharID, bCharNum = bCharNum + 1 WHERE strAccountID = @AccountID
ELSE IF @index = 2
UPDATE ACCOUNT_CHAR SET strCharID3 = @CharID, bCharNum = bCharNum + 1 WHERE strAccountID = @AccountID
ELSE IF @index = 3
UPDATE ACCOUNT_CHAR SET strCharID4 = @CharID, bCharNum = bCharNum + 1 WHERE strAccountID = @AccountID
ELSE IF @index = 4
UPDATE ACCOUNT_CHAR SET strCharID5 = @CharID, bCharNum = bCharNum + 1 WHERE strAccountID = @AccountID
INSERT INTO USERDATA (strUserId, Nation, Race, Class, HairColor, Face, Strong, Sta, Dex, Intel, Cha, Zone, PX, PZ )
VALUES (@CharID, @Nation, @Race, @Class, @Hair, @Face, @Str, @Sta, @Dex, @Intel, @Cha, @Zone, @PosX, @PosZ )
exec baslangicitem @CharID
update userdata set [level] = '80' , [strskill] = '<<<<<<<<<<' , [points] = '255' , [zone] = '201' , strong = '255' , sta = '255' , dex = '255' , intel = '255' , cha = '255' , sp = '255' , px = '63000' , pz = '91100' where nation = '2'
update userdata set [level] = '80' , [strskill] = '<<<<<<<<<<' , [points] = '255' , [zone] = '201' , strong = '255' , sta = '255' , dex = '255' , intel = '255' , cha = '255' , sp = '255' , px = '137500' , pz = '109600' where nation = '1'
update userdata set Class = 106 where struserid = @CharID and @Class = 101
update userdata set Class = 108 where struserid = @CharID and @Class = 102
update userdata set Class = 110 where struserid = @CharID and @Class = 103
update userdata set Class = 112 where struserid = @CharID and @Class = 104
update userdata set Class = 206 where struserid = @CharID and @Class = 201
update userdata set Class = 208 where struserid = @CharID and @Class = 202
update userdata set Class = 210 where struserid = @CharID and @Class = 203
update userdata set Class = 212 where struserid = @CharID and @Class = 204
IF @@ERROR <> 0
BEGIN
ROLLBACK TRAN
SET @nRet = 4
RETURN
END
COMMIT TRAN
SET @nRet = 0
GO
Yukarıda verdiğim kod sayesinde olucaklar şunlar
(80lvl + 146 skill point + bütün statlar 255 + Her ırk czde kendi town'unda doğar )
şimdi editliyeceğimiz bölüm burası
PHP- Kodu:
update userdata set [level] = '80' , [strskill] = '<<<<<<<<<<' , [points] = '255' , [zone] = '201' , strong = '255' , sta = '255' , dex = '255' , intel = '255' , cha = '255' , sp = '255' , px = '63000' , pz = '91100' where nation = '2'
update userdata set [level] = '80' , [strskill] = '<<<<<<<<<<' , [points] = '255' , [zone] = '201' , strong = '255' , sta = '255' , dex = '255' , intel = '255' , cha = '255' , sp = '255' , px = '137500' , pz = '109600' where nation = '1'
burada anlamanız gereken bişey var kodların sonundaki nation ırk rakamını belirtiyor
Alt alta 2 ırk olmasının sebebi ırkların farklı yerlerde başlamasını sağlamak içindi
Burda zaten herşey açık bi durumda yazılan rakamları editlediğinizde başlangıcta etki vericeğini görüceksiniz
Zone karşısına hangi zone IDyi yazarsanız char orda ilk açıldığında orada doğar
PX ve PZ zone korordinatlarını belirler yani doğucağı haritadaki kordinatlar
[strskill] karşısına "<<<<<<<<<<" yazarsanız lvle ait skillpointi verir
"ÿ" yazarsanız 255 skill point verir
Eğer istek olursa Serverda Job engelleme procedur'ude palaşıcam mesela mage server için warrior rogue ve priestin açılmasını engellemek gbi
Pek yararlı olmasada umarım bazı arkadaşların işine yarar
Bi ty yeter