Как да направя таймер за обратно броене ?

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
Psych0_91
Извън линия
Потребител
Потребител
Мнения: 121
Регистриран на: 08 Сеп 2018, 15:53
Се отблагодари: 5 пъти
Получена благодарност: 6 пъти

Как да направя таймер за обратно броене ?

Мнение от Psych0_91 » 03 Окт 2018, 19:35

Здравейте, някои би ли ми обеснил как мога да направя таймер за обратно броене да кажем за 5 секунди.
Благодаря :)

Аватар
Fatall
Извън линия
Потребител
Потребител
Мнения: 295
Регистриран на: 30 Авг 2018, 09:35
Местоположение: София
Се отблагодари: 26 пъти
Получена благодарност: 17 пъти
Обратна връзка:

Как да направя таймер за обратно броене ?

Мнение от Fatall » 03 Окт 2018, 19:52

Код за потвърждение: Избери целия код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd"> 

<html>

        <head>

                <title>CountUp Script</title>

                <meta http-equiv="content-type" content="text/html; charset=windows-1251">

                <script type="text/javascript">

                        var montharray=new Array("Jan","Feb","Mar","Apr"
,"May","Jun","Jul","Aug","
Sep","Oct","Nov","Dec")

                        function countup(yr,m,d){

                        var today=new Date()

                        var todayy=today.getYear()

                        if (todayy < 1000)

                        todayy+=1900

                        var todaym=today.getMonth()

                        var todayd=today.getDate()

                        var todaystring=montharray[todaym]+" "+todayd+", "+todayy

                        var paststring=montharray[m-1]+" "+d+", "+yr

                        var difference=(Math.round((Date.parse(todaystring)
-Date.parse(paststring))/(24*60*60*1000))
*1)

                        difference+=" дена"

                        document.forms.count.count2.value="Изминали са "+difference+" откакто се родих!"

                        }

                        countup(1990,06,14)

                </script>

        </head>

        <body onload="countup(1990,06,14)">

                <form name="count" action="">

                        <input type="text" size="69" name="count2" style="border: 0px solid red;">

                </form>

                <p>

                        <a href="http://validator.w3.org/check?uri=referer">


                                <img src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01 Transitional" height="31" width="88" border="0">

                        </a>

                </p>

        </body>

</html>
Сменете 1990,06,14 с избраната от вас дата. Трябва на 2 места да го смените
Оправи си дизайна и си готов

Код за потвърждение: Избери целия код

<?php
   $error_msg = "Database error in [page].php / ";
   $error_msg .= mysqli_error ( $link )." / ";
   $error_msg .= $query;
   UpdateLog ( $error_msg , DB_ERROR_LOG_FILE );
?>

Аватар
Psych0_91
Извън линия
Потребител
Потребител
Мнения: 121
Регистриран на: 08 Сеп 2018, 15:53
Се отблагодари: 5 пъти
Получена благодарност: 6 пъти

Как да направя таймер за обратно броене ?

Мнение от Psych0_91 » 03 Окт 2018, 20:32

Нещо обърка темите май или не видя, че е за амхх :)

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Как да направя таймер за обратно броене ?

Мнение от OciXCrom » 03 Окт 2018, 20:32

@Fatall - виждаш ли в кой раздел се намира темата?

По темата:

1. Създаваш глобална променлива която да държи таймера и ѝ задаваш стойност 5 (демек 5 секунди).

Код за потвърждение: Избери целия код

new g_iTimer = 5
2. Създаваш константа (или define), която ще държи уникално id за таймера. Може да е каквото да е число. Целта на това е да може да спреш таймера по-рано ако искаш. Ако няма нужда да го спираш, не е задължително да създаваш тази константа.

Код за потвърждение: Избери целия код

const TIMER_ID = 123456
3. Когато искаш да започнеш отброяването, ползваш функцията set_task по този начин:

Код за потвърждение: Избери целия код

set_task(1.0, "timer_function", TIMER_ID, .flags = "a", .repeat = g_iTimer)
Според написаното, функцията timer_function ще се извиква през 1.0 секунда, в тялото ѝ ще се намира id-то на таймера TIMER_ID и ще се извика толкова пъти колкото е зададено в g_iTimer.

4. Създаваш функцията timer_function.

Код за потвърждение: Избери целия код

public timer_function(id) // id ще е равно на TIMER_ID
{
    // намаляваме таймера за минус едно при всяко извикване
    // този код е равен на g_iTimer = g_iTimer - 1 или g_iTimer -= 1
    g_iTimer--
}
5. Вече променливата g_iTimer ще се ъпдейтва според времетраенето на таймера. След като спре и искаш отново да го пуснеш, не забравяй отново да я промениш на 5, тъй като в края ще бъде 0.

Аватар
Psych0_91
Извън линия
Потребител
Потребител
Мнения: 121
Регистриран на: 08 Сеп 2018, 15:53
Се отблагодари: 5 пъти
Получена благодарност: 6 пъти

Как да направя таймер за обратно броене ?

Мнение от Psych0_91 » 03 Окт 2018, 21:10

Написал съм един код за пример, нещо такова ли трябваше да е, писал съм го от тел и няма къде да го тествам..

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <hamsandwich>

new g_iTimer = 5

public plugin_init()
	Register_Ham(Ham_Spawn, "player", "Player_Spawn",1);
	
public Player_Spawn(id)
{
	if(is_user_alive(id))
	{
		g_iTimer --
		set_task(1.0, "task_time", .flags = "a", .repeat = g_iTimer)
	}
}

public task_time(id)
{
	set_hudmessage(id,)
	show_hudmessage(id, "Bonus sled: %i ", g_iTimer)
}
За rewresh сега видях че си го писал.

Аватар
TheRedShoko
Извън линия
Модератор
Модератор
Мнения: 1016
Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти

Как да направя таймер за обратно броене ?

Мнение от TheRedShoko » 03 Окт 2018, 21:21

g_iTimer-- трябва да бъде в task_time. За да покажех hud-а трябва да подадеш id-то на играча като 3ти параметър в set_task.

Аватар
Psych0_91
Извън линия
Потребител
Потребител
Мнения: 121
Регистриран на: 08 Сеп 2018, 15:53
Се отблагодари: 5 пъти
Получена благодарност: 6 пъти

Как да направя таймер за обратно броене ?

Мнение от Psych0_91 » 03 Окт 2018, 22:54

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <hamsandwich>

new g_iTimer = 5

public plugin_init()
	Register_Ham(Ham_Spawn, "player", "Player_Spawn",1);
	
public Player_Spawn(id)
{
	if(is_user_alive(id))
	{
		set_task(1.0, "task_time", id, .repeat = g_iTimer)
	}
}

public task_time(id)
{
        g_iTimer -- 
	set_hudmessage(id,);
	show_hudmessage(id, "Bonus sled: %i ", g_iTimer);
}
Така ли трябваще да е ?
Последно промяна от Psych0_91 на 03 Окт 2018, 23:27, променено общо 1 път.

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Как да направя таймер за обратно броене ?

Мнение от OciXCrom » 03 Окт 2018, 23:07

id не трябва да е в кавички и ти липсва флага в set_task.

Аватар
Psych0_91
Извън линия
Потребител
Потребител
Мнения: 121
Регистриран на: 08 Сеп 2018, 15:53
Се отблагодари: 5 пъти
Получена благодарност: 6 пъти

Как да направя таймер за обратно броене ?

Мнение от Psych0_91 » 03 Окт 2018, 23:24

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <hamsandwich>

new g_iTimer = 5

public plugin_init()
	Register_Ham(Ham_Spawn, "player", "Player_Spawn",1);
	
public Player_Spawn(id)
{
	if(is_user_alive(id))
	{
		set_task(1.0, "task_time", id, , .flags = "a", .repeat = g_iTimer)
	}
}

public task_time(id)
{
        g_iTimer -- 
	set_hudmessage(id,);
	show_hudmessage(id, "Bonus sled: %i ", g_iTimer);
}
Така как е ?

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Как да направя таймер за обратно броене ?

Мнение от OciXCrom » 04 Окт 2018, 16:00

Добре е, след като си оправиш запетайките и останалите неща.

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Помощ в скриптирането”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 5 госта