Dev update: jednak rozwiązanie od copilota nie zadziałało, tamte walki bez problemów to był fuks (albo jego brak, zaważywszy, że trochę zakłamały sytuację) So we're back to square 1.
@MrGerwant No niestety nie ogarniam c++ żeby ci pomóc ale z doświadczenia wiem, że pewnie masz gdzieś po drodze jakiś mały błąd logiczny i w takich sytuacjach zazwyczaj robię jedną z tych rzeczy:
1 - Siedzę i linijka po linijce z debuggerem sprawdzam po kolei jak się wykonuje kod obserwując wszystkie zmienne itp. To może zająć bardzo długo i możesz nigdy nie znaleźć tego błędu.
2 - Przepisać logikę tur od nowa i c⁎⁎j bo szkoda tracić czasu na debugowanie kodu w nieskończoność. Spróbuj napisać to teraz w trochę inny sposób i zaimplementuj jakieś mechanizmy bezpieczeństwa które będą się upewniać że dobra postać ma teraz turę.
Dev update pobawiłem się z gpt (copilotem) w VS, podsunął mi, żeby na początku tury sprawdzać czy tablica, której używam do ustalania kolejności tur jest pusta. Uważałem, że to bez sensu, ale rozegrałem 3 walki i nie miałem ani podwójnych tur ani poprzednich sojuszników. potestuję jeszcze przez weekend bo nie chce mi się wierzyć, że to działa. Wywalanie okienka game over przy tylko jednym martwym sojuszniku się dalej zdarza, ale tu może po prostu będę zliczał martwych sojuszników od początku przy każdej śmierci zamiast po prostu dekrementować zmienną #konkursnanajbardziejgownianymemznosaczem #wirsprawiedliwosci #grysprawiedliwe #gamedev #gry #rpg #programowanie #cpp #unrealengine
@MrGerwant polecam jeszcze spróbować wkleić kod problematycznej funkcji i spytać gdzie może być błąd. W szukaniu błędu jeśli wiesz że istnieje ai jest niezłe
Nie ma tu miejsca na bohaterów w lśniących zbrojach. Jesteś szabrownikiem, który z jakiegoś powodu uznał, że "idziemy do przeklętego lasu" to świetny pomysł. Kopiesz w grobowcach, walczysz z potworami i budujesz twierdzę, żeby inni też mieli gdzie umrzeć.
Stajesz przed naszym magicznym kołem. Kręcisz. Cyk, cyk, cyk… i nagle wygrywasz 10 tajemniczych zestawów RPGowych kości! Norbirt Brzozowski by powiedział: „No proszę Państwa, takich emocji w teleturnieju dawno nie było!”. Przegrać z losem w tej grze się nie da ;)
Zdjęcia są poglądowe, bo przecież przeznaczenia się nie wybiera – daj się zaskoczyć!
Ugułem problem wygląda tak, że czasem odpala się tura dla dwóch sojuszników naraz - np. Halyna leczy janusza i jednocześnie Śwagier go bije bo ma atak na tym samym miejscu co ona leczenie albo dwie postacie używają tego samego itemka naraz. Druga rzecz to, że czasem pojawia się sojusznik, który był poprzednio usunięty z druzyny, np. gdy zamieniliśmy ich z menu - tzn. sprajt zostaje tam gdzie był ale widzimy jego portret, imię i skille i jak wybierzemy jakąś umiejetność to wykona ją inna postać (nwm czy dobrze tłumaczę).
Walka u mnie działa tak, że jest aktor FightEncounter, który albo spawnuje przeciwnika, który nas goni i słucha eventu gdy znajdziemy się w jego kuli kolizji, żeby odpalic walkę, albo dziedziczączy z tej klasy AutoStartFightEncounter ma wskaźnik do triggera cutscenki i reaguje na event przy zakończeniu jej oddtwarzania, żeby zacząć walkę i zespawnować przeciwników - naszą drużynę bierze z aktora DefaultGameMode a przeciwników randomowo spawnuje z klas podanych w edytorze i wsadza do drugiej tablicy.
Jak startuje walka to encounter tworzy obiekt Fight, który zarządza wszystkim co sie dzieje podczas walki, on sobie tworzy na początku trzecia tablicę, sortuje ją po narwaności no i wtedy sobie wyciąga postać z 0 elementu (miałem to wcześniej jako queue, ale próbując naprawić tego buga to wywaliłem). Tę tablicę budujemy tylko na początku i jak któraś postać zginie. Fight słucha sobie eventów jak wciśniemy przyciski skilli, wtedy uruchamia timer, żeby odpalić animację sprajta postaci, jak się timer skończy to kończę turę. Jeśli to tura przeciwnika to jest mnóstwo pogmatwanego kodu, żeby wybrac skilla, którego ma uzyć - tu dałem kolejny timer, bo wrogowie potrafili się zawiesić nie potrafiąc wybrać skilla.
No i ogólnie to jak odpalamy za pierwszym razem albo wczytujemy z sejwa to wszytko działa raczej ok, problem się pojawia kiedy albo gracz podmienił postać albo po tym jak nowa postać dołącza do drużyny, więc podejrzewam, że tablica jakoś magicznie zamienia ten element w tablicy na wskażnik na starego sojusznika - to co widziałem w debugu to potwierdza, ale to tłumaczy chyba tylko ten drugi problem a nie "podwójne tury". A i czasem gra wywala okienko game over jak zginie jedna postać (chyba też ta podmieniona, ale nie jestem pewien) a nie cała drużyna xd.
game mode mam w folderze GameMechanics a Fight i FightEncounter są w GameMechanics/Combat.
Jak ktos chce poszukać błędów w moim paskudnym kodzie to zapraszam
Kurde, dalej nie wiem co jest przyczyną błędów z "podwójnymi" turami i turami postaci, które nie są w drużynie. Gdyby nie to, że projekt ma ponad 23 GB to bym wrzucił na gita i może ktoś mądrzejszy ode mnie by na to zerknął i coś pomógł a tak to za c⁎⁎ja nie wiem co zrobić. feels bad man #konkursnanajbardziejgownianymemznosaczem #wirsprawiedliwosci #grysprawiedliwe #gamedev #gry #rpg #programowanie
@wielkaberta zrobiłem już repo, właśnie wrzuciłem posta https://www.hejto.pl/wpis/konkursnanajbardziejgownianymemznosaczem-wirsprawiedliwosci-grysprawiedliwe-g-35
Zacni herosi przychodzą ze swoich wojaży i prezentują Ci złom, który chcą opchnąć za fortunę. Niedoczekanie ich. Proponujesz im kilka miedzianych MONET i zaznaczasz ŻETONAMI ich kolejne wizyty.
Oczywiście nie muszą wiedzieć, że sprzedajesz te cudeńka za morzem z kilkukrotną przebitką. To jest biznes, nie ma czasu na sentymenty!
A może mierzysz się z dylematem, który nie pozwala Ci spać. “Być albo nie być” wydają się równoważyć swoje plusy i minusy. Nie głow się już więcej - niech rozstrzygnie RZUT MONETĄ
A Ty? Masz ochotę na odrobinę bogactwa w swojej sakiewce?
Słuchajcie, historia jest taka. Mieliśmy w firmie smoka – Ergiefkusia, małego, czerwonego rozrabiakę, co to kiedyś wlazł nam do piwnicy i został. Z początku myśleliśmy, że będzie gorzej, bo przecież smoki to żywioł, ogień, destrukcja, ale nie – maluch miał swoje humory, jasne, ale ogólnie był bardzo grzeczny. No i z czasem zaczął dorastać. Najpierw był mały i słodki, potem stał się poważniejszy, aż w końcu wyprowadził się do własnej kawalerki. Aż tu nagle wraca, dorosły, mądry, i mówi: „Zrobiłem coś dla Was, bo wiem, że lubicie niespodzianki!”
I faktycznie – przyniósł trzy skrzynie.
I tak, każdy, kto dostanie jedną z tych skrzyń, znajdzie w niej coś więcej niż tylko akcesoria – znajdzie fragment magii, opowieści i ducha przygody. A jeśli szukasz prezentu, co rozpali wyobraźnię, nie musisz dalej szukać. Taki smokowy zestaw robi robotę.
W ramach przyspieszenia przygotowania do sesji RPG zlecilem chatgpt przygotowanie planów zrujnowanego budynku. Ku mojemu zaskoczeniu wykonał je w technologii rodem z nethacka - ascii floorplans, z legendą i kilkoma ciekawymi wstawkami.
Mi pozostało dopracowanie szczegółów w stylu schodów i spasowania poziomów ze sobą.
@Dzemik_Skrytozerca Ostrożnie, nim się spostrzeżesz, chatgpt poprowadzi całą sesję. Rynek pracy zaroi się od zdesperowanych (i głodnych) mistrzów gry ( ͡° ʖ̯ ͡°)
Nie ma szans. O ile prowadzenie sesji jest mozliwe, o tyle jakosc pozostawia duzo do zyczenia, nie wspominajac juz o tym, ze chatgpt ma pamiec zlotej rybki. I po chwili zaczynaja sie problemy.
Mapa powstala jako eksperyment usprawniajacy przygotowywanie przygod. Nie jest to standard - chcialem po prostu miec cos na szybko, co moge latwo poprawic.
Cos wiecej o sesji:
Shadow of the Weird Wizard (to zaktualizowana wersja systemu Shadow of the Demon Lord).
Zakladam, ze bohaterowie podaza za porwanym chymikiem (ang. chymist - cos jak Jesse Pinkman z Breaking Bad, tylko w innym swiecie). Porwany bedzie do odbicia z gniazda harpii na szostym z siedmiu pieter opuszczonej kamienicy.
Jak kogos interesuja szczegoly tej historii, to prosze o sygnal.
Cos o pracy z chatgpt:
Slabo. Ma duzy problem z obsluzeniem sprawy wymagajacej kombinowania na wyzszym poziomie abstrakcji. Kazdy zestaw pieter strasznie psul. Zmienial legende, schody byly w roznych miejscach, okna i drzwi - zapomnij. Trzymanie sie konwencji - co to takiego?
By sobie w koncu z tym poradzic, skupilem sie na jednym pietrze, poprawilem je recznie, i kolejne pietra generowalem z "uzyj mapy tego pietra /tu wklejalem ascii art/ jako szablonu" oraz dodawalem szczegoly. Nastepnie znow poprawialem rozjechane pietro, i generowalem kolejne.
Glowne wyzwanie to jak zmniejszyc komplikacje problemu, by sie w tym chatgpt nie pogubil. Generowanie graficznych szlo mu lepiej - ale tu z kolei nie potrafil utrzymac zasad w ogole.
Dev update: naprawiłe,m małego buga, który uniemozliwiał zniknięcie prompta do interakcji z obiektem ("podwójnych" tur jeszcze sie nie udało). No i dodałem dodatkowe detale na starówce (pic below) #konkursnanajbardziejgownianymemznosaczem #wirsprawiedliwosci #gamedev #grysprawiedliwe #gry #rpg
Nie znam się aż tak mocno na prawach autorskich ale nie boisz się użycia logotypu browaru? Pewnie by to miało sens gdybyś zarobił miliony to żywiec mógłby się odezwać
Dalej nie udało mi się rozwiązać problemu "podwójnych" tur #konkursnanajbardziejgownianymemznosaczem #wirsprawiedliwosci #grysprawiedliwe #gamedev #gry #rpg #programowanie #zalesie
Tu nie ma miejsca na heroiczne przemowy czy machanie mieczem jak w tanim romansidle. Twoja postać? To ostatni z ostatnich, ktoś, kto powinien już dawno zginąć, ale los ma dla niego inne plany. Zostajesz Strażnikiem Avalonu, kimś wybranym, ale nie ciesz się – „wybraniec” w tym świecie to nie tytuł, tylko wyrok.
A klimat? Arturiański, ale przez pryzmat końca świata.
@aerthevist nie polecam, symulator wieśniaka i symulator walki na miecze, wiesiek 3 to nie jest, na początku jeden ze statów można podnieść zbierając kwiatki -odpadłem po 3 godzinach od tej gry
@hejtooszukuje co do pierwszego zarzutu - wystarczy odpowiednio szybko ukończyć prolog, który jest skonstruowany tak, aby postać nie była zbyt potężna. Później możesz przed opuszczeniem miasta spędzić tyle czasu, że będziesz w stanie każdemu spuścić manto. Co do walki na miecze - ponoć na padzie łatwiej ją ogarnąć. Z moim refleksem szachisty mogę zapomnieć o wyprowadzaniu wymyślnych kombosów, ale mimo wszystko blok i ciecie wystarczą żeby poradzić sobie bez większego stresu z większością przeciwników (o ile nie ma ich zbyt wielu na raz).
1 stycznia to jedyny dzień w roku, w którym każdy z nas postanawia, że w tym roku to już na pewno wszystko się uda. Dieta? Proszę bardzo. Codzienna joga? Bez problemu. Regularne sesje papierowych RPG? Ależ oczywiście, drużyna na pewno znajdzie czas... choćby w grudniu, o 2:00 w nocy.
Dev update: udało się naprawić walkę z Teściową (i cutscenkę przed nią bo też nie działała jak powinna). Zapomniałem o zmiennej, która śledzi ile razy po załadowowaniu ponownie walka ma się powtórzyć - oczywiście dla bossów tego nie chcę, ale wtedy trzeba ustawić na 1 zamiast domyślego 0 bo się nie zacznie w ogóle
zjawiła się na 25 konwentach! (o 2 więcej niż w 2023)
powiększyła oferty KOŚCI o 473 zestawów i to nie jest nasze ostatnie słowo!
miała 2 razy więcej zadowolonych klientów w sklepie! (i o 31% więcej na targach oraz o 22% online),
powiększyła się o 3 nowych adeptów!
miała o 1 więcej incydent na szlaku (w drodze na konwent pękła nam opona )
Kolejny rok zapowiada się na jeszcze większą i intensywniejszą jazdę bez trzymanki (oby bez łapania gumy)!
Już w styczniu odpalamy na powrót druk 3D w naszym nowym magazynie i szykujemy się na nowe konwenty, wydarzenia i ZESTAWY KOSTEK.
Życzymy WAM, nasi drodzy Ergiefkowicze samych krytycznych sukcesów, nowych ekscytujących questów i wiernych kompanów na szlaku oraz doświadczeń, które wzbogacać będą Waszą kartę postaci. Jesteście dla nas najważniejsi
Widzimy się w 2025 w sklepie i na konwentach! DO SIEGO ROKU!