#1 06-07-2013 08:16

eek
Registered: 06-07-2013
Posts: 23
Website

Помогите с созданием таймера

Мне нужно сделать таймер, чтобы когда заказаный трейлер появлялся в зоне прорисовки, начинался обратный отсчет времени

Offline

#2 06-07-2013 23:18

eek
Registered: 06-07-2013
Posts: 23
Website

Re: Помогите с созданием таймера

кто то может помочь?

Offline

#3 07-07-2013 09:44

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Помогите с созданием таймера

Таймер с обратным отсчётом времени можно сделать так:

{$CLEO}
wait 0
while true
    wait 0

    if
        32@ > 10000
    then
        32@ = 0
    end
    
    0A8F: 0@ = 10000 - 32@ // int
    0@ /= 1000
    
    03F0: enable_text_draw 1
    045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 0@  // ~1~
end

Код отображает на экране таймер обратного отсчёта - от 10 секунд до 0. При очередном обнулении отсчёт начинается заново.
32@ - переменная-таймер. Её значение (как и значение переменной 33@) увеличивается с каждой секундой игрового времени на 1000.

Offline

#4 07-07-2013 11:40

eek
Registered: 06-07-2013
Posts: 23
Website

Re: Помогите с созданием таймера

Спасибо большое за ответ! Это почти то что мне нужно, но не хватает одного. Мне нужен обратный отсчет времени, после того как появится трейлер (прицеп) рядом с педом.

Offline

#5 07-07-2013 12:01

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: Помогите с созданием таймера

в начале нужно добавить проверку

0202:   actor 1@ near_car 0@ radius 20.0 20.0 sphere 0

0@ - имя трейлера

Offline

#6 07-07-2013 12:47

eek
Registered: 06-07-2013
Posts: 23
Website

Re: Помогите с созданием таймера

Seemann wrote:

в начале нужно добавить проверку

0202:   actor 1@ near_car 0@ radius 20.0 20.0 sphere 0

0@ - имя трейлера

А как добавить все трейлеры какие есть? Через запятую писать или как?

И полный вид клео такой будет?

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN---------------
wait 0 

:NONAME_4
wait 0 
0202:   actor 1@ near_car 0@ radius 20.0 20.0 flag 0 
if 
  32@ > 10000 
else_jump @NONAME_54 
32@ = 0 

:NONAME_54
0A8F: 0@ = 10000 - 32@ // int 
0@ /= 1000 
03F0: enable_text_draw 1 
045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 0@  // ~1~
jump @NONAME_4

Offline

#7 07-07-2013 13:06

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: Помогите с созданием таймера

@eek -

{$CLEO}
0000:
while true
    wait 250
    if and
       056D:   actor 0@ defined
       056E:   car 1@ defined
    then
        if
            0202:   actor 0@ near_car 1@ radius 20.0 20.0 sphere 0
        then
            32@ = 0
            while true
               
                0A8F: 3@ = 10000 - 32@ // int
                3@ /= 1000
                
                03F0: enable_text_draw 1
                045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 3@  // ~1~
                if
                    32@ > 10000
                then
                    0A93: end_custom_thread
                end
            end
        end      
    else
        0A93: end_custom_thread
    end    
end

в скрипте, который создает трейлер, нужно добавить команду

0A92: create_custom_thread "TrailerCheck.cs" ACTOR@ TRAILER@

"TrailerCheck.cs" - имя CLEO-скрипта, который указан выше
ACTOR@ - имя актера, для которого вести проверку
TRAILER@ - имя созданного трейлера

Offline

#8 07-07-2013 13:21

eek
Registered: 06-07-2013
Posts: 23
Website

Re: Помогите с созданием таймера

Там на сервер несколько видов трейлеров, я в самп-вики "Vehicle Model ID List", нашел только два

ID - 450
ID - 584

Но там есть ещё два кажется, но я что то их там найти не могу. Можно сделать чтобы просто когда спаунился трейлер начинался отсчет времени?

Offline

#9 07-07-2013 13:31

eek
Registered: 06-07-2013
Posts: 23
Website

Re: Помогите с созданием таймера

Seemann wrote:

@eek -

0A92: create_custom_thread "TrailerCheck.cs" ACTOR@ TRAILER@

"TrailerCheck.cs" - имя CLEO-скрипта, который указан выше
ACTOR@ - имя актера, для которого вести проверку
TRAILER@ - имя созданного трейлера

и я немного не понял этого этапа, можно поподробнее?

Offline

#10 07-07-2013 13:50

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: Помогите с созданием таймера

@eek - здесь не форум поддержки SAMP. По всем вопросам, связанным с работой клиент-серверных скриптов обращайтесь к разработчикам таких скриптов.
Примеры выше были описаны для случаев, когда трейлер в игре создается вашим собственным скриптом, к которому вы имеете доступ. Соответственно вы знаете имя (хендл) машины, которая создается, и можете с ней работать.

Offline

#11 12-07-2013 19:48

eek
Registered: 06-07-2013
Posts: 23
Website

Re: Помогите с созданием таймера

То что написано выше мне сложно сделать. Подскажите почему тут не работает активация на клавишу?

{$CLEO}
wait 0
while true
    wait 0
    0AB0: key_pressed 32
    if
        32@ > 10000
    then
        32@ = 0
    end
    
    0A8F: 0@ = 10000 - 32@ // int
    0@ /= 1000
    0AB0: key_pressed 32
    03F0: enable_text_draw 1
    045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 0@  // ~1~
end

Offline

#12 12-07-2013 20:00

НикИТОС
Registered: 05-06-2013
Posts: 133
Website

Re: Помогите с созданием таймера

Тут «активация на клавишу» и не должна работать. Я не вижу адекватной проверки нажатия на клавишу. Опиши, что ты хотел состряпать.

Offline

#13 12-07-2013 20:04

eek
Registered: 06-07-2013
Posts: 23
Website

Re: Помогите с созданием таймера

Поставить активацию на включения таймера с обратным отсчетом

Offline

#14 12-07-2013 20:10

НикИТОС
Registered: 05-06-2013
Posts: 133
Website

Re: Помогите с созданием таймера

{$CLEO}
:Test
0000:

:Test_2
wait 0
If 0AB0: key_pressed 32
JF @Test_2
while true
    wait 0

    if
        32@ > 10000
    then
        32@ = 0
    end
    
    0A8F: 0@ = 10000 - 32@ // int
    0@ /= 1000
    
    03F0: enable_text_draw 1
    045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 0@  // ~1~
end

Offline

#15 12-07-2013 20:37

eek
Registered: 06-07-2013
Posts: 23
Website

Re: Помогите с созданием таймера

Спасибо. А как сделать, чтобы он не начинал заново считать, только 1 раз?

Offline

#16 12-07-2013 21:19

НикИТОС
Registered: 05-06-2013
Posts: 133
Website

Re: Помогите с созданием таймера

{$CLEO}
:Test
0000:

:Test_2
wait 0
If 0AB0: key_pressed 32
JF @Test_2

:Test_3
while true
    wait 0

    if
        32@ > 10000
    then
        32@ = 0
    end
    
    0A8F: 0@ = 10000 - 32@ // int
    0@ /= 1000
    
    03F0: enable_text_draw 1
    045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 0@  // ~1~
   If 0@>1
   Then continue
   Else jump @Test_2
end
end

Offline

#17 12-07-2013 21:47

eek
Registered: 06-07-2013
Posts: 23
Website

Re: Помогите с созданием таймера

Что то в нем не так. Отсчет идёт не с 10 секунд а с 4. Я имел в ввиду не вообще 1 раз, а по нажатию. Нажал отсчитало 15 секунд и все и так далее

Offline

#18 12-07-2013 22:03

НикИТОС
Registered: 05-06-2013
Posts: 133
Website

Re: Помогите с созданием таймера

У меня всё работает, как ни странно.

Offline

#19 13-07-2013 14:58

eek
Registered: 06-07-2013
Posts: 23
Website

Re: Помогите с созданием таймера

а чтобы минуты отсчитывало, как можно изменить?

Last edited by eek (13-07-2013 14:58)

Offline

#20 13-07-2013 15:17

НикИТОС
Registered: 05-06-2013
Posts: 133
Website

Re: Помогите с созданием таймера

{$CLEO}
:Test
0000:

:Test_2
wait 0
If 0AB0: key_pressed 32
JF @Test_2

:Test_3
while true
    wait 0

    if
        32@ > 360000
    then
        32@ = 0
    end
    
    0A8F: 0@ = 360000 - 32@ // int
    0@ /= 36000
    
    03F0: enable_text_draw 1
    045A: draw_text_1number 200.0 200.0 GXT 'NUMBER' number 0@  // ~1~
   If 0@>1
   Then continue
   Else jump @Test_2
end
end

Offline

#21 13-07-2013 17:18

eek
Registered: 06-07-2013
Posts: 23
Website

Re: Помогите с созданием таймера

А в таком формате возможно? 2(минуты):30(секунды) 2:29

Offline

#22 13-07-2013 18:04

НикИТОС
Registered: 05-06-2013
Posts: 133
Website

Re: Помогите с созданием таймера

{$CLEO}
:Test
0000:

:Test_2
wait 0
$Time = 150000
If 0AB0: key_pressed 32
JF @Test_2
014E: set_timer_to $Time type 1
		    
:Test_3
wait 0
if
$Time < 1
jf @Test_3
end_thread

Offline

#23 13-07-2013 18:52

eek
Registered: 06-07-2013
Posts: 23
Website

Re: Помогите с созданием таймера

Это весь код? У тебя он запустился?

Offline

#24 13-07-2013 19:15

НикИТОС
Registered: 05-06-2013
Posts: 133
Website

Re: Помогите с созданием таймера

Да, всё работает.

Offline

#25 13-07-2013 22:20

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Помогите с созданием таймера

@НикИТОС - Объясни, в какой-такой справке написано что в клео скриптах можно использовать глобальные переменные и опкод end_thread.

Offline

Board footer

Powered by FluxBB