[Guide] Event.lua - Wie stelle ich neue Events ein?

    • [Guide] Event.lua - Wie stelle ich neue Events ein?

      Brainfuck-Quellcode

      1. ----------------------------------------------------------------------
      2. -- Built with HDBlacker's Event Manager --
      3. ----------------------------------------------------------------------
      4. ----------------------------------------------------------------------
      5. ---------------- Loading event-related Lua-Functions -----------------
      6. ----------------------------------------------------------------------
      7. dofile(".\\LuaFunc\\EventFunc.lua")
      8. ----------------------------------------------------------------------
      9. ----------------- Automatic Notices for TRANS Server -----------------
      10. ----------------------------------------------------------------------
      11. bNotice = true -- Enable automatic notices?
      12. ----------------------------------------------------------------------
      13. ---- Notice( strDate, nInterval(MIN), nAmount ----
      14. ---- AddMessage( strMessage ) ----
      15. ----------------------------------------------------------------------
      16. Notice( "Sun 23:00", 1, 1 )
      17. --{
      18. AddMessage( "Test" )
      19. --}
      20. ----------------------------------------------------------------------
      21. ---- Initialization ----
      22. ----------------------------------------------------------------------
      23. ---- Hourly drop-weight of items
      24. tHour = { 505, 409, 324, 280, 220, 203, 202, 212,
      25. 227, 261, 302, 349, 571, 701, 764, 803,
      26. 790, 789, 754, 849, 936, 940, 919, 720 }
      27. ----------------------------------------------------------------------
      28. ----------------------------------------------------------------------
      29. ---- AddEvent( strDesc ) -- Registration of new Event named strDesc
      30. ---- SetTime( strStartTime, strEndTime ) -- Event's start time, end time of event (multiple settings possible)
      31. ---- -- Format: 2007-05-03 17:53
      32. ---- SetItem( ItemId, nMax, nNum, nLevel ) -- Drop item, maximum amount, the number of drop (random), The minimum level monsters drop items - several possible
      33. ---- SetExpFactor( fFactor ) -- Exp Factor multiplifier
      34. ---- SetItemDropRate( fFactor ) -- Drop Factor multiplifier
      35. ---- SetPieceItemDropRate( fFactor ) -- Item Piece Factor multiplifier
      36. ---- SetGoldDropFactor( fFactor ) -- Penya Rate multiplifier
      37. ---- SetAttackPower( nAttackPower ) -- Increase Damage
      38. ---- SetDefensePower( nDefensePower ) -- Increase Defense
      39. ---- SetCouponEvent( SEC(n) ) -- Coupon Event Access time (SEC or MIN)
      40. ---- SetLevelUpGift( nLevel, "all", ItemId, nNum ) -- Gives away items on level up: Level of giveaway, accountname, Item, Item Count
      41. ---- -- Account -> __ed: Account starts with an ed__: Account ends with ed
      42. ---- -- all: All accounts else: only account else
      43. ----------------------------------------------------------------------
      44. AddEvent( "EVENT TEST 01" )
      45. --{
      46. SetTime( "2007-06-08 14:23", "2007-06-08 16:11" )
      47. SetTime( "2007-06-09 14:23", "2007-06-10 00:00" )
      48. SetCouponEvent( MIN(120) )
      49. SetExpFactor( 2 )
      50. SetGoldDropFactor( 2 )
      51. SetItemDropRate( 2 )
      52. SetPieceItemDropRate( 2 )
      53. SetAttackPower( 150 )
      54. SetDefensePower( 100 )
      55. SetLevelUpGift( 15, "__bu", "II_SYS_SYS_SCR_BX_PET_LAWOLF7", 1 )
      56. SetItem( "II_SYS_SYS_EVE_COMMERGIFTBOX55", 500, 1, 15 )
      57. SetItem( "II_SYS_SYS_EVE_HAPPYMONEY01", 30000, 5, 15 )
      58. SetItem( "II_SYS_SYS_EVE_PUMPKIN01", 2000, 3, 15 )
      59. --}
      Alles anzeigen




      Dies ist eine typische Event.lua Datei.
      Was kann man alles in einem Event machen und wie macht man eines?


      1. Schritt: Event hinzufügen
      Überlegt euch einen Namen für das Event. Der Name wird ingame angezeigt. Entscheidet ihr euch z.B. für den Namen "HDBlacker's Test Event", steht ingame beim Einloggen "HDBlacker's Test Event läuft noch.".
      Um ein neues Event zu definieren, reicht die folgende Zeile:

      Quellcode

      1. AddEvent( "HDBlacker's Test Event" )



      2. Schritt: Zeit für das Event hinzufügen
      Events werden automatisch gestartet. Ihr müsst dem Server nur beibringen, wann das Event gestartet werden soll.

      Soll das Event zum Beispiel in der Zeit vom 20.02.2010 00:31 Uhr bis 21.03.2011 10:12 Uhr laufen, fügt folgende Zeile hinzu:

      Quellcode

      1. SetTime( "2010-02-20 00:31", "2011-03-21 10:12" )


      Von den Zeit-Zeilen können mehrere hinzugefügt werden, wenn das Event z.B. nur am Wochenende laufen soll, könnt ihr diese Zeitspannen für jedes Wochenende anlegen:

      SetTime ( ..... )
      SetTime ( ..... )
      SetTime ( ..... )


      3. Schritt: Features hinzufügen
      Jetzt ist es an der Zeit, Features zum Event hinzuzufügen. Denn was nützt schon ein Event, bei dem nichts geändert wird?




      EXP erhöhen
      Mit folgendem Befehl setzt ihr die EXP-Rate auf das 10-fache.
      Vorsicht! Solltet ihr von haus aus schon eine 25-fache EXP-Rate haben, wird eure Rate auf 25*10 gesetzt und nicht auf 10.

      Quellcode

      1. SetExpFactor( 10 )


      Droprate erhöhen
      Selbiges wie bei EXP-Rate. 2-fache Erhöhung:

      Quellcode

      1. SetItemDropRate( 2 )


      Droprate von Setteilen erhöhen
      (Ich habe gehört, dass dies die Droprate von Setteilen erhöht. Genau weiß ich es nicht)
      3- fache Erhöhung:

      Quellcode

      1. SetPieceItemDropRate( 3 )


      Penyarate erhöhen
      Selbiges wie bei EXP-Rate. 4-fache Erhöhung:

      Quellcode

      1. SetGoldDropFactor( 4 )


      ATK-Rate erhöhen
      ATK um 110 erhöhen (nicht getestet)

      Quellcode

      1. SetAttackPower( 110 )


      DEF-Rate erhöhen
      DEF um 95 erhöhen (nicht getestet)

      Quellcode

      1. SetDefensePower( 95 )


      Coupon Event starten
      Was auch immer das ist, ich weiß es nicht.
      Man kann ein Coupon Event entweder auf alle x Sekunden oder alle x Minuten setzen. (SEC oder MIN)
      Möchte man es auf alle 3 Minuten setzen, gibt man folgenden Befehl ein:

      Quellcode

      1. SetCouponEvent( MIN(3) )


      Items beim Levelup vergeben (Level Up Event)
      Anzugeben sind das Level des Spielers, das er beim Levelup sein muss, die II ID des Items (kann man sich mit meinem Item Reader anzeigen lassen), der Accountname des Users, an den die Items wandern sollen und die Anzahl der Items.

      Möchte man beispielsweise bei einem Level up auf Level 10 (das Event ist für alle Spieler) 198 Moonstones an den Charakter vergeben, so fügt man folgende Zeile ein:

      Quellcode

      1. SetLevelUpGift( 10, "all", "II_GEN_MAT_MOONSTONE", 198 )


      Sollen nur Charaktere mit einem Accountnamen, der mit "em" anfängt, die Items erhalten, so ersetzt man "all" mit "__em" (eminem, emsa, emrah würden die Items erhalten, lalem, asda, rodik nicht), soll der Accountname mit "ol" aufhören, ersetzt man "all" mit "ol__" (alkohol, monopol, mongol erhalten die Items, eminem, test, bp01 nicht).

      Drop Event (Items zur Drop Möglichkeit hinzufügen)
      Anzugeben sind das Mindestlevel des Monsters, das das Item droppen soll, die II ID (wie vorhin schon gesagt, kann man diese mit meinem Item Reader herausfinden), die Maximalanzahl des Items in einem Drop und die Chance auf das Item (oder Maximalanzahl an Drops des Items pro Tag, keine Ahnung..)
      Soll z.B. eine Volcano Card maximal 100x pro Tag gedroppt werden, bei Monstern ab Level 40 und maximal 1 Karte pro Monster, fügt man folgende Zeile ein:

      Quellcode

      1. SetItem( "II_GEN_MAT_ELE_VOLCANO", 100, 1, 40 )





      Setzt man alles zusammen, was wir in dieses Event eingefügt haben, sieht das Ganze so aus (die --{, --} und die Einrückungen sind rein zum besseren Aussehen):

      Quellcode

      1. AddEvent( "HDBlacker's Test Event" )
      2. --{
      3. SetTime( "2010-02-20 00:31", "2011-03-21 10:12" )
      4. SetExpFactor( 10 )
      5. SetItemDropRate( 2 )
      6. SetPieceItemDropRate( 3 )
      7. SetGoldDropFactor( 4 )
      8. SetAttackPower( 110 )
      9. SetDefensePower( 95 )
      10. SetCouponEvent( MIN(3) )
      11. SetLevelUpGift( 10, "all", "II_GEN_MAT_MOONSTONE", 198 )
      12. SetItem( "II_GEN_MAT_ELE_VOLCANO", 100, 1, 40 )
      13. --}
      Alles anzeigen


      Ich hoffe, ihr habt alles so weit verstanden.
      Für Berichtigungen (speziell bezüglich SetPieceItemDropRate, SetItem, SetAttackPower und SetDefensePower, wo ich mir nicht genau sicher bin) bin ich dankbar.
      Ansonsten sollte soweit alles stimmen.
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )