Иконка ресурса

Lineage 2 Essence 3.0 C30_A_0610_200610_14_43_hotfix

Нет прав для скачивания
Капец тут Санта-Барбара. Вы чего парни? Все мужики взрослые, а такой балаган устроили.
irk с такими слабыми нервами тебе абсолютно точно не стоит заниматься линейкой )

У меня вопрос по теме.
Когда логинюсь, в списке нет сервера.
Интересный момент, что если с иннововского клиента 286 протокола подключаюсь, то сервера отображаются, но зайти понятное дело не могу.
Как вы эту проблему победили? Какой-то параметр нужно переключить в AUTHD или AuthGateD конфигах?
Или в L2.ini клиента нужно что-то поменять?
Мне кажется, что всё дело опять же в PA сервере и его связи с аутхом. Могу ошибаться правда, т. к. с такой системой авторизации я ещё не работал никогда.
 

Мне кажется, что всё дело опять же в PA сервере и его связи с аутхом. Могу ошибаться правда, т. к. с такой системой авторизации я ещё не работал никогда.
Я вот тоже тему перечитывал, и вроде как у парней еще до него сервера отображались хотябы.
А потом уже париться с PA начинали чтобы в мир зайти.
У меня же даже серверов не видно в списке.
 
Я вот тоже тему перечитывал, и вроде как у парней еще до него сервера отображались хотябы.
А потом уже париться с PA начинали чтобы в мир зайти.
У меня же даже серверов не видно в списке.
Такая же ситуация, но пока решения не нашёл)
 
А остался у кого файл? L2.CLASSIC.S.20180626.10 А то не могу найти у себя.
 
В общем опять столкнулся с процедурой . чары создаются в базе но в клиенте не видно


1674538302459.png
 
В общем опять столкнулся с процедурой . чары создаются в базе но в клиенте не видно


Посмотреть вложение 47566
А ты классик юзаешь или мэйн?
Там в зависимости от версии слотов не хватает в процедуре и таблице.
Если классик то только для агатионов нужно добавить.
Если мэйн, то еще для артифактов.
Я вечером смогу пример показать наглядно.
 
нну скь тогда как пофиксить и войти. 287 я юзаю
 
нну скь тогда как пофиксить и войти. 287 я юзаю
Я понял что 287 протокол. Но в классик версии набор столбцов у чара один, а в мэйне другой.
Я поэтому и спрашиваю какую версию ты использовать пытаешься )
 
Дядь да тупо процедуры доки нь я сам уже потом проверю.
 
Дядь да тупо процедуры доки нь я сам уже потом проверю.
Ну смотри сам.
Скрипты для дропа и создания объектов
SQL:
USE [lin2world]
GO

/****** Object:  StoredProcedure [dbo].[lin_GetUserDataByCharId]    Script Date: 24.01.2023 18:17:05 ******/
DROP PROCEDURE [dbo].[lin_GetUserDataByCharId]
GO

/****** Object:  StoredProcedure [dbo].[lin_GetUserDataByCharId]    Script Date: 24.01.2023 18:17:05 ******/
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_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


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
) ON [PRIMARY]
GO
Внимание это именно для версии Classic 287. То что я себе сделал.
Если нужно для версии Main 287, то принцип тот же, но нужны слоты для артефактов еще.
SQL:
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),

В этой теме парни ранее уже говорили об этом.
 
Ну смотри сам.
Скрипты для дропа и создания объектов
SQL:
USE [lin2world]
GO

/****** Object:  StoredProcedure [dbo].[lin_GetUserDataByCharId]    Script Date: 24.01.2023 18:17:05 ******/
DROP PROCEDURE [dbo].[lin_GetUserDataByCharId]
GO

/****** Object:  StoredProcedure [dbo].[lin_GetUserDataByCharId]    Script Date: 24.01.2023 18:17:05 ******/
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_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


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
) ON [PRIMARY]
GO
Внимание это именно для версии Classic 287. То что я себе сделал.
Если нужно для версии Main 287, то принцип тот же, но нужны слоты для артефактов еще.
SQL:
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),

В этой теме парни ранее уже говорили об этом.
Вот это спасибо)
 
первым надо user_slot выполнить иначе ошибка будет.
 
Поделитесь если у кого есть 162 клиент. Ну или хотя бы систем + ui№.ugx. А то увы но такую диковину найти просто не реально. Сомнительно что у кого то есть, единственное что дал поиск так это просьбу лайтфьюжена на зонгейме за 2019г про сурс интерфейса 162+ протокола. Не критично, скучно просто, но помучать интерфейс желание было.
 
Назад
Сверху Снизу