Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Flyff > Flyff Private Server
You last visited: Today at 08:34

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



How to Create Giftbox

Discussion on How to Create Giftbox within the Flyff Private Server forum part of the Flyff category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Nov 2009
Posts: 182
Received Thanks: 13
How to Create Giftbox

Hello Elitepvers community . i wanna ask if there someone know how do i create a giftbox box or Item Box with Weapon or Armor Set per Jobs

if you open the box if your jobs is Mercenary you will get a weapon and set for mercenary

if someone share it thankyou so much big respect.
bhengot is offline  
Old 09/21/2021, 11:02   #2
 
elite*gold: 0
Join Date: Mar 2013
Posts: 200
Received Thanks: 38
Replace the entire function of:
Code:
CEventLua::SetLevelUpGift
With:
Code:
#ifdef __EVENTLUA_GIFT
void CEventLua::SetLevelUpGift(CUser* pUser, int nLevel)
{
    if (!IsPossible())
        return;

    if (m_Lua.GetLuaFunction("GetLevelUpGift"))
    {
        m_Lua.PushNumber(nLevel);
        m_Lua.PushString(pUser->m_playAccount.lpszAccount);
        m_Lua.PushNumber(pUser->GetLegendChar());
        m_Lua.PushNumber(pUser->GetJob());
        m_Lua.CallLuaFunction(4, 1);

        if (m_Lua.IsNil(-1))
        {
            m_Lua.Pop(0);
            return;
        }

        m_Lua.PushNil();
        while (m_Lua.TableLoop(-2))
        {
            DWORD dwItemId = CScript::GetDefineNum(m_Lua.GetFieldToString(-1, "strItemId"));
            int    nItemNum = (int)m_Lua.GetFieldToNumber(-1, "nItemNum");

            if (!prj.GetItemProp(dwItemId))
            {
                Error("CEventLua::SetLevelUpGift() - ItemProp is NULL. ItemId = \"%s\"", m_Lua.GetFieldToString(-1, "strItemId"));
                m_Lua.Pop(1);
                continue;
            }

            CItemElem itemElem;
            itemElem.m_dwItemId = dwItemId;
            itemElem.m_nItemNum = nItemNum;
            itemElem.SetFlag(static_cast<BYTE>(m_Lua.GetFieldToNumber(-1, "byFlag")));
            itemElem.SetSerialNumber();

            LogItemInfo aLogItem;
            aLogItem.Action = "E";
            aLogItem.SendName = pUser->GetName();
            aLogItem.WorldId = pUser->GetWorld()->GetID();
            aLogItem.Gold = aLogItem.Gold2 = pUser->GetGold();

            if (pUser->CreateItem(&itemElem))
            {
                aLogItem.RecvName = "EVENT_LEVELUP_GIFT";
                g_DPSrvr.OnLogItem(aLogItem, &itemElem, nItemNum);
            }
            else
            {
                g_dpDBClient.SendQueryPostMail(pUser->m_idPlayer, 0, itemElem, 0, "", "");
                aLogItem.RecvName = "EVENT_LEVELUP_GIFT_POST";
                g_DPSrvr.OnLogItem(aLogItem, &itemElem, nItemNum);
            }

            pUser->AddDefinedText(TID_GAME_EVENT_LEVELUP_GIFT, "\"%s\"", itemElem.GetName());
            m_Lua.Pop(1);
        }
    }
    m_Lua.Pop(0);
}
#endif
EventFunc.lua
Below:
Code:
ITEM = 4
MONSTER = 5
Add:
Code:
LEGEND_CLASS_NORMAL        = 0
LEGEND_CLASS_MASTER        = 1
LEGEND_CLASS_HERO        = 2
LEGEND_CLASS_LEGENDHERO    = 3

JOB_VAGRANT            = 0
JOB_MERCENARY            = 1
JOB_ACROBAT            = 2
JOB_ASSIST            = 3
JOB_MAGICIAN            = 4
JOB_PUPPETEER            = 5
JOB_KNIGHT            = 6
JOB_BLADE            = 7
JOB_JESTER            = 8
JOB_RANGER            = 9
JOB_RINGMASTER            = 10
JOB_BILLPOSTER            = 11
JOB_PSYCHIKEEPER        = 12
JOB_ELEMENTOR            = 13
JOB_GATEKEEPER            = 14
JOB_DOPPLER            = 15
JOB_KNIGHT_MASTER        = 16
JOB_BLADE_MASTER        = 17
JOB_JESTER_MASTER        = 18
JOB_RANGER_MASTER        = 19
JOB_RINGMASTER_MASTER        = 20
JOB_BILLPOSTER_MASTER        = 21
JOB_PSYCHIKEEPER_MASTER        = 22
JOB_ELEMENTOR_MASTER        = 23
JOB_KNIGHT_HERO            = 24
JOB_BLADE_HERO            = 25
JOB_JESTER_HERO            = 26
JOB_RANGER_HERO            = 27
JOB_RINGMASTER_HERO        = 28
JOB_BILLPOSTER_HERO        = 29
JOB_PSYCHIKEEPER_HERO        = 30
JOB_ELEMENTOR_HERO        = 31
JOB_LORDTEMPLER_HERO        = 32
JOB_STORMBLADE_HERO        = 33
JOB_WINDLURKER_HERO        = 34
JOB_CRACKSHOOTER_HERO        = 35
JOB_FLORIST_HERO        = 36
JOB_FORCEMASTER_HERO        = 37
JOB_MENTALIST_HERO        = 38
JOB_ELEMENTORLORD_HERO        = 39
JOB_MAX                = 40
Replace entire function:
Code:
SetLevelUpGift
With:
Code:
function SetLevelUpGift( nLevel, strAccount, strItemId, nItemNum, byFlag, nLegendClass, nJob )
    local nEventId = #tEvent
    local nSize = #tEvent[nEventId].Gift
  
    tEvent[nEventId].Gift[nSize+1] = {}
    tEvent[nEventId].Gift[nSize+1].nLevel = nLevel
    tEvent[nEventId].Gift[nSize+1].strAccount = strAccount
    tEvent[nEventId].Gift[nSize+1].strItemId = strItemId
    tEvent[nEventId].Gift[nSize+1].nItemNum = nItemNum
    tEvent[nEventId].Gift[nSize+1].byFlag = byFlag
    tEvent[nEventId].Gift[nSize+1].nLegendClass = nLegendClass
    tEvent[nEventId].Gift[nSize+1].nJob = nJob
end
Replace entire function:
Code:
GetLevelUpGift
With:
Code:
function GetLevelUpGift( nLevel, strAccount, nLegendClass, nJob )
    local nCount = 1
    local tGiftList = {}
    local tList = GetEventList()
    for i in pairs(tList) do
        local tGift = tEvent[tList[i]].Gift
        for j in pairs(tGift) do
            local nTemp = string.find( strAccount, tGift[j].strAccount )
            if( (tGift[j].strAccount == "all") or (nTemp ~= nil) ) then
                if( (tGift[j].nJob == JOB_MAX ) or ( tGift[j].nJob == nJob ) ) then
                    if( tGift[j].nLevel == nLevel and tGift[j].nLegendClass == nLegendClass ) then
                        tGiftList[nCount] = {}
                        tGiftList[nCount].strItemId = tGift[j].strItemId
                        tGiftList[nCount].nItemNum = tGift[j].nItemNum
                        tGiftList[nCount].byFlag = tGift[j].byFlag
                        nCount = nCount + 1
                    end
                end
            end
        end
    end
    
    return tGiftList
end
Event.lua
Replace:
Code:
---- 11. SetLevelUpGift( nLevel, "all", ItemId, nNum, byFlag ) -- 레벨업 선물( nLevel달성시 아이템 지급, "all" 부분에 특정 계정 지정 가능(예. "__bu" - 버디, "__an" - 엔젤 )
With:
Code:
---- 11. SetLevelUpGift( nLevel, "all", ItemId, nNum, byFlag, nLegendClass, nJob ) -- 레벨업 선물( nLevel달성시 아이템 지급, "all" 부분에 특정 계정 지정 가능(예. "__bu" - 버디, "__an" - 엔젤 ), nJob으로 직업지정(JOB_MAX 기입시 모든 직업)
You then are able to do events like this:
Code:
AddEvent( "JOB EVENT TEST" )
--{
    SetTime( "2007-06-08 14:23", "2099-06-08 16:11" )
    SetLevelUpGift( 60, "all", "II_SYS_SYS_SCR_BX_PET_LAWOLF7", 1, 2, LEGEND_CLASS_NORMAL, JOB_KNIGHT )
    SetLevelUpGift( 80, "all", "II_SYS_SYS_SCR_BX_PET_LAWOLF7", 1, 2, LEGEND_CLASS_MASTER, JOB_KNIGHT_MASTER )
    SetLevelUpGift( 125, "all", "II_SYS_SYS_SCR_BX_PET_LAWOLF7", 1, 2, LEGEND_CLASS_HERO, JOB_KNIGHT_HERO)
    SetLevelUpGift( 140, "all", "II_SYS_SYS_SCR_BX_PET_LAWOLF7", 1, 2, LEGEND_CLASS_LEGEND_HERO, JOB_LORDTEMPLER_HERO )    
--}
flyffdev is offline  
Thanks
1 User
Old 09/21/2021, 11:21   #3
 
elite*gold: 0
Join Date: Nov 2009
Posts: 182
Received Thanks: 13
Quote:
Originally Posted by flyffdev View Post
Replace the entire function of:
Code:
CEventLua::SetLevelUpGift
With:
Code:
#ifdef __EVENTLUA_GIFT
void CEventLua::SetLevelUpGift(CUser* pUser, int nLevel)
{
    if (!IsPossible())
        return;

    if (m_Lua.GetLuaFunction("GetLevelUpGift"))
    {
        m_Lua.PushNumber(nLevel);
        m_Lua.PushString(pUser->m_playAccount.lpszAccount);
        m_Lua.PushNumber(pUser->GetLegendChar());
        m_Lua.PushNumber(pUser->GetJob());
        m_Lua.CallLuaFunction(4, 1);

        if (m_Lua.IsNil(-1))
        {
            m_Lua.Pop(0);
            return;
        }

        m_Lua.PushNil();
        while (m_Lua.TableLoop(-2))
        {
            DWORD dwItemId = CScript::GetDefineNum(m_Lua.GetFieldToString(-1, "strItemId"));
            int    nItemNum = (int)m_Lua.GetFieldToNumber(-1, "nItemNum");

            if (!prj.GetItemProp(dwItemId))
            {
                Error("CEventLua::SetLevelUpGift() - ItemProp is NULL. ItemId = \"%s\"", m_Lua.GetFieldToString(-1, "strItemId"));
                m_Lua.Pop(1);
                continue;
            }

            CItemElem itemElem;
            itemElem.m_dwItemId = dwItemId;
            itemElem.m_nItemNum = nItemNum;
            itemElem.SetFlag(static_cast<BYTE>(m_Lua.GetFieldToNumber(-1, "byFlag")));
            itemElem.SetSerialNumber();

            LogItemInfo aLogItem;
            aLogItem.Action = "E";
            aLogItem.SendName = pUser->GetName();
            aLogItem.WorldId = pUser->GetWorld()->GetID();
            aLogItem.Gold = aLogItem.Gold2 = pUser->GetGold();

            if (pUser->CreateItem(&itemElem))
            {
                aLogItem.RecvName = "EVENT_LEVELUP_GIFT";
                g_DPSrvr.OnLogItem(aLogItem, &itemElem, nItemNum);
            }
            else
            {
                g_dpDBClient.SendQueryPostMail(pUser->m_idPlayer, 0, itemElem, 0, "", "");
                aLogItem.RecvName = "EVENT_LEVELUP_GIFT_POST";
                g_DPSrvr.OnLogItem(aLogItem, &itemElem, nItemNum);
            }

            pUser->AddDefinedText(TID_GAME_EVENT_LEVELUP_GIFT, "\"%s\"", itemElem.GetName());
            m_Lua.Pop(1);
        }
    }
    m_Lua.Pop(0);
}
#endif
EventFunc.lua
Below:
Code:
ITEM = 4
MONSTER = 5
Add:
Code:
LEGEND_CLASS_NORMAL        = 0
LEGEND_CLASS_MASTER        = 1
LEGEND_CLASS_HERO        = 2
LEGEND_CLASS_LEGENDHERO    = 3

JOB_VAGRANT            = 0
JOB_MERCENARY            = 1
JOB_ACROBAT            = 2
JOB_ASSIST            = 3
JOB_MAGICIAN            = 4
JOB_PUPPETEER            = 5
JOB_KNIGHT            = 6
JOB_BLADE            = 7
JOB_JESTER            = 8
JOB_RANGER            = 9
JOB_RINGMASTER            = 10
JOB_BILLPOSTER            = 11
JOB_PSYCHIKEEPER        = 12
JOB_ELEMENTOR            = 13
JOB_GATEKEEPER            = 14
JOB_DOPPLER            = 15
JOB_KNIGHT_MASTER        = 16
JOB_BLADE_MASTER        = 17
JOB_JESTER_MASTER        = 18
JOB_RANGER_MASTER        = 19
JOB_RINGMASTER_MASTER        = 20
JOB_BILLPOSTER_MASTER        = 21
JOB_PSYCHIKEEPER_MASTER        = 22
JOB_ELEMENTOR_MASTER        = 23
JOB_KNIGHT_HERO            = 24
JOB_BLADE_HERO            = 25
JOB_JESTER_HERO            = 26
JOB_RANGER_HERO            = 27
JOB_RINGMASTER_HERO        = 28
JOB_BILLPOSTER_HERO        = 29
JOB_PSYCHIKEEPER_HERO        = 30
JOB_ELEMENTOR_HERO        = 31
JOB_LORDTEMPLER_HERO        = 32
JOB_STORMBLADE_HERO        = 33
JOB_WINDLURKER_HERO        = 34
JOB_CRACKSHOOTER_HERO        = 35
JOB_FLORIST_HERO        = 36
JOB_FORCEMASTER_HERO        = 37
JOB_MENTALIST_HERO        = 38
JOB_ELEMENTORLORD_HERO        = 39
JOB_MAX                = 40
Replace entire function:
Code:
SetLevelUpGift
With:
Code:
function SetLevelUpGift( nLevel, strAccount, strItemId, nItemNum, byFlag, nLegendClass, nJob )
    local nEventId = #tEvent
    local nSize = #tEvent[nEventId].Gift
  
    tEvent[nEventId].Gift[nSize+1] = {}
    tEvent[nEventId].Gift[nSize+1].nLevel = nLevel
    tEvent[nEventId].Gift[nSize+1].strAccount = strAccount
    tEvent[nEventId].Gift[nSize+1].strItemId = strItemId
    tEvent[nEventId].Gift[nSize+1].nItemNum = nItemNum
    tEvent[nEventId].Gift[nSize+1].byFlag = byFlag
    tEvent[nEventId].Gift[nSize+1].nLegendClass = nLegendClass
    tEvent[nEventId].Gift[nSize+1].nJob = nJob
end
Replace entire function:
Code:
GetLevelUpGift
With:
Code:
function GetLevelUpGift( nLevel, strAccount, nLegendClass, nJob )
    local nCount = 1
    local tGiftList = {}
    local tList = GetEventList()
    for i in pairs(tList) do
        local tGift = tEvent[tList[i]].Gift
        for j in pairs(tGift) do
            local nTemp = string.find( strAccount, tGift[j].strAccount )
            if( (tGift[j].strAccount == "all") or (nTemp ~= nil) ) then
                if( (tGift[j].nJob == JOB_MAX ) or ( tGift[j].nJob == nJob ) ) then
                    if( tGift[j].nLevel == nLevel and tGift[j].nLegendClass == nLegendClass ) then
                        tGiftList[nCount] = {}
                        tGiftList[nCount].strItemId = tGift[j].strItemId
                        tGiftList[nCount].nItemNum = tGift[j].nItemNum
                        tGiftList[nCount].byFlag = tGift[j].byFlag
                        nCount = nCount + 1
                    end
                end
            end
        end
    end
    
    return tGiftList
end
Event.lua
Replace:
Code:
---- 11. SetLevelUpGift( nLevel, "all", ItemId, nNum, byFlag ) -- 레벨업 선물( nLevel달성시 아이템 지급, "all" 부분에 특정 계정 지정 가능(예. "__bu" - 버디, "__an" - 엔젤 )
With:
Code:
---- 11. SetLevelUpGift( nLevel, "all", ItemId, nNum, byFlag, nLegendClass, nJob ) -- 레벨업 선물( nLevel달성시 아이템 지급, "all" 부분에 특정 계정 지정 가능(예. "__bu" - 버디, "__an" - 엔젤 ), nJob으로 직업지정(JOB_MAX 기입시 모든 직업)
You then are able to do events like this:
Code:
AddEvent( "JOB EVENT TEST" )
--{
    SetTime( "2007-06-08 14:23", "2099-06-08 16:11" )
    SetLevelUpGift( 60, "all", "II_SYS_SYS_SCR_BX_PET_LAWOLF7", 1, 2, LEGEND_CLASS_NORMAL, JOB_KNIGHT )
    SetLevelUpGift( 80, "all", "II_SYS_SYS_SCR_BX_PET_LAWOLF7", 1, 2, LEGEND_CLASS_MASTER, JOB_KNIGHT_MASTER )
    SetLevelUpGift( 125, "all", "II_SYS_SYS_SCR_BX_PET_LAWOLF7", 1, 2, LEGEND_CLASS_HERO, JOB_KNIGHT_HERO)
    SetLevelUpGift( 140, "all", "II_SYS_SYS_SCR_BX_PET_LAWOLF7", 1, 2, LEGEND_CLASS_LEGEND_HERO, JOB_LORDTEMPLER_HERO )    
--}
i will try thankyou so much! <3
bhengot is offline  
Reply


Similar Threads Similar Threads
Giftbox & Fortune Circle
02/19/2013 - Flyff - 0 Replies
Hey, Ich wollt ma Fragen wie die Partyskills die Droprate erhöhen also um wv %? Hooffe ihr könnt helfen. MFG
Verkaufe Silberblume (Oberstleutnantanwärter) <50 Pics inside 9000 ap giftbox wert
03/21/2012 - Wolfteam - 5 Replies
Macht mir Preisvorschläge Ich will den Account verkaufen da mir Wolfteam keinen Spass mehr macht habe hier im forum schlechte erfahrungen gemacht deshalb verlinke ich auf facebook (ich gehe davon aus das hier im Forum 80% Scammer sind, frag mich ehrlich gesagt gerade selber warum ich ihn hier anbiete...) http://s14.directupload.net/images/120320/f3fjatg k.jpg http://s7.directupload.net/images/120320/temp/gvw srat5.jpg
Verkaufe Silberblume (Oberstleutnantanwärter) <50 Pics inside 80 euro giftbox wert
03/21/2012 - elite*gold Trading - 1 Replies
Macht mir Preisvorschläge Ich will den Account verkaufen da mir Wolfteam keinen Spass mehr macht habe hier im forum schlechte erfahrungen gemacht deshalb verlinke ich auf facebook (ich gehe davon aus das hier im Forum 80% Scammer sind, frag mich ehrlich gesagt gerade selber warum ich ihn hier anbiete...) http://s14.directupload.net/images/120320/f3fjatg k.jpg http://s7.directupload.net/images/120320/temp/gvw srat5.jpg
Trashed a giftbox... What would you do?
09/10/2010 - Battle of the Immortals - 8 Replies
Well i trashed the giftbox by mistake.. im around lvl 59 atm.. should i make a new char? Well the only thing keeping me of making a new char is that i got like 2 ids from people already, meaning profits of bonus etc will come once they hit hight lvls.. The thing is.. is it so important to have the gift box? are the gifts that good at higher lvls? Share with me your opinion, if having 2 ids is a reason to not make a new char and lvl it back to 59. PS: sometimes we need an extra...



All times are GMT +2. The time now is 08:34.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.