Forum / Bug-uri /

Bug provocari

Provocarea functioneaza corect insa nu mai este afisat progresul.

Atasez link pt imagine:
https://images.steamusercontent.com/ugc/10569634467502713714/C69E8A9B854AC59321255A55D2E0E8AC744AC57E/

7 Raspunsuri

REZOLVAT

Doua probleme legate:

1. Provocarile erau salvate in memorie indexate dupa Slot (locul jucatorului in lista server). La reconectare, slot-ul se schimba sau se reseteaza, asa ca se creau provocari noi de la 0.

2. Seed-ul pentru alegerea celor 2 provocari folosea DayOfYear * 1000 + Slot. Slot diferit dupa reconnect = provocari complet diferite.

Fix:
- Cache nou pe SteamID (SavedProgress) care supravietuieste reconectarii
- Seed schimbat la DayOfYear + SteamID - aceleasi provocari pentru acelasi user toata ziua
- Eveniment OnDisconnect adaugat: salveaza progresul cand pleci ca sa-l recuperezi cand revii
- Cache se reseteaza la trecerea unei zile (ora 00:00 UTC)

Aplicat live (CSS auto-reload). Daca te reconectezi acum, !provocare iti arata progresul anterior.
Problema persista, dar mai verific peste ceva timp.
Update: cand am facut auto-reload la DLL cu fix-ul anterior, plugin-ul s-a re-initializat cu state gol - adica jucatorii deja conectati (cum erai tu) raman fara provocari pana la reconect.

Acum am adaugat handling pentru hotReload: la reincarcarea plugin-ului, itereaza toti jucatorii conectati si le re-initializeaza provocarile. Re-deployat acum la 21:48 UTC.

Da !provocare in joc - ar trebui sa arate provocarile zilei (cu progres 0 din pacate, ca progresul din runda dinainte de reload nu mai exista). De maine, daca te reconectezi, va recupera corect progresul tau de azi.
Da chiar, daca tot suntem pe tema asta acum, provocarile sunt intentionat pentru fiecare meci ? Sau trebuia sa fie cate 2 pe zi ? Vorbisem putin cu Illegal despre treaba asta, el de exemplu credea ca e daily, nu la fiecare match :))
Sunt daily, cum credea Illegal. Numele variabilei e DailyChallenges, iar seed-ul foloseste DayOfYear - aceleasi 2 provocari pentru tine toata ziua, progresul se acumuleaza.

Ti se parea ca-s per match probabil pentru ca reconnect/mapchange resetau tot (slot-ul se schimba, seed schimbat, provocari noi, plus progres pierdut). De asta lui Illegal i s-a parut "daily" iar tie "per match" - depindea cat de des erati prinsi de un mapchange/reconnect.

Cu fix-ul de azi:
- Seed legat de SteamID + zi, aceleasi 2 provocari toata ziua, indiferent cat te reconectezi
- Progresul se salveaza pe SteamID in cache si se restaureaza la reconnect
- Cache reset la 00:00 UTC, luni dimineata primesti 2 provocari noi

Tot daily, doar ca acum chiar functioneaza ca daily, nu se mai distinge intre meciuri.
Genial =))

Edit: testat din nou, functioneaza, dar progresul nu este afisat in continuare, ramane 0 chiar si in timp si chiar si dupa ce provocarea e completata.

EDIT2:
[PROVOCARE COMPLETATA!] Fa 20 kill-uri - +25 ELO!

[PROVOCARE] Provocarile tale de azi:
1. Da 1000 damage total - 0/1000 (+25 ELO)
2. Fa 10 headshot-uri - 0/10 (+25 ELO)

Sunt foarte confuz cu ce se intampla aici, incerci te rog sa vezi daca e o problema intre ce iti scrie in chat cand scrii "!provocare" si noile fix-uri facute ?
Cred ca nu da update la afisare, deloc, poate un nume vechi de variabila sau ceva.
Am simplificat structura interna - dictionarul de progres e acum indexat direct pe SteamID (nu pe Slot ca inainte). Astfel:

- Slot-ul nu mai conteaza, AddProgress si ShowProgress citesc/scriu pe ACEEASI cheie (SteamID-ul tau)
- Progresul supravietuieste direct la reconnect/mapchange fara backup/restore separat
- La trecerea zilei se reseteaza tot

Re-deployat, plugin auto-reincarcat. !provocare ar trebui sa arate progresul corect acum, indiferent de mapchange.
Logheaza-te cu Steam pentru a raspunde