@ Tajemniczy - Tak, planuje dodać Monolit (chyba już nie jest to żadną tajemnicą

), ale będzie to połączone z fabułą, więc raczej nie za prędko.
@ Wojak - Tak, pamiętam o tym problemie, i już zrobiłem zmiany systemu zapisywania amunicji u kompanów. Wymaga on jednak jeszcze testów w terenie. Ale tym już się zajmą gracze (czyli wy

) po opublikowaniu kolejnej wersji.
@ Pangia & Pilot - Wojak mówi o przypadku, gdy użytkownikiem jakiejś strzelby jest kompan.
Generalnie problem polegał na tym, że GSC nigdy nie planowało, aby stalkerzy (NPC) tracili amunicję ze swojego inwentarza. Rozwiązali to więc tak, że jeżeli NPC ma choć jedną kulę w zapasie do swojej broni, to w momencie animacji przeładowywania, silnik zawsze powiększał zapas do 300.
Musiałem to jakoś obejść, zrobiłem więc skrypt monitorujący zużycie amunicji u kompanów. Skrypt sprawdzał sobie ile kompan ma amunicji w plecaku przed przeładowaniem, załóżmy że miał np. 67 naboi, i ile mieści się w magazynku broni, którą kompan trzyma w rękach. Zaraz po tym jak silnik zwiększał ilość naboi do 300 podczas przeładowania, skrypt usuwał wszystkie naboje, i spawnował jeszcze raz ilość przed przeładowaniem, minus pojemność magazynka. Czyli np. 67 - 30 = 37.
Wszystko działało ok przy broniach magazynkowcyh, gdzie cały schemat odpalał się tylko raz. Przy strzelbach pojawił się problem, bo ładowane są po 1 kulę. Przy załadowaniu każdego pocisku silnik rejestrował raz X naboi w plecaku, za chwilę 300, za chwilę 0 i za chwilę znowu X. Gdzieś tutaj wkradał się błąd, i kompan ładował do strzelby cały czas naboje, aż nagle wszystko się stabilizowało. Problem w tym, że zanim system się "skapnął", że coś jest nie tak, kompan zdążył załadować już do strzelby ~100 naboi.
Pobocznym problemem było jeszcze, że jak daliśmy kompanowi więcej naboi niż 300, to kompan przy przeładowaniu wypluwał nadmiar na ziemię, ale moje rozwiązanie powinno to częściowo rozwiązać.
Rozwiązałem to tak, że system zapisuje sobie teraz w pamięci ile naboi ma kompan tylko w niektórych momentach:
- przy otrzymaniu przez gracza
- przy znalezieniu na ziemi
- przy wczytaniu save'a
- przy zmianie mapy
Po tym już w ogóle nie ingeruje w to ile "fizycznie" kompan ma naboi w plecaku, tylko liczy sobie wystrzały, i zapisuje utratę kul w pamięci.
Nadpisuje ilość "fizycznie" posiadanych kul przez kompana tylko w tych przypadkach:
- kiedy gracz zajrzy do plecaka kompana
- kiedy ilość posiadanych kul powinna być równa 0 (wtedy usuwa całość amunicji z plecaka kompana)
Kompan sobie biega ze swoją ukochaną trzysetką naboi, ale gracz nigdy tego nie widzi. Nie powoduje też to błędów.
Oczywiście widzę tutaj niepełną poprawność, gdyż może pojawić się następujące:
- Kompan może wyrzucić na ziemię nadmiar naboi, jeżeli damy mu więcej niż 300, ale tylko przy pierwszym przeładowaniu.
- Kompan może załadować pełny magazynek do broni, nawet jeśli zostaną mu np. 2 kule w plecaku, ale do kolejnego przeładowania już nie dojdzie, bo wartość amunicji będzie = 0.
Ale mówię, to się może stać, lecz nie musi. Stąd moje stwierdzenie, że trzeba zrobić testy polowe.
