@afi_safestart

TugeX
Posts: 293
Joined: 26 Jul 2013, 18:49

@afi_safestart

Post by TugeX »

Tutusta F3 skriptiversiosta muunneltu sotku. Pelaajat kuolemattomia ja pelaajien projektiilit poistetaan safestartin aikana. Ajoneuvoille ei ainakaan toistaiseksi kuolemattomuutta peliteknisistä- ja lokaliteettisyistä.

+ Ei tarvi pakollisia description.ext lisäyksiä
+ Kaikilla sama servun määräämä aika
- ?

Modi: https://www.dropbox.com/s/x39xk5rkpo1ig ... t.zip?dl=0

Skriptit tutkittavaksi: https://www.dropbox.com/s/otzupzz7l59dj ... a.zip?dl=0


Käynnistä peli modi aktiivisena ja lisää tehtävän init.sqf: [aika minuutteina] spawn afi_safestart;
esimerkiksi: [7] spawn afi_safestart;
Oletusaika tyhjän tai virheellisten parametrien varalta 5 minuuttia.

Description.ext koodipätkä vain jos haluaa lisätä mahdollisuuden vaihtaa safeStartin kestoa tehtävän parametreissa. Parametri otetaan huomioon vain jos skriptin käynnistää init.sqf ilma aika paramateria: [] spawn afi_safestart;

Code: Select all

class Params
{
    class afi_safeStart_duration
    {
            title = "SafeStart Timer";
            values[] = {0,1,2,3,5,8,10,12,15};
            texts[] = {"SafeStart Off","1","2","3","5","8","10","12","15"};
            default = 5;
            code = "afi_safeStart_timer = %1";
    };
};
Saa testailla etenkin parametrien toimivuutta ja etsiä bugeja.
Last edited by TugeX on 03 May 2016, 12:46, edited 11 times in total.
User avatar
Tuntematon
Posts: 2291
Joined: 19 May 2015, 15:29
Location: Valkeakoski
Contact:

Re: @afi_safestart

Post by Tuntematon »

Onko mahdollista saada tätä toimimaan tolla parametrilla että tehtävää käynnistäessä voi valita safestartin pituuden.
Nykyisen safestartin parametri.

Code: Select all

class f_param_mission_timer
    {
            title = "Safe Start";
            values[] = {0,1,2,3,4,5,6,7,8,9,10,15};
            texts[] = {"Safe Start Off","1","2","3","4","5","6","7","8","9","10","15"};
            default = 10;
            code = "f_param_mission_timer = %1";
    };
Tikka
Posts: 993
Joined: 26 Jul 2013, 18:14

Re: @afi_safestart

Post by Tikka »

Vaihda sleepit uisleepiksi, jotta timerit ei kuse jos servu lagaa.
Bummeri
Posts: 3009
Joined: 09 Nov 2013, 14:35

Re: @afi_safestart

Post by Bummeri »

Tikka wrote:Vaihda sleepit uisleepiksi, jotta timerit ei kuse jos servu lagaa.
Tai vieläparempi, niin käytä CBAn perframeeventhandleria sleepin sijaan, ja sitten käytä CBAn Event järjestelmää viestin välittämisesksi pelaajille.
"Dataa on saatava." -DataNummi
"Toteutus on pilalla, pelkkää paskaa tilalla." -MyösNummi
TugeX
Posts: 293
Joined: 26 Jul 2013, 18:49

Re: @afi_safestart

Post by TugeX »

-Sleepit vaihdettu
-kokeellinen parametri yhteensopivuus

En näe tässä suurta hyötyä perFrame pyörityksestä kun tärkeintä on että kello on vain kaikille sama, kestipä se minuutti sitten 55 tai 65 sekuntia servulla (melkonen lagi saa olla).

Clienteillä on PVeventhandleri mikä ajaa asiansa paremmin kuin hyvin ja safeStart_timer jää lopuksi arvoon 0, mikä lienee hyvä JIP-yhteensopivuuden kannalta. Miksi servurin pitäisi lähettää viestejä eikä vain pelkkää muuttujaa arvoineen?
Bummeri
Posts: 3009
Joined: 09 Nov 2013, 14:35

Re: @afi_safestart

Post by Bummeri »

TugeX wrote: En näe tässä suurta hyötyä perFrame pyörityksestä kun tärkeintä on että kello on vain kaikille sama, kestipä se minuutti sitten 55 tai 65 sekuntia servulla (melkonen lagi saa olla).
Täältä sivulta kun luet niin selviää miksei kannata käyttää normaalia sleeppiä vaan kaikki suorittaa tuolla unscheduled ympäristössä.

Mutta näin lyhyesti lainaus:
waitUntil and sleep are banned. If you need to use them, use scheduled delay execution instead. Reasoning: Sleep/waitUntil surrender about 5x the scheduler time than even normal execution does.
Eli jos afille jotain skriptiä tehdään, niin kaikkialla pitäisi olla sleeppien käyttö kielletty ja aina käyttää eventtejä, että ei skriptit sotke performanssia.
TugeX wrote:Clienteillä on PVeventhandleri mikä ajaa asiansa paremmin kuin hyvin ja safeStart_timer jää lopuksi arvoon 0, mikä lienee hyvä JIP-yhteensopivuuden kannalta. Miksi servurin pitäisi lähettää viestejä eikä vain pelkkää muuttujaa arvoineen?
Nuo on helppokäyttöisiä nuo funktiot. Mutta sinun koodillesi nyt on aivan sama käytätkö vai et. Lähinnä laitoin että jää ihmisille mieliin. Ja tarkoitin viestillä muuttujaa arvoineen.
"Dataa on saatava." -DataNummi
"Toteutus on pilalla, pelkkää paskaa tilalla." -MyösNummi
TugeX
Posts: 293
Joined: 26 Jul 2013, 18:49

Re: @afi_safestart

Post by TugeX »

Bummeri wrote:...
Tutkitaan
Bummeri
Posts: 3009
Joined: 09 Nov 2013, 14:35

Re: @afi_safestart

Post by Bummeri »

Anssille värikoodaan parametrit tuosta Perframeeventhandlerista:

Parameters
_func The function you wish to execute
_delay The amount of time in seconds (can be less than 0) between executions, 0 for everyframe.
_params Parameters passed to the function executing. This will be the same array every execution.


[{player sideChat format["every frame! _this: %1", _this];}, 0, ["some","params",1,2,3]] call CBA_fnc_addPerFrameHandler;
"Dataa on saatava." -DataNummi
"Toteutus on pilalla, pelkkää paskaa tilalla." -MyösNummi
TugeX
Posts: 293
Joined: 26 Jul 2013, 18:49

Re: @afi_safestart

Post by TugeX »

Muuten selvennykseksi: waitUntil{yksinkertainen!! ehto}; suoritetaan kerran framessa jos ehto ei sisällä sleeppiä, ollen siten täysin validi vaikka mihin skripteihin. Näin ainakin BiWikin mukaan, ellei jossain ole parempaa tietoa.
Bummeri
Posts: 3009
Joined: 09 Nov 2013, 14:35

Re: @afi_safestart

Post by Bummeri »

TugeX wrote:Muuten selvennykseksi: waitUntil{yksinkertainen!! ehto}; suoritetaan kerran framessa jos ehto ei sisällä sleeppiä, ollen siten täysin validi vaikka mihin skripteihin. Näin ainakin BiWikin mukaan, ellei jossain ole parempaa tietoa.
Mutta se on edelleen siellä scheduled spacessa varaamassa itselleen prosessointi tehoa, tarvittiin sitä tai ei. Joten on paljon järkevämpää käyttää CBAn eventtejä jolloin ei turhaa jaa sitä rosessointi aikaa.
"Dataa on saatava." -DataNummi
"Toteutus on pilalla, pelkkää paskaa tilalla." -MyösNummi
Post Reply