Jump to content

ukázka [Work in Progress] Závody na štýl Trackmanie


Recommended Posts

Zdravím,

po dlhšom čase som sa vrátil k dlho odloženému rozpracovanému projektu. Ide o závody, ktoré sú podobné hre Trackmania. Snažíte sa prekonať trať v čo najkratšom čase a môžete si pri tom zapnúť "ducha", ktorý vám bude ukazovať trasu hráča s najlepším časom, prípadne inú jazdu (podľa vášho výberu).

Primárny cieľ módu bol vytvoriť server na tréning gang race závodov známych zo serveru SuperParba. Preto je aktuálne väčšina závodov "ukradnutá" z tohto serveru.
S trochou kreativity sa ale dajú postaviť aj rôzne stunt trate atď... Aktuálne je napríklad postavených pár tratí pre skoky na bicykli.

Aktuálne featury:
/race - Presun do class selection (výber závodu)
/r - Reset závodu
/tops - zobrazenie 15 najlepších jázd vybraného závodu + detailné medzičasy u každého checkpointu; možnosť použiť každú topku ako NPC
Globálne topky - po prekonaní najlepšieho času na trase sa vypíše všetkým hráčom správa do chatu.
Osobné topky - po prekonaní osobného rekordu sa vypíše správa do chatu.

Hlavná featura - NPC duch
Každá jedna jazda je nahrávaná do scriptfiles (StartRecordingPlayerData). Po dokončení jazdy sa súbor s nahrávkou presunie zo scriptfiles do zložky npcmodes pomocou FileManager plugin-u, a je tak ihneď pripravená na prehrávanie. Každá nahrávka má unikátny názov, ktorý sa spolu s ostatnými dátami o jazde ukladá do databázy. Môžete si tak otvoriť tabuľku najlepších časov a ľubovoľnú jazdu z tabuľky použiť ako NPC. Taktiež môžete ako ducha použiť svoju poslednú jazdu príkazom /setlastplayback.

TODO:
- Tachometer
- Textdraw s časom
- Možnosť tvorby vlastnej trate
- Would be nice to have: Podpora objektov v závode + primitívny map editor pri stavbe tratí

Kde si mód skúsiť?
Keďže stále prebieha vývoj, server je momentálne uzamknutý. V prípade veľkého záujmu môžete napísať správu.

Videoukážka:

 

Edited by DuFF
  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

  • DuFF changed the title to [Work in Progress] Závody na štýl Trackmanie
  • Globální moderátor

mas tam cilovou caru, takze cas je pocitany podle prujezdu usecky dle cilove cary (tedy podle jen jedne osy) nebo posledniho checkpointu, coz je ruzne vzdalena cilova cara v zavislosti na siri trate a velikosti cp?

Link to comment
Share on other sites

před 33minutami, Hip said:

mas tam cilovou caru, takze cas je pocitany podle prujezdu usecky dle cilove cary (tedy podle jen jedne osy) nebo posledniho checkpointu, coz je ruzne vzdalena cilova cara v zavislosti na siri trate a velikosti cp?

Pre jednoduchosť je to zatiaľ podľa posledného checkpointu. Bolo by treba domyslieť, ako by tú cieľovú čiaru hráči definovali in-game pri tvorbe vlastných závodov

Link to comment
Share on other sites

  • Globální moderátor

Jednoducha matematika:

udelej si dva body na primce kde bude cilovka x 1,2 a y 1,2. Tim je definovana cilova cara.

Pak potrebujes kontrolu, zda ji prekrocil nebo ne. Souradnice 3 jsou souradnice auta, kdz vysledek je bud kladny, zaporny nebo 0. Pokud je 0, vozidlo je presne na cilove care.

Priklad

x1: 10 y1: 10
x2: 20 y2: 10

(vodorvna primka)

no a pak aplikace jednoduchy matematiky: (x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1)

Vypocet pro auto bude 3x pro ukazku:

  1. x3: 12 y3: 8 pred cilovou carou
    (20-10)×(8-10)-(10-10)×(8-10) = -20
  2. x3: 15 y3: 10 na cilove care
    (20−10)⋅(10−10)−(10−10)⋅(15−10) = 0
  3. x3: 17 y3: 11 na cilove care
    (20−10)⋅(11−10)−(10−10)⋅(17−10) = 10

No a pak to hodit nekam kde kontrolujes kde je a ve spravny moment porovnat tyhle dve hodnoty, pripadne jakmile hodnota prekroci nulu ve chvili, kdy jsi si jisty na jaky strane hrac zavodi.

A samotna definice jsou dva body, proste si hrac stoupne na dva body a tam se udela primka. Ez

Link to comment
Share on other sites

před 2hodinami, Hip said:

Jednoducha matematika:

udelej si dva body na primce kde bude cilovka x 1,2 a y 1,2. Tim je definovana cilova cara.

Pak potrebujes kontrolu, zda ji prekrocil nebo ne. Souradnice 3 jsou souradnice auta, kdz vysledek je bud kladny, zaporny nebo 0. Pokud je 0, vozidlo je presne na cilove care.

Priklad

x1: 10 y1: 10
x2: 20 y2: 10

(vodorvna primka)

no a pak aplikace jednoduchy matematiky: (x2 - x1) * (y3 - y1) - (y2 - y1) * (x3 - x1)

Vypocet pro auto bude 3x pro ukazku:

  1. x3: 12 y3: 8 pred cilovou carou
    (20-10)×(8-10)-(10-10)×(8-10) = -20
  2. x3: 15 y3: 10 na cilove care
    (20−10)⋅(10−10)−(10−10)⋅(15−10) = 0
  3. x3: 17 y3: 11 na cilove care
    (20−10)⋅(11−10)−(10−10)⋅(17−10) = 10

No a pak to hodit nekam kde kontrolujes kde je a ve spravny moment porovnat tyhle dve hodnoty, pripadne jakmile hodnota prekroci nulu ve chvili, kdy jsi si jisty na jaky strane hrac zavodi.

A samotna definice jsou dva body, proste si hrac stoupne na dva body a tam se udela primka. Ez

Bojím sa, že to nepôjde tak jednoducho. Nie je to cieľová priamka, ale cieľová úsečka. Ak by to bola priamka, myslím, že na nejakej pokrútenej trase by si mohol prejsť cieľovou priamkou ešte pred skutočným cieľom. Ale asi by to išlo vyriešiť cez dynamické zóny zo streameru, ktoré sa dajú definovať 2 bodmi ako navrhuješ a spravia matiku za mňa.

Link to comment
Share on other sites

  • Globální moderátor

no tak to jsem doufal, ze je automaticky - proste pred cilovou caru das posledni checkpoint. A samozrejme to bude triggerovat jen po projeti poslednim cp. Jinak pokud to chces pres usecku, tak propste vypocitas zda se usecka "cilova cara" protina s useckou "posledni dva body jizdy". Taky ease matematika :)

Link to comment
Share on other sites

Je to pekne ale kdyz jsem ten zavod vymyslel primarne to bylo pro auto Turismo. Elegy je pro takovy obecny drift ale Turismo na ty garaze uplne sedi. Ale je to cool s tim NPC record jako osobni record (y)

Edited by ATomas
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...