[How-To] Edit Rates

    • [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.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




    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )