Test skryptu nowoczesnej walki

Przetłumaczono z angielskiego

Modern Combat Script Test

66

446

Poligon doświadczalny dla skryptu nowoczesnej walki w stylu RPG

Uwaga: To jest demonstracja skryptu, a nie prawdziwy bot RP. Link do kodu w ostatniej sekcji.

Przetestuj prawdopodobieństwa wybuchów, pocisków i walki wręcz w odgrywaniu ról.


To totalna wojna w jakimś zadupiu, kraju zniszczonym przez wojnę!

Czy nasz żołnierz, Bob, przetrwa rzut kośćmi?


Wybrałem jakiegoś losowego obrazka na miniaturkę

Źródło grafiki: Drunken-Lord


Uwaga: Ten skrypt będzie prawdopodobnie w dużym stopniu zależny od typu używanego LLM i tego, jak interpretuje odległości.

Używałem DeepSeek V3 0324, u innych LLM-ów wyniki mogą się różnić.


Jak to działa?

W skrócie: Bot rzuca kośćmi wielokrotnie, a sukces (przeżycie) opiera się na atrybutach walki w stylu RPG

Jak dotąd mam trzy kategorie efektów, które mogą przytrafić się {{char}}.

  • Wybuch

  • Pocisk

  • Walka wręcz

Porozmawiamy też o koncepcji "atrybutów nowoczesnej walki", które będą wpływać na te efekty.


Materiały wybuchowe

Materiały wybuchowe mają efekt obszarowy, a szansa na bycie dotkniętym maleje wraz ze wzrostem odległości.

W przypadku materiałów wybuchowych trzeba martwić się o dwie rzeczy: odłamki (lub pociski) oraz siłę uderzeniową.

Możemy więc zdefiniować nasz wstrzykiwany prompt w ten sposób (przykład, może nie być dokładnym produktem końcowym):

# {{char}} powinien zareagować na wybuch w ten sposób:

- Bliski zasięg: ["wzdrygnięcie", "wstrząśnienie mózgu", "obezwładnienie"] od wybuchu oraz odłamki (pocisk) ["są", "nie są"] skierowane na niego.

- Średni zasięg: ["niewzruszony", "wzdrygnięcie", "wstrząśnienie mózgu"] od wybuchu oraz odłamki (pocisk) ["są", "nie są"] skierowane na niego.

- Daleki zasięg: ["niewzruszony", "wzdrygnięcie"] od wybuchu.

Wartości w nawiasach są tutaj ustalane za pomocą rzutów kośćmi wykonywanych przez bota.

Atrybuty bota nie robią tu zbyt wiele poza sprawdzaniem, czy przeżyje, ponieważ materiały wybuchowe robią, co im się żywnie podoba.


Pociski

To prawdopodobnie będzie najczęstszy przypadek, jeśli chodzi o walkę w odgrywaniu ról, więc myślę, że podejście będzie musiało być dość rozbudowane.

Mogę wymyślić właściwie trzy wyniki, gdy ktoś do ciebie strzela: brak obrażeń, ranny i zabity na miejscu.

Ale co jeszcze może się wydarzyć, wychodząc od tych wyników?

- bez obrażeń; możesz być niewzruszony lub obezwładniony ogniem

- ranny; możesz być zdrętwiały, obezwładniony ogniem lub w szoku. Rana może być lekka, poważna lub śmiertelna. "Śmiertelna" pozwoliłaby botowi przynajmniej oddać ostatni strzał, zanim umrze.

- zabity; jak strzał w głowę czy coś? tak, to koniec.

Następnie będziemy musieli sprawdzić, czy bot skutecznie odpowie ogniem na napastnika, w zależności od umiejętności bota i jego statusu. (zakładając, że bot nie został zabity.)

Możemy więc mieć nasz prompt w ten sposób:

# {{char}} powinien zareagować na strzelanie do niego lub pocisk skierowany w jego stronę w ten sposób:

A następnie każda odległość (bliska, średnia, daleka) otrzyma następujące (niektóre zdania nie pojawią się w zależności od tego, co się wydarzy. Na przykład: "bez obrażeń" nie wygeneruje linii "Rana jest..."):

Będzie ["bez obrażeń", "ranny", "zabity"] przez pocisk. Rana jest ["lekka", "poważna", "śmiertelna"]. {{char}} jest ["niewzruszony", "zdrętwiały", "obezwładniony ogniem", "w szoku"]. Jeśli ma to sens, odwzajemni ogień ["skutecznie", "nieskutecznie"].

Atrybuty bota odgrywają w tym nieco większą rolę, uwzględniając ich atrybuty "fizyczne" (czy umrą/unikną?), ich atrybuty "mentalne" (czy zostaną przypięci?) oraz atrybuty "walki" (czy zareagują skutecznie?)


Walka wręcz

I oczywiście zawsze możesz wdać się w bijatykę z kimś zamiast rozsadzać go nabojem 7.62 lub 5.56.

To będzie najprostszy z promptów i prostszy w wyprowadzeniu niż skrypt walki wręcz w moich innych botach.

# W walce wręcz {{char}} powinien walczyć ["skutecznie", "nieskutecznie"].

Ponieważ prawdopodobnie nie będzie to zdarzać się tak często, jak myślę, pozostanie to banalnie proste.


Atrybuty nowoczesnej walki

Zainspiruję się Escape from Tarkov i użyję niektórych tamtejszych statystyk. Myślę, że wszystkie są dość oczywiste.

Fizyczne

- Witalność - w zasadzie zdrowie

- Zręczność - jak szybko/dobrze się poruszają

- Wytrzymałość - odporność na obrażenia

- Siła - jak silni są

Mentalne

- Percepcja - zdolność postrzegania rzeczy na polu bitwy

- Kontrola stresu - zdolność zachowania spokoju pod presją

Walka

- Posługiwanie się bronią - zdolność celowania i strzelania z broni

- CQC - zdolność walki w zwarciu

- Walka wręcz - jak dobrze potrafią walczyć gołymi rękami

Te wartości powinny być ustawione od 0 do 100 i dostosowane tak, aby odzwierciedlały osobowość bota. Jako wytyczną myślę, że możemy skalować to w ten sposób:

(0 - 40: źle), (40-60: przeciętnie), (60-80: dobrze), (80-100: doskonale)

Więc postać snajpera powinna prawdopodobnie mieć "Posługiwanie się bronią: 85", ale "CQC: 50" czy coś takiego.

Te wartości są różnie ważone w zależności od dystansu starcia: na przykład CQC odgrywa większą rolę na "bliskim zasięgu", ale jest ważone znacznie mniej (lub nawet w ogóle nie brane pod uwagę) na "dalekim zasięgu".

Do czego przyczyniają się statystyki i ich wagi (wszystkie wagi powinny sumować się do 1):

Szczerze mówiąc, są one dość przypadkowe, więc tak, opinie na temat zbalansowania są mile widziane.

Przeżycie wybuchu:

- wszystkie zasięgi: wytrzymałość (0,7), kontrola stresu (0,3)

Trafienie pociskiem:

- bliski: percepcja (0,2), zręczność (0,4), cqc (0,4)

- średni: percepcja (0,5), zręczność (0,5)

- daleki: percepcja (0,7), zręczność (0,3)

Ciężkość rany:

- bliski: witalność (0,3), wytrzymałość (0,4), cqc (0,3)

- średni: witalność (0,5), wytrzymałość (0,5)

- daleki: witalność (0,3), wytrzymałość (0,7)

Efekt mentalny:

- bliski: percepcja (0,1), kontrola stresu (0,4), cqc (0,5)

- średni: percepcja (0,3), kontrola stresu (0,7)

- daleki: percepcja (0,1), kontrola stresu (0,9)

Skuteczność kontrataku:

- bliski: percepcja (0,1), posługiwanie się bronią (0,4), cqc (0,5)

- średni: percepcja (0,3), posługiwanie się bronią (0,7)

- daleki: percepcja (0,5), posługiwanie się bronią (0,5)

Sukces walki wręcz:

- siła (0,4), walka wręcz (0,6)


Kod

Chętnie udostępnię kod, który znajdziesz tutaj na moim GitHubie.

Zastosowano licencję MIT, która po prostu zapewnia, że jest tak przyzwalająca, jak to tylko możliwe!

Byłbym wdzięczny za uznanie, jeśli zdecydujesz się poważnie użyć skryptu. :)

Utworzono 13 wrz 2025

Zaktualizowano 21 lis 2025

Opublikowano 13 wrz 2025

proxy dozwolone

Opublikowane czaty