да подруби как свн файлы серва и вытени от туда 166 версию.Поделитесь если у кого есть 162 клиент. Ну или хотя бы систем + ui№.ugx. А то увы но такую диковину найти просто не реально. Сомнительно что у кого то есть, единственное что дал поиск так это просьбу лайтфьюжена на зонгейме за 2019г про сурс интерфейса 162+ протокола. Не критично, скучно просто, но помучать интерфейс желание было.
L2_TEST_LSERVER-r1 тут кажетсяПодрублено, но не увидел их чет в какой репе?
Подрубил
L2_LIVE_CSERVER
L2_LIVE_LSERVER
L2_LIVE_WSERVER
L2_RC_ASERVER
Других не нашел, ссылки битые.
Такой свн репы у меня увы нет. Ток архив сборки но там 162 протокол, да и не было вроде 166 в шаре. Во всяком случае проверить не могу, репо нет этого, только архив с последним сервером с репозитория, да и не логично если ласт 162 что перед был бы 166.L2_TEST_LSERVER-r1 тут кажется
USE [lin2world]
GO
/****** Object: Table [dbo].[user_slot] Script Date: 24.01.2023 18:19:56 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[user_slot]') AND type in (N'U'))
DROP TABLE [dbo].[user_slot]
GO
/****** Object: Table [dbo].[user_slot] Script Date: 24.01.2023 18:19:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[user_slot](
[char_id] [int] NOT NULL,
[ST_underwear] [int] NULL,
[ST_right_ear] [int] NULL,
[ST_left_ear] [int] NULL,
[ST_neck] [int] NULL,
[ST_right_finger] [int] NULL,
[ST_left_finger] [int] NULL,
[ST_head] [int] NULL,
[ST_right_hand] [int] NULL,
[ST_left_hand] [int] NULL,
[ST_gloves] [int] NULL,
[ST_chest] [int] NULL,
[ST_legs] [int] NULL,
[ST_feet] [int] NULL,
[ST_back] [int] NULL,
[ST_both_hand] [int] NULL,
[ST_hair] [int] NULL,
[ST_hair2] [int] NULL,
[ST_right_bracelet] [int] NULL,
[ST_left_bracelet] [int] NULL,
[ST_deco1] [int] NULL,
[ST_deco2] [int] NULL,
[ST_deco3] [int] NULL,
[ST_deco4] [int] NULL,
[ST_deco5] [int] NULL,
[ST_deco6] [int] NULL,
[ST_waist] [int] NULL,
[ST_brooch] [int] NULL,
[ST_jewel1] [int] NULL,
[ST_jewel2] [int] NULL,
[ST_jewel3] [int] NULL,
[ST_jewel4] [int] NULL,
[ST_jewel5] [int] NULL,
[ST_jewel6] [int] NULL,
[ST_agathion_main] [int] NULL,
[ST_agathion_sub1] [int] NULL,
[ST_agathion_sub2] [int] NULL,
[ST_agathion_sub3] [int] NULL,
[ST_agathion_sub4] [int] NULL,
[ST_artifactbook] [int] NULL,
[ST_artifact_a1] [int] NULL,
[ST_artifact_a2] [int] NULL,
[ST_artifact_a3] [int] NULL,
[ST_artifact_a4] [int] NULL,
[ST_artifact_a5] [int] NULL,
[ST_artifact_a6] [int] NULL,
[ST_artifact_a7] [int] NULL,
[ST_artifact_a8] [int] NULL,
[ST_artifact_a9] [int] NULL,
[ST_artifact_a10] [int] NULL,
[ST_artifact_a11] [int] NULL,
[ST_artifact_a12] [int] NULL,
[ST_artifact_b1] [int] NULL,
[ST_artifact_b2] [int] NULL,
[ST_artifact_b3] [int] NULL,
[ST_artifact_c1] [int] NULL,
[ST_artifact_c2] [int] NULL,
[ST_artifact_c3] [int] NULL,
[ST_artifact_d1] [int] NULL,
[ST_artifact_d2] [int] NULL,
[ST_artifact_d3] [int] NULL
) ON [PRIMARY]
GO
/****** Object: StoredProcedure [dbo].[lin_GetUserDataByCharId] Script Date: 1/21/2023 11:59:55 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[lin_GetUserDataByCharId]
(
@char_id int
)
as
set nocount on
declare @subjob_id_s int
declare @lev_s int
declare @exp_s bigint
if @char_id > 0
begin
select top 1 @subjob_id_s = [subjob_id], @lev_s = [level], @exp_s = [exp]
from user_subjob(nolock) where char_id = @char_id order by [exp] desc
if @subjob_id_s is null
begin
set @subjob_id_s = -1
set @lev_s = 0
set @exp_s = 0
end
select
RTRIM(ud.char_name), ud.char_id, RTRIM(ud.account_name), ud.account_id, ud.pledge_id, ud.builder,
ud.gender, ud.race, ud.class, ud.world, ud.xloc, ud.yloc, ud.zloc, ud.IsInVehicle,
ud.HP, ud.MP, ud.Max_HP, ud.Max_MP, ud.CP, ud.Max_CP, ud.SP, ud.Exp, ud.Lev,
case when ud.subjob_id = @subjob_id_s then ud.Exp when ud.Exp >= @exp_s then ud.Exp else @exp_s end,
case when ud.subjob_id = @subjob_id_s then ud.Lev when ud.Exp >= @Exp_s then ud.Lev else @lev_s end,
ud.align, ud.PK, ud.duel, ud.pkpardon,
ISNULL(usl.ST_underwear, 0), ISNULL(usl.ST_right_ear, 0), ISNULL(usl.ST_left_ear, 0),
ISNULL(usl.ST_neck, 0), ISNULL(usl.ST_right_finger, 0), ISNULL(usl.ST_left_finger, 0),
ISNULL(usl.ST_head, 0), ISNULL(usl.ST_right_hand, 0), ISNULL(usl.ST_left_hand, 0),
ISNULL(usl.ST_gloves, 0), ISNULL(usl.ST_chest, 0), ISNULL(usl.ST_legs, 0), ISNULL(usl.ST_feet, 0),
ISNULL(usl.ST_back, 0), ISNULL(usl.ST_both_hand, 0), ISNULL(usl.ST_hair, 0), ISNULL(usl.ST_hair2, 0),
ISNULL(usl.ST_right_bracelet, 0), ISNULL(usl.ST_left_bracelet, 0),
ISNULL(usl.ST_agathion_main, 0), ISNULL(usl.ST_agathion_sub1, 0), ISNULL(usl.ST_agathion_sub2, 0), ISNULL(usl.ST_agathion_sub3, 0), ISNULL(usl.ST_agathion_sub4, 0), ISNULL(usl.ST_artifactbook, 0),
ISNULL(usl.ST_artifact_a1, 0), ISNULL(usl.ST_artifact_a2, 0), ISNULL(usl.ST_artifact_a3, 0),
ISNULL(usl.ST_artifact_a4, 0), ISNULL(usl.ST_artifact_a5, 0), ISNULL(usl.ST_artifact_a6, 0),
ISNULL(usl.ST_artifact_a7, 0), ISNULL(usl.ST_artifact_a8, 0), ISNULL(usl.ST_artifact_a9, 0),
ISNULL(usl.ST_artifact_a10, 0), ISNULL(usl.ST_artifact_a11, 0), ISNULL(usl.ST_artifact_a12, 0),
ISNULL(usl.ST_artifact_b1, 0), ISNULL(usl.ST_artifact_b2, 0), ISNULL(usl.ST_artifact_b3, 0),
ISNULL(usl.ST_artifact_c1, 0), ISNULL(usl.ST_artifact_c2, 0), ISNULL(usl.ST_artifact_c3, 0),
ISNULL(usl.ST_artifact_d1, 0), ISNULL(usl.ST_artifact_d2, 0), ISNULL(usl.ST_artifact_d3, 0),
ISNULL(usl.ST_deco1, 0), ISNULL(usl.ST_deco2, 0), ISNULL(usl.ST_deco3, 0),
ISNULL(usl.ST_deco4, 0), ISNULL(usl.ST_deco5, 0), ISNULL(usl.ST_deco6, 0),
ISNULL(usl.ST_waist, 0), ISNULL(usl.ST_brooch, 0), ISNULL(usl.ST_jewel1, 0),ISNULL(usl.ST_jewel2, 0),ISNULL(usl.ST_jewel3, 0),ISNULL(usl.ST_jewel4, 0),ISNULL(usl.ST_jewel5, 0),ISNULL(usl.ST_jewel6, 0),
ISNULL(YEAR(temp_delete_date),0), ISNULL(MONTH(temp_delete_date),0), ISNULL(DAY(temp_delete_date),0),
ISNULL(DATEPART(HOUR, temp_delete_date),0), ISNULL(DATEPART(mi, temp_delete_date),0), ISNULL(DATEPART(s, temp_delete_date),0),
ud.quest_flag, ud.face_index, ud.hair_shape_index, ud.hair_color_index,
ud.nickname, ud.power_flag, ud.pledge_dismiss_time, ud.pledge_ousted_time, ud.pledge_withdraw_time,
ud.surrender_war_id, ud.use_time, ud.drop_exp,
ISNULL(ub.status, 0), ISNULL(ub.ban_end , 0), ISNULL(ud.subjob_id , 0),
ud.subjob0_class, ud.subjob1_class, ud.subjob2_class, ud.subjob3_class,
ISNULL(ud.dual_class_id , 0), ISNULL(ssq_dawn_round, 0),
ISNULL(unc.color_rgb, 0xFFFFFF), isnull(unc.nickname_color_rgb, 0xECF9A2),
ud.pledge_type , ud.grade_id, ISNULL(ud.academy_pledge_id, 0), ISNULL(us.service_flag, 0),
ISNULL(ud.tutorial_flag, 0), ISNULL(ud.associated_inzone, 0), ISNULL(ud.bookmark_slot, 0), ISNULL(ud.associated_inzone_uid, 0),
ISNULL(uj.job_group, -1), ISNULL(ud.PP, 0)
from
(select * from user_data (nolock) where char_id = @char_id and account_id > 0) as ud
left outer join
(select * from user_ban (nolock) where char_id = @char_id) as ub on ud.char_id = ub.char_id
left outer join
(select * from user_name_color (nolock) where char_id = @char_id) as unc on ud.char_id = unc.char_id
left outer join
(select * from user_service (nolock) where char_id = @char_id) as us on ud.char_id = us.char_id
left outer join
(select * from user_slot (nolock) where char_id = @char_id) as usl on ud.char_id = usl.char_id
left outer join
(select * from user_job_group (nolock) where char_id = @char_id) as uj on ud.char_id = uj.char_id
end
GO
По логике эти L2_LIVE_ESERVER и L2_TEST_ESERVER, но в них нет самого основного. Надо собирать по кускам походу. Вот в L2_RC_ASERVER по идее Aden.понятно я запусстил маин вот и не хотело чара делать. а в каком архиве классик ну есенс с автоохотой?
Но мне нужен именно ессенс(классик)
вот для мейна фикс
SQL:USE [lin2world] GO /****** Object: Table [dbo].[user_slot] Script Date: 24.01.2023 18:19:56 ******/ IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[user_slot]') AND type in (N'U')) DROP TABLE [dbo].[user_slot] GO /****** Object: Table [dbo].[user_slot] Script Date: 24.01.2023 18:19:56 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[user_slot]( [char_id] [int] NOT NULL, [ST_underwear] [int] NULL, [ST_right_ear] [int] NULL, [ST_left_ear] [int] NULL, [ST_neck] [int] NULL, [ST_right_finger] [int] NULL, [ST_left_finger] [int] NULL, [ST_head] [int] NULL, [ST_right_hand] [int] NULL, [ST_left_hand] [int] NULL, [ST_gloves] [int] NULL, [ST_chest] [int] NULL, [ST_legs] [int] NULL, [ST_feet] [int] NULL, [ST_back] [int] NULL, [ST_both_hand] [int] NULL, [ST_hair] [int] NULL, [ST_hair2] [int] NULL, [ST_right_bracelet] [int] NULL, [ST_left_bracelet] [int] NULL, [ST_deco1] [int] NULL, [ST_deco2] [int] NULL, [ST_deco3] [int] NULL, [ST_deco4] [int] NULL, [ST_deco5] [int] NULL, [ST_deco6] [int] NULL, [ST_waist] [int] NULL, [ST_brooch] [int] NULL, [ST_jewel1] [int] NULL, [ST_jewel2] [int] NULL, [ST_jewel3] [int] NULL, [ST_jewel4] [int] NULL, [ST_jewel5] [int] NULL, [ST_jewel6] [int] NULL, [ST_agathion_main] [int] NULL, [ST_agathion_sub1] [int] NULL, [ST_agathion_sub2] [int] NULL, [ST_agathion_sub3] [int] NULL, [ST_agathion_sub4] [int] NULL, [ST_artifactbook] [int] NULL, [ST_artifact_a1] [int] NULL, [ST_artifact_a2] [int] NULL, [ST_artifact_a3] [int] NULL, [ST_artifact_a4] [int] NULL, [ST_artifact_a5] [int] NULL, [ST_artifact_a6] [int] NULL, [ST_artifact_a7] [int] NULL, [ST_artifact_a8] [int] NULL, [ST_artifact_a9] [int] NULL, [ST_artifact_a10] [int] NULL, [ST_artifact_a11] [int] NULL, [ST_artifact_a12] [int] NULL, [ST_artifact_b1] [int] NULL, [ST_artifact_b2] [int] NULL, [ST_artifact_b3] [int] NULL, [ST_artifact_c1] [int] NULL, [ST_artifact_c2] [int] NULL, [ST_artifact_c3] [int] NULL, [ST_artifact_d1] [int] NULL, [ST_artifact_d2] [int] NULL, [ST_artifact_d3] [int] NULL ) ON [PRIMARY] GO
SQL:/****** Object: StoredProcedure [dbo].[lin_GetUserDataByCharId] Script Date: 1/21/2023 11:59:55 AM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[lin_GetUserDataByCharId] ( @char_id int ) as set nocount on declare @subjob_id_s int declare @lev_s int declare @exp_s bigint if @char_id > 0 begin select top 1 @subjob_id_s = [subjob_id], @lev_s = [level], @exp_s = [exp] from user_subjob(nolock) where char_id = @char_id order by [exp] desc if @subjob_id_s is null begin set @subjob_id_s = -1 set @lev_s = 0 set @exp_s = 0 end select RTRIM(ud.char_name), ud.char_id, RTRIM(ud.account_name), ud.account_id, ud.pledge_id, ud.builder, ud.gender, ud.race, ud.class, ud.world, ud.xloc, ud.yloc, ud.zloc, ud.IsInVehicle, ud.HP, ud.MP, ud.Max_HP, ud.Max_MP, ud.CP, ud.Max_CP, ud.SP, ud.Exp, ud.Lev, case when ud.subjob_id = @subjob_id_s then ud.Exp when ud.Exp >= @exp_s then ud.Exp else @exp_s end, case when ud.subjob_id = @subjob_id_s then ud.Lev when ud.Exp >= @Exp_s then ud.Lev else @lev_s end, ud.align, ud.PK, ud.duel, ud.pkpardon, ISNULL(usl.ST_underwear, 0), ISNULL(usl.ST_right_ear, 0), ISNULL(usl.ST_left_ear, 0), ISNULL(usl.ST_neck, 0), ISNULL(usl.ST_right_finger, 0), ISNULL(usl.ST_left_finger, 0), ISNULL(usl.ST_head, 0), ISNULL(usl.ST_right_hand, 0), ISNULL(usl.ST_left_hand, 0), ISNULL(usl.ST_gloves, 0), ISNULL(usl.ST_chest, 0), ISNULL(usl.ST_legs, 0), ISNULL(usl.ST_feet, 0), ISNULL(usl.ST_back, 0), ISNULL(usl.ST_both_hand, 0), ISNULL(usl.ST_hair, 0), ISNULL(usl.ST_hair2, 0), ISNULL(usl.ST_right_bracelet, 0), ISNULL(usl.ST_left_bracelet, 0), ISNULL(usl.ST_agathion_main, 0), ISNULL(usl.ST_agathion_sub1, 0), ISNULL(usl.ST_agathion_sub2, 0), ISNULL(usl.ST_agathion_sub3, 0), ISNULL(usl.ST_agathion_sub4, 0), ISNULL(usl.ST_artifactbook, 0), ISNULL(usl.ST_artifact_a1, 0), ISNULL(usl.ST_artifact_a2, 0), ISNULL(usl.ST_artifact_a3, 0), ISNULL(usl.ST_artifact_a4, 0), ISNULL(usl.ST_artifact_a5, 0), ISNULL(usl.ST_artifact_a6, 0), ISNULL(usl.ST_artifact_a7, 0), ISNULL(usl.ST_artifact_a8, 0), ISNULL(usl.ST_artifact_a9, 0), ISNULL(usl.ST_artifact_a10, 0), ISNULL(usl.ST_artifact_a11, 0), ISNULL(usl.ST_artifact_a12, 0), ISNULL(usl.ST_artifact_b1, 0), ISNULL(usl.ST_artifact_b2, 0), ISNULL(usl.ST_artifact_b3, 0), ISNULL(usl.ST_artifact_c1, 0), ISNULL(usl.ST_artifact_c2, 0), ISNULL(usl.ST_artifact_c3, 0), ISNULL(usl.ST_artifact_d1, 0), ISNULL(usl.ST_artifact_d2, 0), ISNULL(usl.ST_artifact_d3, 0), ISNULL(usl.ST_deco1, 0), ISNULL(usl.ST_deco2, 0), ISNULL(usl.ST_deco3, 0), ISNULL(usl.ST_deco4, 0), ISNULL(usl.ST_deco5, 0), ISNULL(usl.ST_deco6, 0), ISNULL(usl.ST_waist, 0), ISNULL(usl.ST_brooch, 0), ISNULL(usl.ST_jewel1, 0),ISNULL(usl.ST_jewel2, 0),ISNULL(usl.ST_jewel3, 0),ISNULL(usl.ST_jewel4, 0),ISNULL(usl.ST_jewel5, 0),ISNULL(usl.ST_jewel6, 0), ISNULL(YEAR(temp_delete_date),0), ISNULL(MONTH(temp_delete_date),0), ISNULL(DAY(temp_delete_date),0), ISNULL(DATEPART(HOUR, temp_delete_date),0), ISNULL(DATEPART(mi, temp_delete_date),0), ISNULL(DATEPART(s, temp_delete_date),0), ud.quest_flag, ud.face_index, ud.hair_shape_index, ud.hair_color_index, ud.nickname, ud.power_flag, ud.pledge_dismiss_time, ud.pledge_ousted_time, ud.pledge_withdraw_time, ud.surrender_war_id, ud.use_time, ud.drop_exp, ISNULL(ub.status, 0), ISNULL(ub.ban_end , 0), ISNULL(ud.subjob_id , 0), ud.subjob0_class, ud.subjob1_class, ud.subjob2_class, ud.subjob3_class, ISNULL(ud.dual_class_id , 0), ISNULL(ssq_dawn_round, 0), ISNULL(unc.color_rgb, 0xFFFFFF), isnull(unc.nickname_color_rgb, 0xECF9A2), ud.pledge_type , ud.grade_id, ISNULL(ud.academy_pledge_id, 0), ISNULL(us.service_flag, 0), ISNULL(ud.tutorial_flag, 0), ISNULL(ud.associated_inzone, 0), ISNULL(ud.bookmark_slot, 0), ISNULL(ud.associated_inzone_uid, 0), ISNULL(uj.job_group, -1), ISNULL(ud.PP, 0) from (select * from user_data (nolock) where char_id = @char_id and account_id > 0) as ud left outer join (select * from user_ban (nolock) where char_id = @char_id) as ub on ud.char_id = ub.char_id left outer join (select * from user_name_color (nolock) where char_id = @char_id) as unc on ud.char_id = unc.char_id left outer join (select * from user_service (nolock) where char_id = @char_id) as us on ud.char_id = us.char_id left outer join (select * from user_slot (nolock) where char_id = @char_id) as usl on ud.char_id = usl.char_id left outer join (select * from user_job_group (nolock) where char_id = @char_id) as uj on ud.char_id = uj.char_id end GO
малыми изменениями пакеты классика подогнать с 287 под 306 а там и софт, и патчи есть, и эдитор вроде как есть, и по имени намеки на то что антквина добавили
через Hex правится в пару кликов, меняя 75 на EB (или в каких-то версиях 0F 84 на 0F 85)Кто знает что за ошибка nkey это получается сервер сравнивает файлы клиента или на корейском клиенте пакет CharSelectionInfo отличается?
можно просто cb на Cb в сервере заменить в шаблоне паковки ответа и пашет даже.CharSelectionInfo
Наменять идишек в датниках под нужды, это вроде самое простое из всего что можно вообще делать с игройамериканская и русская папка систем не подходит. dat файлы не сходятся. они разные . много нет или другие айди. надо вручную переводитью не сходится информация о предметах и персонажах и много другое сравнивайте . Желаю удачи..
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?