Jump to content
Araştır
  • Diğer seçenekler ...
Sonuçları bul ...
Sonuçları bul ...

brkklkn17

Uzaklaştırılmış
  • İçerik sayısı

    32
  • Katılım

  • Son ziyaret

  • Puan

    1,180 [ Bağış Yap ]

İletiler : brkklkn17


  1. Alıntı
    WIZ_SELECT_CHARACTER paketini kontrol et.

    Source de öyle bir paket bulamadı ? sexyko source kullanıyorum
    -- mesaja ek olarak --
    Alıntı
    WIZ_SELECT_CHARACTER paketini kontrol et.


    Pardon buldum şu şekilde
    Spoiler

    void CUser::SelectCharacter(Packet & pkt)
    {
    Packet result(WIZ_SEL_CHAR);
    uint8 bResult, bInit;

    if (isBanned())
    {
    Disconnect();
    return;
    }

    CUser * pUser = g_pMain->GetUserPtr(GetAccountName(), TYPE_ACCOUNT);

    if (pUser && (pUser->GetSocketID() != GetSocketID()))
    {
    pUser->Disconnect();
    Disconnect();
    goto fail_return;
    }

    pkt >> bResult >> bInit;
    result
    if (bResult == 0 || !GetZoneID())
    goto fail_return;

    m_pMap = g_pMain->GetZoneByID(GetZoneID());
    if (GetMap() == nullptr)
    goto fail_return;

    if (g_pMain->m_nServerNo != GetMap()->m_nServerNo)
    {
    _ZONE_SERVERINFO *pInfo = g_pMain->m_ServerArray.GetData(GetMap()->m_nServerNo);
    if (pInfo == nullptr)
    goto fail_return;

    SendServerChange(pInfo->strServerIP, bInit);
    return;
    }

    // Disallow players from relogging in the opposite nation's home zone when an invasion's not running.
    if (((GetZoneID() != GetNation() && GetZoneID() == ZONE_ELMORAD && !g_pMain->m_byElmoradOpenFlag)
    || (GetZoneID() != GetNation() && GetZoneID() == ZONE_KARUS && !g_pMain->m_byKarusOpenFlag)
    // also disallow players from logging back into war zones that aren't currently active...
    || (GetMap()->isWarZone() && !g_pMain->isWarOpen())
    || (GetMap()->isWarZone() && g_pMain->isWarOpen() && g_pMain->m_bVictory != 0 && g_pMain->m_bVictory != GetNation())
    // Chaos, bdw and juraid montuain
    || isInTempleEventZone()
    // forgetten temple
    || GetZoneID() == ZONE_FORGOTTEN_TEMPLE
    // Monster Stone Event
    || GetZoneID() == ZONE_MONSTER_STONE
    // Ardream, Ronark Land Base, Ronark Land, Bifrost, Krowaz Dominion.
    || (g_pMain->isWarOpen() && (GetZoneID() == ZONE_ARDREAM
    || GetZoneID() == ZONE_RONARK_LAND_BASE
    || GetZoneID() == ZONE_RONARK_LAND
    || GetZoneID() == ZONE_BIFROST
    || GetZoneID() == ZONE_KROWAZ_DOMINION))
    || (GetZoneID() == ZONE_DELOS && !CanEnterDelos())) && !isGM()
    || (GetZoneID() == ZONE_BIFROST && g_pMain->m_BifrostVictory != GetNation()))
    {

    NativeZoneReturn();
    UserDataSaveToAgent();
    Disconnect();
    return;
    }

    SetLogInInfoToDB(bInit);

    result m_byOldVictory;
    m_bSelectedCharacter = true;
    Send(&result);

    SetUserAbility(false);

    if (GetLevel() > MAX_LEVEL)
    {
    Disconnect();
    return;
    }

    if(GetLevel() == 83)
    m_iMaxExp = g_pMain->GetExpByLevel(GetLevel() + GetRebirthLevel());
    else
    m_iMaxExp = g_pMain->GetExpByLevel(GetLevel());

    SetRegion(GetNewRegionX(), GetNewRegionZ());

    if (GetClanID() {
    SetClanID(NO_CLAN);
    return;
    }
    return;

    fail_return:
    Send(&result);
    }

    #pragma endregion


  2. Alıntı
    bunu uğraşmak amacı yok C++ bunu void kısımı öğrenmek gerekiyor bilmedigimi olmasa çözemezsin dikkatli çekmiyorsun.. Yardım yardım diye soruyorsun bende.. ban yedim diyorsa neden böyle söyledin ?

    Göhkan ? :abow:

    if (!dbCommand->Execute(_T("{CALL LOAD_CHAR_INFO(?)}")))


    Tabiri caizse hiçbir şey anlamadım dedikleriniz den?

  3. Alıntı
    Sourcedeki..

    LOAD_CHAR_INFO bulur musu onun bakar mısı..

    Ayrıca sexyko src kullanıyorsun onun pek tek tek load sql yazılmak gerekiyor.. bunu bil.


    Yorumun için çok teşekkür ederim evet biliyorum uğraşmak gelişim açısından iyidir diye düşünmekteyim :)
    KOD;
    Spoiler

    unique_ptr dbCommand(m_GameDB->CreateCommand());
    if (dbCommand.get() == nullptr)
    return;

    dbCommand->AddParameter(SQL_PARAM_INPUT, strCharID.c_str(), strCharID.length());

    if (!dbCommand->Execute(_T("{CALL LOAD_CHAR_INFO(?)}")))
    ReportSQLError(m_GameDB->GetError());

    if (dbCommand->hasData())
    {
    dbCommand->FetchByte(1, bRace);
    dbCommand->FetchUInt16(2, sClass);
    dbCommand->FetchUInt32(3, nHair);
    dbCommand->FetchByte(4, bLevel);
    dbCommand->FetchByte(5, bFace);
    dbCommand->FetchByte(6, bZone);
    dbCommand->FetchBinary(7, strItem, sizeof(strItem));
    }
    }

    itemData.append(strItem, sizeof(strItem));

    result for (int i = 0; i {
    uint32 nItemID,unused;
    uint16 sDurability, sCount;
    itemData >> nItemID >> sDurability >> sCount >> unused;
    if (i == HEAD || i == BREAST || i == SHOULDER || i == LEG || i == GLOVE || i == FOOT || i == RIGHTHAND || i == LEFTHAND)
    result }


  4. Merhaba forum da benzer konulara baktım ama net olarak çözülen konu bulamadım yardımcı olursanız sevinirim
    nret kaldırdığım zaman karakter hiç oluşturulmuyor ve log kısmına hata gelmiyor
    Log ;

    Spoiler

    [ ODBC Error - 6.1.2018 0:12:8 ] Source: {CALL LOAD_CHAR_INFO(?)} Error: [Microsoft]

    [SQL Server]Procedure or function 'LOAD_CHAR_INFO' expects parameter '@nRet', which was not supplied. Description: Failed to execute statement.
    


    LOAD_CHAR_INFO
    Spoiler


    GO
    /****** Object: StoredProcedure [dbo].[LOAD_CHAR_INFO] Script Date: 06.01.2018 00:04:25 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[LOAD_CHAR_INFO]
    @CharId varchar(21),
    @nRet smallint OUTPUT
    AS
    SELECT @nRet = COUNT(strUserId) FROM USERDATA WHERE strUserId = @CharId
    IF @nRet = 0
    RETURN

    SET @nRet = 1
    SELECT Race, Class, HairRGB, [Level], Face, Zone, strItem FROM USERDATA WHERE strUserID = @CharId



    Buda şekil de birşey yaparak da denedim aynı sonuç
    Spoiler

    USE [ko_xpega]
    GO
    /****** Object: StoredProcedure [dbo].[LOAD_CHAR_INFO] Script Date: 05.01.2018 22:36:06 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[LOAD_CHAR_INFO]
    @strCharID char(21),
    @nRet smallint OUTPUT,
    @bRace tinyint,
    @sClass smallint,
    @nHair int,
    @bLevel tinyint,
    @bFace tinyint,
    @bZone tinyint,
    @strItem binary(592)
    AS
    SELECT @nRet = COUNT(strUserId) FROM USERDATA WHERE strUserId = @strCharID
    IF @nRet = 0
    RETURN

    SET @nRet = 1
    --SELECT Race, Class, HairRGB, [Level], Face, Zone, strItem FROM USERDATA WHERE strUserID = @CharId
    SELECT
    @bRace = Race,
    @sClass = Class ,
    @nHair = HairRGB ,
    @bLevel = [LEVEL] ,
    @bFace = Face ,
    @bZone = city ,
    @strItem = strItem from USERDATA WHERE strUserID = @strCharID



    CREATE_NEW_CHAR Prosedürüm ;
    Spoiler

    USE [ko_xpegaEDIT]
    GO
    /****** Object: StoredProcedure [dbo].[CREATE_NEW_CHAR] Script Date: 06.01.2018 00:18:19 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO

    ALTER PROCEDURE [dbo].[CREATE_NEW_CHAR]
    @strAccountID varchar(21),
    @index tinyint,
    @strCharID varchar(21),
    @bRace tinyint,
    @sClass smallint,
    @nHair int,
    @bFace tinyint,
    @bStr tinyint,
    @bSta tinyint,
    @bDex tinyint,
    @bIntel tinyint,
    @bCha tinyint
    AS

    DECLARE @bNation tinyint
    DECLARE @bCharCount tinyint
    DECLARE @bCount tinyint

    SELECT @bNation = bNation, @bCharCount = bCharNum FROM ACCOUNT_CHAR WHERE strAccountID = @strAccountID

    IF (@bNation = 1 AND @bRace > 10)
    RETURN 2
    ELSE IF (@bNation = 2 AND @bRace RETURN 2
    ELSE IF (@bNation 1 AND @bNation 2)
    RETURN 2

    SELECT @bCount = COUNT(strUserID) FROM USERDATA WHERE strUserID = @strCharID

    IF (@bCount > 0)
    RETURN 3

    BEGIN TRAN
    IF (@index = 0)
    UPDATE ACCOUNT_CHAR SET strCharID1 = @strCharID, bCharNum += 1 WHERE strAccountID = @strAccountID
    ELSE IF (@index = 1)
    UPDATE ACCOUNT_CHAR SET strCharID2 = @strCharID, bCharNum += 1 WHERE strAccountID = @strAccountID
    ELSE IF (@index = 2)
    UPDATE ACCOUNT_CHAR SET strCharID3 = @strCharID, bCharNum += 1 WHERE strAccountID = @strAccountID
    ELSE IF (@index = 3)
    UPDATE ACCOUNT_CHAR SET strCharID4 = @strCharID, bCharNum += 1 WHERE strAccountID = @strAccountID

    IF (@@ERROR 0 OR @@ROWCOUNT = 0)
    BEGIN
    ROLLBACK TRAN
    RETURN 4
    END

    INSERT INTO USERDATA (strUserID, Nation, Race, Class, HairRGB, Face, Strong, Sta, Dex, Intel, Cha)
    VALUES (@strCharID, @bNation, @bRace, @sClass, @nHair, @bFace, @bStr, @bSta, @bDex, @bIntel, @bCha)



    --HUMAN WARRİOR--
    --update userdata set Class = 206 ,strong = '255' , sta = '177' ,Dex='60',Cha='50',Intel='50', [level] = '83' where struserid = @strCharID and @sClass = 201
    --HUMAN WARRİOR--


    --HUMAN ROGUE--
    --update userdata set Class = 208 ,strong = '60' , dex = '255' , sta = '177',Intel='50',Cha='50' , [level] = '83' where struserid = @strCharID and @sClass = 202
    --HUMAN ROGUE--


    --HUMAN MAGİCİAN--
    --update userdata set Class = 210 ,strong = '51' , sta = '135' ,Dex='60', cha = '186' , intel = '160', [level] = '83' where struserid = @strCharID and @sClass = 203
    --HUMAN MAGİCİAN--


    --HUMAN PRİEST--
    --update userdata set Class = 212 ,strong = '194' , sta = '84' , intel = '194',Dex='70',Cha='50' ,[level] = '83' where struserid = @strCharID and @sClass = 204
    --HUMAN PRİEST--





    -----------------------------------------------

    --KARUS WARRİOR--
    --update userdata set Class = 106 ,strong = '255' , sta = '177' ,Dex='60',Cha='50',Intel='50', [level] = '83' where struserid = @strCharID and @sClass = 101
    --KARUS WARRİOR--


    --KARUS ROGUE--
    --update userdata set Class = 108 ,strong = '60' , dex = '255' , sta = '177',Intel='50',Cha='50' , [level] = '83' where struserid = @strCharID and @sClass = 102
    --KARUS ROGUE--


    --KARUS MAGİCİAN--
    --update userdata set Class = 110 ,strong = '51' , sta = '135' ,Dex='60', cha = '186' , intel = '160', [level] = '83' where struserid = @strCharID and @sClass = 103
    --KARUS MAGİCİAN--


    --KARUS PRİEST--
    --update userdata set Class = 112 ,strong = '194' , sta = '84' , intel = '194',Dex='70',Cha='50' ,[level] = '83' where struserid = @strCharID and @sClass = 104
    --KARUS PRİEST--







    update userdata set Class = 105 where struserid = @strCharID and @sClass = 101
    update userdata set Class = 107 where struserid = @strCharID and @sClass = 102
    update userdata set Class = 109 where struserid = @strCharID and @sClass = 103
    update userdata set Class = 111 where struserid = @strCharID and @sClass = 104

    update userdata set Class = 205 where struserid = @strCharID and @sClass = 201
    update userdata set Class = 207 where struserid = @strCharID and @sClass = 202
    update userdata set Class = 209 where struserid = @strCharID and @sClass = 203
    update userdata set Class = 211 where struserid = @strCharID and @sClass = 204







    DECLARE @bFree tinyint
    SET @bFree = 0


    --EXEC GIVE_BEGINNER_ITEM @StrCharID







    IF (@@ERROR 0)






    BEGIN
    ROLLBACK TRAN
    RETURN 4
    END
    COMMIT TRAN

    RETURN 0




    TB_USER Tablom ;
    Spoiler

    USE [ko_xpega]
    GO

    /****** Object: Table [dbo].[TB_USER] Script Date: 06.01.2018 00:19:20 ******/
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    SET ANSI_PADDING ON
    GO

    CREATE TABLE [dbo].[TB_USER](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [strAccountID] [varchar](21) NOT NULL,
    [strPasswd] [varchar](28) NULL,
    [strSealPasswd] [char](8) NOT NULL CONSTRAINT [DF_TB_USER_strSealPasswd] DEFAULT ((12345678)),
    [strClientIP] [char](15) NULL,
    [bPremiumType] [tinyint] NOT NULL CONSTRAINT [DF_TB_USER_bPremiumType] DEFAULT ((0)),
    [dtPremiumTime] [datetime] NULL CONSTRAINT [DF_TB_USER_dtPremiumTime] DEFAULT (getdate()),
    [sHours] [smallint] NOT NULL CONSTRAINT [DF_TB_USER_sHours] DEFAULT ((0)),
    [dtCreateTime] [datetime] NULL CONSTRAINT [DF_TB_USER_dtCreateTime] DEFAULT (getdate()),
    [NPoints] [int] NULL CONSTRAINT [DF_TB_USER_CashPoint] DEFAULT ((0)),
    [varchar](50) NULL,
    [guvenlikcevap] [varchar](50) NULL,
    [guvenliksoru] [varchar](50) NULL,
    [TCashPoint] [int] NULL,
    [PusAdmin] [tinyint] NULL CONSTRAINT [DF_TB_USER_PusAdmin] DEFAULT ((0)),
    [strAuthority] [tinyint] NULL CONSTRAINT [DF_TB_USER_strAuthority] DEFAULT ((6)),
    [KraftAdmin] [int] NULL,
    [free_slot] [int] NOT NULL DEFAULT ((0))
    ) ON [PRIMARY]

    GO

    SET ANSI_PADDING OFF
    GO




    USERDATA Tablom ;
    Spoiler

    USE [ko_xpega]
    GO

    /****** Object: Table [dbo].[USERDATA] Script Date: 06.01.2018 00:19:50 ******/
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    SET ANSI_PADDING ON
    GO

    CREATE TABLE [dbo].[USERDATA](
    [strUserID] [char](21) NOT NULL,
    [Nation] [tinyint] NOT NULL,
    [Race] [tinyint] NOT NULL,
    [Class] [smallint] NOT NULL,
    [HairRGB] [int] NULL,
    [Rank] [tinyint] NOT NULL CONSTRAINT [DF_Table_1_Rank] DEFAULT ((0)),
    [Title] [tinyint] NOT NULL CONSTRAINT [DF_Table_1_Title] DEFAULT ((0)),
    [Level] [tinyint] NOT NULL CONSTRAINT [DF_Table_1_Level] DEFAULT ((83)),
    [bLevelRebirth] [tinyint] NULL CONSTRAINT [DF_USERDATA_bRebLevel] DEFAULT ((0)),
    [exp] [bigint] NOT NULL CONSTRAINT [DF_USERDATA_exp] DEFAULT ((1)),
    [Loyalty] [int] NOT NULL CONSTRAINT [DF_Table_1_Loyalty] DEFAULT ((100)),
    [Face] [tinyint] NOT NULL,
    [City] [tinyint] NOT NULL CONSTRAINT [DF_Table_1_City] DEFAULT ((0)),
    [Knights] [smallint] NOT NULL CONSTRAINT [DF_Table_1_Knights] DEFAULT ((0)),
    [Fame] [tinyint] NOT NULL CONSTRAINT [DF_Table_1_Fame] DEFAULT ((0)),
    [Hp] [smallint] NOT NULL CONSTRAINT [DF_Table_1_Hp] DEFAULT ((100)),
    [Mp] [smallint] NOT NULL CONSTRAINT [DF_Table_1_Mp] DEFAULT ((100)),
    [Sp] [smallint] NOT NULL CONSTRAINT [DF_Table_1_Sp] DEFAULT ((100)),
    [Strong] [tinyint] NOT NULL,
    [Sta] [tinyint] NOT NULL,
    [Dex] [tinyint] NOT NULL,
    [Intel] [tinyint] NOT NULL,
    [Cha] [tinyint] NOT NULL,
    [Authority] [tinyint] NOT NULL CONSTRAINT [DF_Table_1_Authority] DEFAULT ((1)),
    [Points] [smallint] NOT NULL CONSTRAINT [DF_Table_1_Points] DEFAULT ((302)),
    [Gold] [int] NOT NULL CONSTRAINT [DF_Table_1_Gold] DEFAULT ((500000)),
    [Zone] [tinyint] NOT NULL CONSTRAINT [DF_Table_1_Zone] DEFAULT ((21)),
    [Bind] [smallint] NULL,
    [PX] [int] NOT NULL CONSTRAINT [DF_Table_1_PX] DEFAULT ((81700)),
    [PZ] [int] NOT NULL CONSTRAINT [DF_Table_1_PZ] DEFAULT ((43500)),
    [PY] [int] NOT NULL CONSTRAINT [DF_Table_1_PY] DEFAULT ((0)),
    [dwTime] [int] NOT NULL CONSTRAINT [DF_Table_1_dwTime] DEFAULT ((0)),
    [strSkill] [varchar](10) NULL CONSTRAINT [DF_USERDATA_strSkill] DEFAULT ('”'),
    [strItem] [binary](592) NULL,
    [strSerial] [binary](592) NULL,
    [strVIPItem] [binary](392) NULL,
    [strVIPSerial] [binary](392) NULL CONSTRAINT [DF_USERDATA_strVIPSerial] DEFAULT ((12345678)),
    [sQuestCount] [smallint] NOT NULL CONSTRAINT [DF_Table_1_sQuestCount] DEFAULT ((0)),
    [sAchieveQuestCount] [int] NOT NULL CONSTRAINT [DF_USERDATA_sAchieveQuestCount] DEFAULT ((0)),
    [strQuest] [binary](600) NULL,
    [strAchieveQuest] [binary](1500) NULL,
    [MannerPoint] [int] NOT NULL CONSTRAINT [DF_Table_1_MannerPoint] DEFAULT ((0)),
    [LoyaltyMonthly] [int] NOT NULL CONSTRAINT [DF_Table_1_LoyaltyMonthly] DEFAULT ((0)),
    [iSavedCONT] [int] NOT NULL CONSTRAINT [DF_USERDATA_iSavedCONT_1] DEFAULT ((0)),
    [strItemTime] [binary](592) NULL CONSTRAINT [DF_USERDATA_strItemTime] DEFAULT ((0)),
    [strVIPItemTime] [binary](392) NULL,
    [dtCreateTime] [datetime] NOT NULL CONSTRAINT [DF_Table_1_dtCreateTime] DEFAULT (getdate()),
    [dtUpdateTime] [datetime] NULL,
    [strMemo] [char](21) NULL CONSTRAINT [DF_USERDATA_strMemo] DEFAULT ('XEIDON'),
    [sGenieTime] [smallint] NOT NULL CONSTRAINT [DF_USERDATA_sGenieTime] DEFAULT ((120)),
    [strGenieOptions] [char](100) NULL,
    [strQuestKill] [varchar](1200) NULL,
    [strAchieveQuestKill] [varchar](3000) NULL,
    [strRebStats] [binary](50) NULL CONSTRAINT [DF_USERDATA_strRebStats] DEFAULT ((0)),
    [dtUpdateClan] [int] NULL CONSTRAINT [DF_USERDATA_dtUpdateClan] DEFAULT ((0)),
    [id] [int] IDENTITY(1,1) NOT NULL,
    [SkillTitle] [int] NOT NULL CONSTRAINT [DF_USERDATA_AchieveCoverTitle] DEFAULT ((0)),
    [CoverTitle] [int] NOT NULL CONSTRAINT [DF_USERDATA_CoverTitle] DEFAULT ((0)),
    [VIPStorePassword] [char](4) NOT NULL CONSTRAINT [DF_USERDATA_VIPStorePassword] DEFAULT ('0'),
    [VIPStoreMinute] [int] NOT NULL CONSTRAINT [DF_USERDATA_VIPStoreMinute] DEFAULT ((0)),
    [iMonsterDefeatedCount] [int] NOT NULL CONSTRAINT [DF_USERDATA_iMonsterDefeatedCount] DEFAULT ((0)),
    [iUserDefeatedCount] [int] NOT NULL CONSTRAINT [DF_USERDATA_iUserDefeatedCount] DEFAULT ((0)),
    [iUserDeathCount] [int] NOT NULL CONSTRAINT [DF_USERDATA_iUserDeathCount] DEFAULT ((0)),
    [iAchievementPoint] [int] NOT NULL CONSTRAINT [DF_USERDATA_iAchievementPoint] DEFAULT ((0)),
    [LastOnline] [int] NOT NULL CONSTRAINT [DF_USERDATA_LastOnline] DEFAULT ((0)),
    [sQuestUseCount] [smallint] NOT NULL DEFAULT ((0)),
    [strQuestUse] [binary](1296) NOT NULL DEFAULT ((0)),
    [tip] [smallint] NULL,
    CONSTRAINT [PK_USERDATA] PRIMARY KEY CLUSTERED
    (
    [strUserID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]

    GO

    SET ANSI_PADDING OFF
    GO



    6J7dl3.jpg
×
×
  • Yeni Oluştur...