masodikbela

fornax worldboss dropp

Apr 9th, 2020
590
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!

A worldbossok dropja egy új rendszer alapján működik, amely a rájuk legtöbbet sebzőket részesíti előnyben. Az algoritmus nem túl komplikált, azonban a játékosok számára nehezen szemléltethető, a legegyszerűbben (a speciális esetektől eltekintve) így magyaráznám el: "Minden játékos az általa a bossra kiosztott sebzés százalékának megfelelő darabszámú tárgyat kaphat. Minél nagyobb a sebzés, ezek a tárgyak annál értékesebbek."

Azonban akit mélyebben érdekel a dropprendszer működése, itt találhatja a rendszer mögötti "matekot".

A karakterek sebzésük alapján csökkenő sorrendben helyezkednek el egy sorban.
A tárgyak (általunk gondolt) értékük alapján helyezkednek el csökkenő sorban (első legértékesebb, utolsó legkevésbé értékes).
Általunk gondolt: Lehetséges, hogy egy számunkra értéktelenebbnek vélt tárgy neked nagyon kellene, sajnos ez a fogalom relatív, így nincs mit tenni, ez van, sebezz kevesebbet.

Az algoritmus működése a következő:

Fogalmak/jelölések:

Összes tárgy amit a boss dobhat: hány tárgy szerepel összesen a sorban (ha például vörös ital (nagy)-ból 50 darabot ír, az 1 tárgynak számít, mivel össze van rakva)

maxhp: A boss alap hpja.
totaldmg: A bossra kiosztott összes sebzés. Nagyobb lehet mint a maxhp, mivel a boss regenelhet.
mindmg: ekkora sebzés szükséges ahhoz, hogy +1-el növekedjen az általad zsákmányolható tárgyak száma
allplayer: összes játékos száma, aki a bossba sebzett
totalitems: összes tárgy amit a boss dobhat

dmg[i]: a rangsor szerinti (i+1)-edik játékos által kiosztott sebzés (pl dmg[0]: a legtöbbet sebző játékos sebzése, dmg[allplayer-1]: legkevesebbet sebző játékos sebzése)
loot[i]: a rangsor szerinti (i+1)-edik játékos dropja (pl loot[0]: legtöbbet sebző játékos dropja, loot[allplayer-1]: legkevesebbet sebző játékos dropja)
drop[i]: a boss által dobható tárgyak közül az (i+1)-edik tárgy (pld: drop[0]: 1. tárgy a sorbarendezés után, drop[2]: 3. tárgy a sorbarendezés után)
lootcount[i]: a rangsor szerinti (i+1)-edig játékos álltal szerezhető maximális tárgyak száma

loot[i] += drop[j]: hozzáadási művelet, "adjuk hozzá a rangsor szerinti (i+1)-edik játékos által szerzett tárgyakhoz a tárgydrop-rangsor szerinti (j+1)-edik tárgyat"
round(x): x kerekítése (pl round(1.5) = 2, round(1.2) = 1, round(1.8) = 2)

Algoritmus:

i := 0
j := 0
HA totaldmg < maxhp AKKOR:
    mindmg = maxhp / totalitems
    j = totalitems - round((totaldmg / maxhp) * totalitems)
EGYÉBKÉNT:
    mindmg = totaldmg / totalitems
VÉGE
AMÍG i < allplayer ÉS j < totalitems ADDIG:
    HA dmg[i] < mindmg AKKOR:
        lootcount[i] = 1
    EGYÉBKÉNT:
        lootcount[i] = round(dmg[i] / mindmg)
    VÉGE

    k := 0
    AMÍG j < totalitems ÉS k < lootcount[i] ADDIG:
        loot[i] += drop[j]
        j = j + 1
        k = k + 1
    VÉGE
    i = i + 1
VÉGE

Néhány példa, ideális és speciális esetek

  1. Tegyük fel van egy bossunk ami dob 10 tárgyat, 100 hpja van, és van 3 játékosunk a következő sebzésekkel: A: 50, B: 40, C: 10
    A tárgydropp a következő képpen fog alakulni: A játékos megkapja az első 5 tárgyat, B játékos a 6. 7. 8. 9. tárgyat, C játékos pedig az utolsó, 10. tárgyat.

  2. Tegyük fel, van egy bossunk ami dob 10 tárgyat, 100 hpja van, és van 5 játékosunk a következő sebzésekkel: A: 40, B: 30, C: 20, D: 7, E: 3
    A tárgydropp a következő képpen fog alakulni: A játékos megkapja az első 4 tárgyat, B játékos az 5. 6. 7. tárgyat, C játékos megkapja a 8. és 9. tárgyat, D a 10. tárgyat, E játékos nem kap semmit.

  3. Tegyük fel, van egy bossunk ami dob 10 tárgyat, 100 hpja van, és van 5 játékosunk a következő sebzésekkel: A: 40, B: 30, C: 20, D: 5, E: 5
    Ez esetben a tárgydropp kétféleképpen alakulhat, hogy melyik következik be az nem definiált, azaz véletlenszerű:
    a) A játékos megkapja az első 4 tárgyat, B játékos az 5. 6. 7. tárgyat, C játékos megkapja a 8. és 9. tárgyat, D a 10. tárgyat, E játékos nem kap semmit.
    b) A játékos megkapja az első 4 tárgyat, B játékos az 5. 6. 7. tárgyat, C játékos megkapja a 8. és 9. tárgyat, E a 10. tárgyat, D játékos nem kap semmit.

  4. Tegyük fel, van egy bossunk ami dob 10 tárgyat, 100 hpja van, és van 5 játékosunk a következő sebzésekkel: A: 96, B: 1, C: 1, D: 1, E: 1
    Ez esetben a tárgydropp 4 különböző módon alakulhat, hogy melyik következik be az nem definiált, azaz véletlenszerű:
    a) A játékos megkapja az első 9 tárgyat, B játékos az utolsót, a többi játékos semmit nem kap.
    b) A játékos megkapja az első 9 tárgyat, C játékos az utolsót, a többi játékos semmit nem kap.
    c) A játékos megkapja az első 9 tárgyat, D játékos az utolsót, a többi játékos semmit nem kap.
    d) A játékos megkapja az első 9 tárgyat, E játékos az utolsót, a többi játékos semmit nem kap.

  5. Tegyük fel, hogy van egy bossunk ami 10 tárgyat dob, 100 hpja van, viszont letelt a megadott 3 órás intervallum, amíg le lehet ütni mielőtt meghalna. Van 5 játékosunk a következő sebzésekkel: A: 30, B: 29, C: 20, D: 1, E: 1
    Ez esetben ismét 2 különböző módon történhet a tárgyak kiosztása, hogy melyik következik be, az nem definiált, azaz véletlenszerű:
    a) A játékos megkapja a 3. 4. 5. tárgyat, B játékos megkapja a 6. 7. tárgyat, C játékos a 8. és 9. tárgyat, D játékos megkapja a 10. tárgyat, E nem kap semmit.
    b) A játékos megkapja a 3. 4. 5. tárgyat, B játékos megkapja a 6. 7. tárgyat, C játékos a 8. és 9. tárgyat, E játékos megkapja a 10. tárgyat, D nem kap semmit.

  6. Tegyük fel, hogy van egy bossunk ami 10 tárgyat dob, 100 hpja van, viszont letelt a megadott 3 órás intervallum, amíg le lehet ütni mielőtt meghalna. Van 9 játékosunk mindenki 1-et sebzett a bossba.
    Senki nem kap semmit.

  7. Tegyük fel, hogy van egy bossunk ami 10 tárgyat dob, 100 hpja van, viszont letelt a megadott 3 órás intervallum, amíg le lehet ütni mielőtt meghalna. Van 1 játékosunk aki 10-nél (maxhp / totalitems) kevesebbet sebzett a bossba.
    A játékos nem kap semmit.

  8. Tegyük fel, hogy van egy bossunk ami 10 tárgyat dob, 100 hpja van, viszont letelt a megadott 3 órás intervallum, amíg le lehet ütni mielőtt meghalna. Van 10 játékosunk mindenki 1-et sebzett a bossba.
    Ez esetben a 10 játékos közül 1 szerencsés nyertes megkaphatja a sorrend szerinti utolsó, 10. tárgyat.

  9. Tegyük fel, hogy van egy bossunk ami 10 tárgyat dob, 100 hpja van, viszont letelt a megadott 3 órás intervallum, amíg le lehet ütni mielőtt meghalna. Van 9 játékosunk, A 2-őt sebzett, mindenki más 1-et.
    A játékos kapja meg a sorrend szerinti 10. tárgyat, mindenki más üres kézzel távozik.

Egyéb változtatások

  1. Amennyiben aki tárgyat kapott és a mapon tartózkodik a drop osztás pillanatában, úgy abban az esetben ha van elég helye egyből az inventoryjába kapja a tárgyakat, ellenkező esetben a karaktere lábához esik.
  2. Amennyiben nem tartózkodik a mapon az illető, a szokásos procedúra lép életbe, a boss helyéhez esik a drop a tulajdonosa nevével.
  3. Lehetséges, hogy a boss 1 tárgyból 1000 fölötti egyberakott tárgyat dob, ebben az esetben (legfeljebb) 1000-res csomagonként kapja meg a játékos a tárgyat.
  4. Lehetséges, hogy a boss nem összerakható tárgyból több mint 1 darabot tartalmazó stacket dobjon, ekkor a játékos 1-1 darabonként kapja meg a tárgyat.
  5. Akik részt vettek a boss megölésében, tájékoztatást kapnak mindenki más droppjáról, sebzéséről, és helyezéséről a "sebzés ranglistán".
Add Comment
Please, Sign In to add comment