Skocz do zawartości

Jak to "Zapisać" ?


sectasy
# CSH External VIP Project

Masz dosyć problemów z czynnikiem zaufania w CS2 lub notorycznymi banami?

Sprawdź CSH External VIP Project.


Więcej informacji  

Rekomendowane odpowiedzi

Siema, uporałem sie już sam z tym "stoperem" napisałem kodzik i wygląda to tak 
 

Spoiler

sWoQ5OPQRTi62hrkNuXaXg.png

I to sobie tak leci jak powinno, teraz jak mam zrobic żeby wystartowało mi raz i leciało cały czas, nie że co refresh strony od zera liczy

W miarę posuwania się po osi czasu szansa na przeżycia spada w końcu do zera dla każdego.

Odnośnik do komentarza

mozesz nawet w pliku txt zapisac. jesli potrzebujesz dynamicznie dzialajacej strony to redis, albo nawet mozesz zapisac w pamieci ram serwera (ale pewnie uzywasz php wiec wspolczuje;/) i wysylac do klienta przy kazdym requescie / oczekujesz...

 

z nodejs by to fajnie dzialalo:D zapisac obiekt Date w pamieci RAM i gotowe:D jedna linijka tekstu.

wiec protip nie uzywaj php najlepiej w ogole albo przynajmneij nie do takich rzeczy:D

Odnośnik do komentarza

dokladnie, i updatuj stan licznka co sec. mozesz zrobic clientside internal wysylajacy co 1000ms req do serwera

tylko ze to bedzie podatne na manipulacje

najlepsza opcja bedzie node + redis + express + express-session i wszystko serverside, i to serwer przez socket bedzie do klienta wysylac stan timera,  a frontend js moze ewentualnie weryfikowac czy np. serwer spoznia sie/przestal odpowiadac, wtedy emuluj counter cilentside i przywoc gdy polaczenie zostanie ponownie nawiazane, backend moze dalej w tle dodawac sekundy wiec nie ma problemu ze sekundy sie zgubia. + jezeli klient przestanie odpowiadac x czasu. mozesz zastopowac licznik serverside zeby uniknac "oszukiwania" timera, to jest moja droga taka troche perfidna ale ja jestem idealista w swoich projektach

ja bym ci tego nie kazal robic ale zalezy jak chcesz to zabezpieczyc, czy robisz cos dla siebie czy moze komercyjnie lub cos takiego

kluczem jest po prostu robienie jak najwieksza czesc pracy przez serwer. wiec juz najlepiej zeby to klient wysylal sygnaly ze po prostu jest online, a backend dodaje sekundy jezeli caly czas dostaje sygnaly ze klient jest podlaczony

i wysyla stan timera jako odpowiedz do informacji ze klient jest online 

wtedy jezeli klient straci polaczenie z internetem (precyzyjniej serwerem) to timer po stronie klienta sie zatrzymuje i backend przestaje naliczac sekundy, ale wszystko wraca gdy user znowu laczy sie z internetem

Odnośnik do komentarza

To jest prosty kod w JS, na taki pomysł wpadłem jedynie zeby t zrobić 
 

var sekundy = 0;
var minuty = 0;
var godziny = 0;
var dni = 0;
function lnk() {



    setTimeout(() => {

        sekundy = sekundy + 1;

        document.getElementById("napis").innerHTML = dni + " Dni " + godziny + " Godzin " + minuty  + " Minut " + (sekundy - 1) + " Sec "

        if (sekundy == 60) {
            sekundy = 0;
            minuty = minuty + 1;

        }

        if (minuty == 60) {
            minuty = 0;
            godziny = godziny + 1;
        }

        if (godziny == 24) {

            godziny = 0;
            dni = dni + 1;
        }
        lnk();
    }, 1000);

}


Jest to prywatnie dla mnie wiec nie musi być zabezpieczeń w sumie, byle działało jak trzeba, bo sam licznik w sobie działa jak potrzebuje, no tyle byle jeszcze sie nie odnawiało liczenie co wejście na stronę
 

W miarę posuwania się po osi czasu szansa na przeżycia spada w końcu do zera dla każdego.

Odnośnik do komentarza
3 minuty temu, GrimWP napisał:

To jest prosty kod w JS, na taki pomysł wpadłem jedynie zeby t zrobić 
 


var sekundy = 0;
var minuty = 0;
var godziny = 0;
var dni = 0;
function lnk() {



    setTimeout(() => {

        sekundy = sekundy + 1;

        document.getElementById("napis").innerHTML = dni + " Dni " + godziny + " Godzin " + minuty  + " Minut " + (sekundy - 1) + " Sec "

        if (sekundy == 60) {
            sekundy = 0;
            minuty = minuty + 1;

        }

        if (minuty == 60) {
            minuty = 0;
            godziny = godziny + 1;
        }

        if (godziny == 24) {

            godziny = 0;
            dni = dni + 1;
        }
        lnk();
    }, 1000);

}


Jest to prywatnie dla mnie wiec nie musi być zabezpieczeń w sumie, byle działało jak trzeba, bo sam licznik w sobie działa jak potrzebuje, no tyle byle jeszcze sie nie odnawiało liczenie co wejście na stronę
 

zapisz jakos to po srtonie serwera no i pobieraj updatuj i tyle

Odnośnik do komentarza

dobra... Już zrobiłem to tak
NIech już będzie po stronie klienta, bo za dużo zabawy.
Tylko to co teraz robiłem zaś nie zadziała tak jak ja chce bo zapisywać zapisuje, owszem, ale tylko liczy gdy jestem na stronie ;-;
 

function lnk() {

    var dni = localStorage.dni ;
    var godziny = localStorage.godziny ;
    var minuty = localStorage.minuty ;
    var sekundy = localStorage.sekundy ;

    setTimeout(() => {

        
        localStorage.sekundy = Number(localStorage.sekundy)+1;
     

        if (5 < 10) {
            // Store
            localStorage.setItem("time", localStorage.dni + " Dni " + localStorage.godziny+ " Godzin "+ localStorage.minuty + " Minut " +localStorage.sekundy + " Sekund");
            // Retrieve
            document.getElementById("napis").innerHTML = localStorage.getItem("time");
        } else {
            document.getElementById("napis").innerHTML = "Sorry, your browser does not support Web Storage...";
        }

        if (localStorage.sekundy == 60) {
            localStorage.sekundy = 0;
            localStorage.minuty = Number(localStorage.minuty)+1;

        }

        if (localStorage.minuty == 60) {
            localStorage.minuty = 0;
            localStorage.godziny = Number(localStorage.godziny)+1;
        }

        if (localStorage.godziny == 24) {

            localStorage.godziny = 0;
            localStorage.dni = Number(localStorage.dni)+1;
            
        }

        
        lnk();
    }, 1000);

}

 

W miarę posuwania się po osi czasu szansa na przeżycia spada w końcu do zera dla każdego.

Odnośnik do komentarza

Prosze zostaw bez komentarza te if (5<10) ahahahah :'D

Zrobiłem to w bardzo przekminiony sposób, ale działa jak powinno użyłem tego odliczania https://www.w3schools.com/howto/howto_js_countdown.asp
i odwróciłem troche liczenie, zamiast odliczanie dni do daty i pokazywanie ile pozostało, to odwrotnie, oraz zamiast odejmować czas ma dodawać, pozmieniałem date odpowiednio by wyszło tak żeby zaczęło liczyć od wtedy kiedy ja chce.
 

   var rok = 1921;
   var mc = 9;
   var day = 10;
   var godz = 3;
   var min = 5;
   var sec = 0;

function res()
{
    

// Set the date we're counting down to
var countDownDate = new Date(rok,mc,day,godz,min,sec).getTime();


// Update the count down every 1 second
var x = setInterval(function() {

  // Get todays date and time
  var now = new Date().getTime();

  // Find the distance between now an the count down date
  var distance = countDownDate + now;

  // Time calculations for days, hours, minutes and seconds
  var days = Math.floor(distance / (1000 * 60 * 60 * 24));
  var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((distance % (1000 * 60)) / 1000);

  // Display the result in the element with id="demo"
if (day < 0) 
{
    day =0;
}
  document.getElementById("napis").innerHTML = days + "d " + hours + "h "
  + minutes + "m " + seconds + "s ";

  // If the count down is finished, write some text 
 
}, 1000);
}





 

W miarę posuwania się po osi czasu szansa na przeżycia spada w końcu do zera dla każdego.

Odnośnik do komentarza
(function(CountFrom) {
    var interval = setInterval(function() {
        var from = new Date(CountFrom);
        now = new Date();
        var sec_num = (from - now) / 1000;
        var dni = Math.floor(sec_num / (3600 * 24));
        var godziny = Math.floor((sec_num - (dni * (3600 * 24))) / 3600);
        var minuty = Math.floor((sec_num - (dni * (3600 * 24)) - (godziny * 3600)) / 60);
        var sekundy = Math.floor(sec_num - (dni * (3600 * 24)) - (godziny * 3600) - (minuty * 60));
		
        if (godziny < 10) 
            godziny = "0" + godziny;
		
        if (minuty < 10) 
            minuty = "0" + minuty;
     
        if (sekundy < 10) 
            sekundy = "0" + sekundy;
    
		//Tutaj zamiast console.loga mozesz sobie po prostu nadpisac innerHTML diva :)
        console.log(dni + ':' + godziny + ':' + minuty + ':' + sekundy);
		
		//Zatrzymanie Intervala
		if (dni == "00" && godziny == "00" && minuty == "00" && sekundy == "00")
			clearInterval(interval);
    }, 1000);
	
})("2019-01-01 05:11:58"); //Tutaj podajesz date do ktorej ma odliczac

Bez zbednego serwera i localstorage/cookies

Odnośnik do komentarza
W dniu 25 April 2018 o 15:20, 0x23 napisał:

(function(CountFrom) {
    var interval = setInterval(function() {
        var from = new Date(CountFrom);
        now = new Date();
        var sec_num = (from - now) / 1000;
        var dni = Math.floor(sec_num / (3600 * 24));
        var godziny = Math.floor((sec_num - (dni * (3600 * 24))) / 3600);
        var minuty = Math.floor((sec_num - (dni * (3600 * 24)) - (godziny * 3600)) / 60);
        var sekundy = Math.floor(sec_num - (dni * (3600 * 24)) - (godziny * 3600) - (minuty * 60));
		
        if (godziny < 10) 
            godziny = "0" + godziny;
		
        if (minuty < 10) 
            minuty = "0" + minuty;
     
        if (sekundy < 10) 
            sekundy = "0" + sekundy;
    
		//Tutaj zamiast console.loga mozesz sobie po prostu nadpisac innerHTML diva :)
        console.log(dni + ':' + godziny + ':' + minuty + ':' + sekundy);
		
		//Zatrzymanie Intervala
		if (dni == "00" && godziny == "00" && minuty == "00" && sekundy == "00")
			clearInterval(interval);
    }, 1000);
	
})("2019-01-01 05:11:58"); //Tutaj podajesz date do ktorej ma odliczac

Bez zbednego serwera i localstorage/cookies

 

-1 to nie jest to o co prosił OP

W dniu 18 April 2018 o 16:43, fajerowsky napisał:

a nie lepiej poprostu zapisac gdzies unix time kiedy zaczelo sie liczyc, odjac od obecnej daty i zamienic na jakis ladny tekst?

dokladnie=)

Odnośnik do komentarza
W dniu 29.04.2018 o 12:58, expl0it napisał:

-1 to nie jest to o co prosił OP

Z tego co widzę to chciał counter, raczej nie wydaje mi się żeby chciał licznik który liczy w górę. Nawet jeśli, to przerobić to pod ten schemat używając mojego skryptu to zmiana kilku rzeczy, ale wydaje mi się że o to mu chodziło:

https://jsfiddle.net/no2m5z56/4/

Odnośnik do komentarza
W dniu 30.04.2018 o 14:15, 0x23 napisał:

Z tego co widzę to chciał counter, raczej nie wydaje mi się żeby chciał licznik który liczy w górę. Nawet jeśli, to przerobić to pod ten schemat używając mojego skryptu to zmiana kilku rzeczy, ale wydaje mi się że o to mu chodziło:

https://jsfiddle.net/no2m5z56/4/

Cytat

Zrobiłem to w bardzo przekminiony sposób, ale działa jak powinno użyłem tego odliczania https://www.w3schools.com/howto/howto_js_countdown.asp
i odwróciłem troche liczenie, zamiast odliczanie dni do daty i pokazywanie ile pozostało, to odwrotnie, oraz zamiast odejmować czas ma dodawać, pozmieniałem date odpowiednio by wyszło tak żeby zaczęło liczyć od wtedy kiedy ja chce.

ale gdyby nie to, to +1

Odnośnik do komentarza

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  Tagi

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Regulamin. Polityka prywatności