iSRO-R Yardım Error when entering a name during character creation.

  • Konuyu Başlatan Konuyu Başlatan lima009
  • Başlangıç tarihi Başlangıç tarihi

lima009

.
Aktiflik: 2%
Çırak 100 mesaj
Katılım
23 May 2025
Mesajlar
173
Tepkime puanı
41
Puan
28
Yaş
36
Konum
brasil
Thread owner
Como posso resolver esse problema ao criar um novo personagem? Posso usar qualquer nome, mas sempre aparece esse erro.
 

Ekli dosyalar

  • SRO[2026-01-28 23-45-25]_03.webp
    SRO[2026-01-28 23-45-25]_03.webp
    216.7 KB · Görüntüleme: 44
Thread owner
I'm still getting the same error. I checked ADDNewChar and it's working fine.
Üst üste post gönderildiği için tek mesajda birleştirildi:

USE [SILKROAD_R_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_AddNewChar] Script Date: 29/01/2026 15:04:18 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

--NEW

ALTER PROCEDURE [dbo].[_AddNewChar]
@UserJID INT,
@RefCharID INT,
@CharName VARCHAR(64),
@CharScale TINYINT,
@StartRegionID INT,
@StartPos_X REAL,
@StartPos_Y REAL,
@StartPos_Z REAL,
@DefaultTeleport INT,
@RefMailID INT,
@RefPantsID INT,
@RefBootsID INT,
@RefWeaponID INT,
@RefShield INT,
@DurMail TINYINT,
@DurPants TINYINT,
@DurBoots TINYINT,
@DurWeapon TINYINT,
@DurShield TINYINT,
@DefaultArrow INT
AS
SET NOCOUNT ON

DECLARE @temp INT

-----------------------------------------------------------------------------
-- 1. 선 체크!
-----------------------------------------------------------------------------
SELECT @temp = count(CharID) FROM _User WITH (NOLOCK) WHERE UserJID = @UserJID
IF (@temp >= 8)
BEGIN
-- 너무 많자나
RETURN -2
END

IF (@CharScale > 68) -- 0100 0100 --> 68 이다!
BEGIN
-- 캐릭터 생성 실패! 스케일 값이 이상하다!
RETURN -3
END

EXEC @temp = _IsExistingCharName @CharName
IF (@temp <> 0)
BEGIN
-- 이미 사용중인 이름이라는데?
RETURN -4
END

DECLARE @IsMale TINYINT
SELECT @IsMale = ROCH.CharGender
FROM _RefObjChar AS ROCH WITH (NOLOCK)
INNER JOIN _RefObjCommon AS ROC WITH (NOLOCK) ON ROC.Link = ROCH.ID AND ROC.ID = @RefCharID
IF @@ROWCOUNT = 0 OR @@ERROR <> 0 OR @IsMale IS NULL
BEGIN
RETURN -24
END

DECLARE @NewCharID INT
SET @NewCharID = 0

BEGIN TRANSACTION

-----------------------------------------------------------------------------
-- 2. 캐릭터 추가하기
-----------------------------------------------------------------------------
INSERT INTO _Char
(RefObjID, CharName16, Scale, Strength, Intellect, LatestRegion,PosX, PosY, PosZ, AppointedTeleport, InventorySize,
LastLogout, CurLevel, MaxLevel, RemainGold, RemainStatPoint, RemainSkillPoint, HP, MP, JobLvl_Trader, JobLvl_Hunter, JobLvl_Robber, WorldID)
VALUES (@RefCharID, @CharName, @CharScale, 20, 20, @StartRegionID, @StartPos_X, @StartPos_Y, @StartPos_Z, @DefaultTeleport, 77,
CONVERT(SMALLDATETIME, '2079-01-06'), 1, 1, 0, 0, 250000, 200,200, 1, 1, 1, 1)

SET @NewCharID = @@IDENTITY

IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
-- 캐릭터 생성 실패!
ROLLBACK TRANSACTION
RETURN -5
END

INSERT INTO _User VALUES (@UserJID, @NewCharID)
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
-- 유저 테이블에 추가 실패!
ROLLBACK TRANSACTION
RETURN -6
END

-----------------------------------------------------------------------------
-- 3-1. 장비 슬롯 채우기
-----------------------------------------------------------------------------
-- 디폴트로 선택한 아이템을 다시 넣어주자...
/* 요런 순서로 정의되어 있다.
0: EQUIP_SLOT_HELM
1: EQUIP_SLOT_MAIL,
2: EQUIP_SLOT_SHOULDERGUARD,
3: EQUIP_SLOT_GAUNTLET,
4: EQUIP_SLOT_PANTS,
5: EQUIP_SLOT_BOOTS,
6: EQUIP_SLOT_WEAPON,
7: EQUIP_SLOT_SHIELD or ARROW,
8: EQUIP_SLOT_EARRING,
9: EQUIP_SLOT_NECKLACE,
10: EQUIP_SLOT_L_RING,
11: EQUIP_SLOT_R_RING,
*/

DECLARE @ItemID BIGINT
SET @ItemID = 0

-- 상갑
IF (@RefMailID <> 0)
BEGIN
EXEC @ItemID = _FN_ADD_INITIAL_EQUIP @NewCharID, 1, @RefMailID, @DurMail
IF (@ItemID <= 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -8
END
END
-- 바지
IF (@RefPantsID <> 0)
BEGIN
EXEC @ItemID = _FN_ADD_INITIAL_EQUIP @NewCharID, 4, @RefPantsID, @DurPants
IF (@ItemID <= 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -9
END
END
-- Boots
IF (@RefBootsID <> 0)
BEGIN
EXEC @ItemID = _FN_ADD_INITIAL_EQUIP @NewCharID, 5, @RefBootsID, @DurBoots
IF (@ItemID <= 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -10
END
END
-- Weapon
IF (@RefWeaponID <> 0)
BEGIN
EXEC @ItemID = _FN_ADD_INITIAL_EQUIP @NewCharID, 6, @RefWeaponID, @DurWeapon
IF (@ItemID <= 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -11
END
END
-- 방패
IF (@RefShield <> 0)
BEGIN
EXEC @ItemID = _FN_ADD_INITIAL_EQUIP @NewCharID, 7, @RefShield, @DurShield
IF (@ItemID <= 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -12
END
END
-- 혹시 default로 선택한 무기가 활이라면 화살 250개들이 활통도 함께 준다. 죠치?
IF (@DefaultArrow <> 0)
BEGIN
EXEC @ItemID = _FN_ADD_INITIAL_EQUIP @NewCharID, 7, @DefaultArrow, 250
IF (@ItemID <= 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -13
END
END

-----------------------------------------------------------------------------
-- default skill 넣어주기
-----------------------------------------------------------------------------
DECLARE @country TINYINT
EXEC @country = _GetObjCountry @RefCharID

INSERT INTO _CharSkillMastery (CharID, MasteryID, Level)
SELECT @NewCharID, MasteryID, 0
FROM _RefCharDefault_SkillMastery WITH (NOLOCK)
WHERE Race = @country or Race = 3
IF (@@error <> 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -15
END

INSERT INTO _CharSkill (CharID,SkillID,Enable)
SELECT @NewCharID, SkillID, 1
FROM _RefCharDefault_Skill WITH (NOLOCK)
WHERE Race = @country or Race = 3
IF (@@error <> 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -16
END

-----------------------------------------------------------------------------
-- default Quest 넣어주기
-----------------------------------------------------------------------------
INSERT INTO _CharQuest (CharID, QuestID, Status, AchievementCount, StartTime, EndTime, QuestData1, QuestData2)
SELECT @NewCharID, RQ.ID, 1, 0, getdate(), getdate(), 0, 0
FROM _RefQuest AS RQ WITH (NOLOCK)
JOIN _RefCharDefault_Quest AS RDQ WITH (NOLOCK)
ON RDQ.CodeName = RQ.CodeName AND ((RDQ.Race = @country or RDQ.Race = 3) and RDQ.RequiredLevel = 1 and RDQ.Service = 1)
IF (@@error <> 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -17
END

-----------------------------------------------------------------------------
-- Static Avatar Initial Record 넣기
-----------------------------------------------------------------------------
INSERT INTO _StaticAvatar(CharID) values(@NewCharID)
IF (@@ERROR <> 0)
BEGIN
ROLLBACK TRANSACTION
RETURN -18
END

-----------------------------------------------------------------------------
-- Trijob 채워넣기!!!!!
-----------------------------------------------------------------------------
INSERT INTO _CharTrijob VALUES (@NewCharID, 0, 1, 0, 0, 0)
IF (@@ERROR <> 0)
BEGIN
-- 인벤토리 생성 실패!
ROLLBACK TRANSACTION
RETURN -19
END


-- #ifdef REMOVE_DEFAULT_FRIEND_GROUP_IN_DATABASE
-- 더이상 0번 default 친구그룹은 추가하지 않는다.
-- #else REMOVE_DEFAULT_FRIEND_GROUP_IN_DATABASE
-----------------------------------------------------------------------------
-- 친구그룹 생성 추가
-----------------------------------------------------------------------------
--INSERT _FriendGroup Values (@NewCharID, 0, 'N/A')
--IF (@@ERROR <> 0)
--BEGIN
-- ROLLBACK TRANSACTION
-- RETURN -20 -- 그룹추가 실패!
--END
-- #endif REMOVE_DEFAULT_FRIEND_GROUP_IN_DATABASE

-----------------------------------------------------------------------------
-- TradeConflictJob 채워넣기!!!!!
-----------------------------------------------------------------------------
INSERT INTO _CharTradeConflictJob VALUES (@NewCharID, GetDate(), 1, 0, 0, 0, 0, 0 ,0)
IF (@@ERROR <> 0)
BEGIN
-- 무역과 직업대립 데이터 넣기 실패...!
ROLLBACK TRANSACTION
RETURN -22
END

-----------------------------------------------------------------------------
-- NewTrade 채워넣기!!!!!
-----------------------------------------------------------------------------
INSERT INTO _CharNewTrade VALUES (@NewCharID, 0, 0)
IF (@@ERROR <> 0)
BEGIN
-- 무역과 직업대립 데이터 넣기 실패...!
ROLLBACK TRANSACTION
RETURN -23
END

-----------------------------------------------------------------------------
-- CharList에 ID 넣어주기
-----------------------------------------------------------------------------
INSERT _CharNameList VALUES(@CharName, @NewCharID)
IF (@@ERROR <> 0)
BEGIN
-- 무역과 직업대립 데이터 넣기 실패...!
ROLLBACK TRANSACTION
RETURN -24
END

COMMIT TRANSACTION

-- Quick Slot 초기 데이터
EXEC _AddNewClientConfig @NewCharID

-- 위업 관련 초기 데이터
EXEC _Achievement_AddNewChar @NewCharID

RETURN @NewCharID
 
Oyla 0

Bu konuyu görüntüleyen kullanıcılar

Geri
Üst Alt