[How-To] Edit Rates

  • Hallo,

    Mein 3. Topic im Level 2 Bereich

    *Man bin ich aufgeregt*


    Ich möchte euch erklären wie ihr die Rates richtig ändert.


    [FELD="Was wird benötigt"]
    1. Die Originale Fame Rates
    2. Zugriff zu den Resurces
    3. Das 1x1
    [/FELD]


    1. Die Originalen Fame Raten.

    Viele von euch glauben sicherlich das FlyforFame die Rates

    25x EXP

    haben.

    Das ist jedoch eine Lüge von DD

    Die Rates sind in wirklichkeit nur 5x

    Woher weiß ich das ?
    Die Antwort liegt in jedem Resurces Ordner
    In der EventFunc.lua

    Diese Datei ist nun für uns auch ausschlaggebend.


    Also Fangen wir an.

    Viele denken das die Constant.inc die Rates bestimmt.
    Das ist nur zum Teil richtig.
    Wenn die Conatant entfernt wird sind die Rates 1x 1x 1x.
    Deshalb lasst die Constant mal drine.

    Wir müssen uns der Event.lua
    und der EventFunc.lua widmen.


    Möglichkeit 1.
    Um die Rates zu ändern,
    geht ihr in die Event.lua
    dort erstellt ihr ein Neues Event und setzt mindestens diese
    Zeilen ein:
    [FELD="Rates Zeilen"]
    SetExpFactor( X )
    SetItemDropRate( X )
    SetPieceItemDropRate( X )
    SetGoldDropFactor( X )
    [/FELD]

    X = Die Multiplikation

    BSP:
    Die Rate soll EXP = 25, Drop = 100, Penya = 300, Item Droprate = 10
    sein.
    Dan müssten wir (Wenn die EventFunc.lua nicht geändert wurde)

    folgendes eintragen

    [FELD="BSP"]
    SetExpFactor( 5 )
    SetItemDropRate( 5 )
    SetPieceItemDropRate( 15 )
    SetGoldDropFactor( 2 )
    [/FELD]

    Das Fertige Event würde dan so aussehen:

    [FELD="Fertiges Event"]
    AddEvent( "EVENT TEST 01" )
    --{
    SetTime( "2007-06-08 14:23", "2007-06-08 16:11" )

    SetExpFactor( 5 )
    SetItemDropRate( 5 )
    SetPieceItemDropRate( 15 )
    SetGoldDropFactor( 2 )

    --}
    [/FELD]

    Die Auswirkung wäre
    das die Files die Grund Rates mal X nehmen
    Grundrate bei Fame ist : 5 (EXP)
    5x5 = 25
    End EXP Rate = 25


    Möglichkeit 2

    Wem die Event.lua zu blöd ist kann sich eines anderen tricks nutze machen.

    Der EventFunc.lua

    EventFunc.lua

    tEvent = {} -- À̺¥Æ® ÀúÀå Å×À̺í
    function SEC( n )
    return n*1000
    end

    function MIN( n )
    return n*SEC(60)
    end

    -----------------------------------------------------------------------------------
    ------- C¿¡¼* È£ÃâÇÒ ·ç¾Æ ÇÔ¼ö ----------------------------------------------------
    -----------------------------------------------------------------------------------
    -- º¯°æµÈ À̺¥Æ® ¸®½ºÆ® (DBSERVER)
    function GetEventState()
    local tReturn = {}
    local nCount = 1
    for i in pairs(tEvent) do
    local OldState = tEvent[i].State
    for j in pairs(tEvent[i].Time) do
    if( tEvent[i].Time[j].nStart <= tonumber(os.date("%Y%m%d%H%M")) ) then
    if( tEvent[i].Time[j].nEnd > tonumber(os.date("%Y%m%d%H%M")) ) then
    if( tEvent[i].State == 0 ) then
    tEvent[i].State = 1
    end
    else
    if( tEvent[i].State == 1 ) then
    tEvent[i].State = 0
    end
    end
    end
    end

    if( OldState ~= tEvent[i].State ) then
    tReturn[nCount] = {}
    tReturn[nCount].nId = i
    tReturn[nCount].State = tEvent[i].State
    nCount = nCount + 1
    end
    end

    return tReturn
    end

    -- WORLDSERVER¿¡¼* ½ÇÇàµÈ ½ºÅ©¸³Æ® ÆÄÀÏ¿¡µµ º¯°æµÈ state¸¦ Àû¿ëÇϱâ À§ÇÑ ÇÔ¼ö
    function SetState( nId, nState )
    tEvent[nId].State = nState
    TRACE( string.format( "Event - ID:%d, Title:%s, State:%d", nId, tEvent[nId].Desc, tEvent[nId].State ) )
    ERROR( string.format( "Event - ID:%d, Title:%s, State:%d", nId, tEvent[nId].Desc, tEvent[nId].State ) )
    end

    -- ÁøÇàÁßÀÎ À̺¥Æ® ¸®½ºÆ®
    function GetEventList()
    local tList = {}
    local nCount = 1
    for i in pairs(tEvent) do
    if( tEvent[i].State == 1 ) then
    tList[nCount] = i
    nCount = nCount + 1
    end
    end

    return tList
    end

    -- À̺¥Æ® Å×ÀÌºí¿¡ ÀÖ´Â ¸ðµç ¸®½ºÆ®
    function GetAllEventList()
    local tAllList = {}
    local nCount = 1
    for i in pairs(tEvent) do
    tAllList[nCount] = {}
    tAllList[nCount].nId = i
    tAllList[nCount].strTitle = tEvent[i].Desc
    tAllList[nCount].nState = tEvent[i].State
    nCount = nCount + 1
    end

    return tAllList
    end

    -- À̺¥Æ® »ó¼¼ Á¤º¸ Å×À̺íÀ» ¸®ÅÏ
    function GetEventInfo( nId )
    local tEventInfo = {}
    if( tEvent[nId] == nil ) then
    tEventInfo[1] = "No EventInfo ID = "..nId
    return tEventInfo
    end

    local nCount = 3
    tEventInfo[1] = "Title = " .. tEvent[nId].Desc
    tEventInfo[2] = "State = " .. tEvent[nId].State
    for i in pairs(tEvent[nId].Time) do
    local strTime = tEvent[nId].Time[i].nStart .. ", " ..tEvent[nId].Time[i].nEnd
    tEventInfo[nCount] = "Time["..i.."] = " .. strTime
    nCount = nCount + 1
    end

    for i in pairs(tEvent[nId].Item) do
    local strItem = tEvent[nId].Item[i].ItemId ..", ".. tEvent[nId].Item[i].ItemMaxNum ..", ".. tEvent[nId].Item[i].ItemNum ..", ".. tEvent[nId].Item[i].nLevel
    tEventInfo[nCount] = "Item["..i.."] = " .. strItem
    nCount = nCount + 1
    end

    if( tEvent[nId].fExpFactor ~= 1 ) then
    tEventInfo[nCount] = "ExpFactor = " .. tEvent[nId].fExpFactor
    nCount = nCount + 1
    end

    if( tEvent[nId].fItemDropRate ~= 1 ) then
    tEventInfo[nCount] = "ItemDropRate = " .. tEvent[nId].fItemDropRate
    nCount = nCount + 1
    end

    if( tEvent[nId].fPieceItemDropRate ~= 1 ) then
    tEventInfo[nCount] = "fPieceItemDropRate = " .. tEvent[nId].fPieceItemDropRate
    nCount = nCount + 1
    end

    if( tEvent[nId].fGoldDropFactor ~= 1 ) then
    tEventInfo[nCount] = "fGoldDropFactor = " .. tEvent[nId].fGoldDropFactor
    nCount = nCount + 1
    end

    if( tEvent[nId].nAttackPower ~= 0 ) then
    tEventInfo[nCount] = "nAttackPower = " .. tEvent[nId].nAttackPower
    nCount = nCount + 1
    end

    if( tEvent[nId].nDefensePower ~= 0 ) then
    tEventInfo[nCount] = "nDefensePower = " .. tEvent[nId].nDefensePower
    nCount = nCount + 1
    end

    if( tEvent[nId].nCouponEvent ~= 0 ) then
    if( tEvent[nId].nCouponEvent < MIN(1) ) then
    tEventInfo[nCount] = "nCouponEventTime = " .. tEvent[nId].nCouponEvent / SEC(1) .. "Sec"
    else
    tEventInfo[nCount] = "nCouponEventTime = " .. tEvent[nId].nCouponEvent / MIN(1) .. "Min"
    end
    nCount = nCount + 1
    end

    for i in pairs(tEvent[nId].Gift) do
    local strGift = tEvent[nId].Gift[i].nLevel ..", ".. tEvent[nId].Gift[i].strAccount ..", ".. tEvent[nId].Gift[i].strItemId ..", ".. tEvent[nId].Gift[i].nItemNum
    tEventInfo[nCount] = "Gift["..i.."] = " .. strGift
    nCount = nCount + 1
    end

    return tEventInfo
    end

    -- À̺¥Æ® ¼³¸í
    function GetDesc( nId )
    local strDesc = tEvent[nId].Desc

    return strDesc
    end

    -- ½Ã°£À» ¼ýÀÚ·Î ¹Ù²ãÁÖ´Â ÇÔ¼ö
    function GetTimeToNumber( strTime )
    local strTemp = ""
    local j = 0
    for i in string.gfind( strTime, "%d+" ) do
    j = j + 1
    if( (j~=1) and (tonumber(i)<10) ) then
    i = "0"..tonumber(i)
    end
    strTemp = strTemp..i
    end
    return tonumber( strTemp )
    end

    ---------------------------------------------------------------------------
    ------ µ¥ÀÌÅÍ Ãß°¡ ÇÔ¼ö ---------------------------------------------------
    ---------------------------------------------------------------------------

    -- »õ·Î¿î À̺¥Æ® Ãß°¡
    function AddEvent( strDesc )
    local nEventId = table.getn(tEvent) + 1

    tEvent[nEventId] = {}
    tEvent[nEventId].Item = {}
    tEvent[nEventId].Time = {}
    tEvent[nEventId].Desc = strDesc
    tEvent[nEventId].fExpFactor = 1
    tEvent[nEventId].fItemDropRate = 1
    tEvent[nEventId].fPieceItemDropRate = 1
    tEvent[nEventId].fGoldDropFactor = 1
    tEvent[nEventId].State = 0
    tEvent[nEventId].nAttackPower = 0
    tEvent[nEventId].nDefensePower = 0
    tEvent[nEventId].nCouponEvent = 0
    tEvent[nEventId].Gift = {}
    end

    -- ½ÃÀ۽ð£, ³¡½Ã°£
    function SetTime( strStart, strEnd )
    local nEventId = table.getn(tEvent)
    local nSize = table.getn( tEvent[nEventId].Time ) + 1

    tEvent[nEventId].Time[nSize] = {}
    tEvent[nEventId].Time[nSize].nStart = GetTimeToNumber( strStart )
    tEvent[nEventId].Time[nSize].nEnd = GetTimeToNumber( strEnd )
    end

    -- ¾ÆÀÌÅÛ
    function SetItem( ItemId, nItemMaxNum, nItemNum, nLevel )
    local nEventId = table.getn(tEvent)
    local nSize = table.getn(tEvent[nEventId].Item)

    tEvent[nEventId].Item[nSize+1] = {}
    tEvent[nEventId].Item[nSize+1].ItemId = ItemId
    tEvent[nEventId].Item[nSize+1].ItemMaxNum = nItemMaxNum
    tEvent[nEventId].Item[nSize+1].ItemNum = nItemNum
    tEvent[nEventId].Item[nSize+1].nLevel = nLevel
    tEvent[nEventId].Item[nSize+1].TimeOut = 0
    tEvent[nEventId].Item[nSize+1].Skip = 0

    local tInterval = {}
    local nTotal = 0
    for i in pairs(tHour) do
    nTotal = nTotal + tHour[i]
    end
    for i in pairs(tHour) do
    tInterval[i] = 3600000 / ( nItemMaxNum * tHour[i] / nTotal )
    tInterval[i] = math.floor(tInterval[i])
    end
    tEvent[nEventId].Item[nSize+1].tInterval = tInterval
    end

    -- µå·ÓµÉ ¾ÆÀÌÅÛ ¸ñ·Ï
    function GetItem( nTickCount, nLevel )
    local nHour = tonumber(os.date("%H")) + 1
    local tList = GetEventList()
    local tReturn = {}
    local nCount = 1
    for i in pairs(tList) do
    local tItem = tEvent[tList[i]].Item
    for j in pairs(tItem) do
    if( (nTickCount >= tItem[j].TimeOut) and (tItem[j].nLevel <= nLevel) ) then
    tItem[j].TimeOut = tItem[j].tInterval[nHour] + nTickCount
    if( tItem[j].Skip == 0 ) then
    local nRandom = math.random(1, tItem[j].ItemNum)
    tReturn[nCount] = {}
    tReturn[nCount].ItemId = tItem[j].ItemId
    tReturn[nCount].ItemNum = nRandom
    tItem[j].Skip = nRandom - 1
    nCount = nCount + 1
    TRACE( "Event.lua : GetItem() - Drop - "..tItem[j].ItemId..", "..nRandom.."°³, Skip:"..tItem[j].Skip.." ½Ã°£´ë:"..(nHour-1).." ~ "..nHour )
    else
    tItem[j].Skip = tItem[j].Skip - 1
    TRACE( "Event.lua : GetItem() - Skip - "..tItem[j].ItemId..", ³²Àº Skip:"..tItem[j].Skip.." ½Ã°£´ë:"..(nHour-1).." ~ "..nHour )
    end
    end
    end
    end
    return tReturn
    end
    -- °æÇèÄ¡ ¹è¼ö
    function SetExpFactor( fExpFactor )
    local nEventId = table.getn(tEvent)
    tEvent[nEventId].fExpFactor = fExpFactor
    end

    function GetExpFactor()
    local tList = GetEventList()
    local fExpFactor = 5
    for i in pairs(tList) do
    if( tEvent[tList[i]].fExpFactor ~= nil ) then
    fExpFactor = fExpFactor * tEvent[tList[i]].fExpFactor
    end
    end


    return fExpFactor
    end

    -- ¾ÆÀÌÅÛ µå·Ó·ü ¹è¼ö
    function SetItemDropRate( fItemDropRate )
    local nEventId = table.getn(tEvent)
    tEvent[nEventId].fItemDropRate = fItemDropRate
    end

    function GetItemDropRate()
    local tList = GetEventList()
    local fItemDropRate = 15
    for i in pairs(tList) do
    if( tEvent[tList[i]].fItemDropRate ~= nil ) then
    fItemDropRate = fItemDropRate * tEvent[tList[i]].fItemDropRate
    end
    end


    return fItemDropRate
    end

    -- °³º° ¾ÆÀÌÅÛ µå·Ó·ü ¹è¼ö
    function SetPieceItemDropRate( fPieceItemDropRate )
    local nEventId = table.getn(tEvent)
    tEvent[nEventId].fPieceItemDropRate = fPieceItemDropRate
    end

    function GetPieceItemDropRate()
    local tList = GetEventList()
    local fPieceItemDropRate = 5
    for i in pairs(tList) do
    if( tEvent[tList[i]].fPieceItemDropRate ~= nil ) then
    fPieceItemDropRate = fPieceItemDropRate * tEvent[tList[i]].fPieceItemDropRate
    end
    end


    return fPieceItemDropRate
    end

    -- Æä³Ä µå·Ó ¹è¼ö
    function SetGoldDropFactor( fGoldDropFactor )
    local nEventId = table.getn(tEvent)
    tEvent[nEventId].fGoldDropFactor = fGoldDropFactor
    end

    function GetGoldDropFactor()
    local tList = GetEventList()
    local fGoldDropFactor = 20
    for i in pairs(tList) do
    if( tEvent[tList[i]].fGoldDropFactor ~= nil ) then
    fGoldDropFactor = fGoldDropFactor * tEvent[tList[i]].fGoldDropFactor
    end
    end


    return fGoldDropFactor
    end


    -- °ø°Ý·Â Áõ°¡
    function SetAttackPower( nAttackPower )
    local nEventId = table.getn(tEvent)
    tEvent[nEventId].nAttackPower = nAttackPower
    end

    function GetAttackPower()
    local tList = GetEventList()
    local nAttackPower = 0
    for i in pairs(tList) do
    if( tEvent[tList[i]].nAttackPower ~= nil ) then
    nAttackPower = nAttackPower + tEvent[tList[i]].nAttackPower
    end
    end

    return nAttackPower
    end


    -- ¹æ¾î·Â Áõ°¡
    function SetDefensePower( nDefensePower )
    local nEventId = table.getn(tEvent)
    tEvent[nEventId].nDefensePower = nDefensePower
    end

    function GetDefensePower()
    local tList = GetEventList()
    local nDefensePower = 0
    for i in pairs(tList) do
    if( tEvent[tList[i]].nDefensePower ~= nil ) then
    nDefensePower = nDefensePower + tEvent[tList[i]].nDefensePower
    end
    end

    return nDefensePower
    end

    -- ÄíÆù À̺¥Æ®
    function SetCouponEvent( nTime )
    local nEventId = table.getn(tEvent)
    tEvent[nEventId].nCouponEvent = nTime
    end

    function GetCouponEvent()
    local tList = GetEventList()
    for i in pairs(tList) do
    if( tEvent[tList[i]].nCouponEvent ~= 0 ) then
    return tEvent[tList[i]].nCouponEvent
    end
    end

    return 0
    end

    function SetLevelUpGift( nLevel, strAccount, strItemId, nItemNum )
    local nEventId = table.getn(tEvent)
    local nSize = table.getn(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
    end

    function GetLevelUpGift( nLevel, strAccount )
    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].nLevel == nLevel ) then
    tGiftList[nCount] = {}
    tGiftList[nCount].strItemId = tGift[j].strItemId
    tGiftList[nCount].nItemNum = tGift[j].nItemNum
    nCount = nCount + 1
    end
    end
    end
    end

    return tGiftList
    end

    In diesem Spoiler befindet sich eine EventFunc.lua
    dort gibt es die Einträge

    [FELD="EXP"]
    function GetExpFactor()
    local tList = GetEventList()
    local fExpFactor = 5
    for i in pairs(tList) do
    if( tEvent[tList[i]].fExpFactor ~= nil ) then
    fExpFactor = fExpFactor * tEvent[tList[i]].fExpFactor
    end
    end

    [/FELD]

    [FELD="GetItemDropRate"]
    function GetItemDropRate()
    local tList = GetEventList()
    local fItemDropRate = 15
    for i in pairs(tList) do
    if( tEvent[tList[i]].fItemDropRate ~= nil ) then
    fItemDropRate = fItemDropRate * tEvent[tList[i]].fItemDropRate
    end
    end
    [/FELD]

    [FELD="Pirce Item Drop"]
    function GetPieceItemDropRate()
    local tList = GetEventList()
    local fPieceItemDropRate = 5
    for i in pairs(tList) do
    if( tEvent[tList[i]].fPieceItemDropRate ~= nil ) then
    fPieceItemDropRate = fPieceItemDropRate * tEvent[tList[i]].fPieceItemDropRate
    end
    end

    [/FELD]

    [FELD="Gold Rate"]

    function GetGoldDropFactor()
    local tList = GetEventList()
    local fGoldDropFactor = 20
    for i in pairs(tList) do
    if( tEvent[tList[i]].fGoldDropFactor ~= nil ) then
    fGoldDropFactor = fGoldDropFactor * tEvent[tList[i]].fGoldDropFactor
    end
    end
    [/FELD]

    Die Roten Zahlen sind die Grund Rates.
    Ändert diese Einfach.

    Und schon sind die Rates geändert :D


    *Danksagung
    Ich möchte mich bei Twilight bedanken der wiedermal den Entscheidenden Hinweis gegeben hat.

    Mit Freundlichen Grüßen
    OffigM
    FlyforGalaxy Developer


  • Ehrlich gesagt ist es eine Frechheit, jeden meiner Tipps an dich hier zu "releasen".

    Das mit der EventFunc.lua hast du z.B. von mir.
    Siehe andere Threads, z.B. neue Welten adden.

    Naja, dann geb ich einfach nichts mehr weiter, wenn meine Hinweise einfach so weitergegeben werden, auch wenn es Level2 ist.

    [RIGHT][SIZE=1]
    It'll take QQ to a whole new level.[/SIZE]
    [mad][/mad]
    [/RIGHT]

  • [COLOR="White"]Ich habe es anders herausgefunden xD
    und zwar wenn man Ingame kommt sind man als GM die Rates im Chat .
    Am ende steht auch wie hoch sie sein können : D[/COLOR]

  • [COLOR="Cyan"]BUMP
    BUMO
    BUMO[/COLOR]

  • [COLOR="Cyan"]BUMP
    BUMP
    BUMPO[/COLOR]

  • [COLOR="Lime"]Hab Thema mal in den Richtigen Bereich verschoben.

    mfg[/COLOR]

  • [COLOR="Cyan"]Große Bump Aktion[/COLOR]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!