SA-MP Forums Archive
Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? (/showthread.php?tid=170894)

Pages: 1 2


Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - K-911 - 24.08.2010

У меня на сервере при коннекте высвечиваеться TextDraw с информацией, как сделать, чтоб он исчез через 10 секунд после появления?


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - Xotab - 24.08.2010

SetTimer тебе в помощь!


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - K-911 - 24.08.2010

А можно как-то, чтоб он плавно исчезал, я так на многих серверах видел


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - Xotab - 24.08.2010

и снова тебе поможет SetTimer =\


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - K-911 - 24.08.2010

Каким образом? Как сделать плавное исчезание с помощью SetTimer?


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - ZaR - 24.08.2010

пздц. не занимайся тогда скриптингом, если не можешь даже продумать простейший алгоритм или иди на другой сайт, а тут как бэ не дают полного кода, а намёк сделали.


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - K-911 - 24.08.2010

ZaR, я это сказал к тому, что невозможно с помощью SetTimer плавное исчезание сделать! Оно работает от какой-то другой функции и я хочу узнать, какой, а SetTimer может сделать только резкое исчезание!


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - [Saint] - 24.08.2010

через 10 сек, меняешь цвет на более светлый каждую след. секунду, а потом и вовсе скрыть с экрана.
неужели до этого так трудно додуматься?


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - K-911 - 24.08.2010

Ты думаешь так все делают? Есть спец. функция, она делает исчезание, ане осветление, темболее в TextDraw испльзуеться где-то 5-6 цветов и там нет светлых цветов! Мне эта функция нужна, потому, что SetTimer иногда глючит, и очень часто убирает текст при спавне.


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - K-911 - 24.08.2010

ZaR, не умничай, ты как я вижу тоже не всё в павно знаешь, у меня давно когда-то была такая функция, но после переустановки винды удалился мод, а я тогда ещё в павно плохо разбирался, так что думал мне кто-то напомнит, а здесь вместо этого ржут... Если ты незнаешь, этот форум создан для того, чтоб задавали вопросы, а знающие на него ответ, помогали, ане намекали и ржали!


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - KPECTok - 24.08.2010

SetTimer
запускаешь паблик в котором цвет посветлее.. и в этом же паблике новый SetTimer2
в след паблике SetTimer2 еще светлее..
в самом конце удаляешь.


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - gradient - 25.08.2010

А нельзя попробовать замутить что-то вроде:
Код:
Public TextDrawInv(textdrawid)
{ 
    TextSec--;
    if(TextSec==8) Осветление текстдрава;
    if(TextSec==4) Более Осветление текстдрава;
    if(TextSec==0) Полнре исчезновение текстдрава;
    TextTimer = SetTimer("TextDrawInv",1000,0);
    return 1;
}
P.S Код набрасал просто прямо тут, для примера, надеюсь он чем-то поможет


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - Stepashka - 25.08.2010

Я делал эффект затемнения экрана, правильно говорять, нужен таймер, по нему плавно изменяешь альфа составляющую цвета у TextDraw, т.е. меняешь прозрачность, а когда она 0 убираешь текст, все.

Единственное что тут подсказали неправильно это время, тут нужна апперировать значениями милисекунд.

У меня за это отвечал вот такой паблик:

pawn Код:
new Text:BlackScreen[MAX_PLAYERS],BlackScreenTimer[MAX_PLAYERS];
forward OnPlayerBlackScreen(playerid,bool:type,aaa,speed);

public OnPlayerBlackScreen(playerid,bool:type,aaa,speed)
{
    if(BlackScreenTimer[playerid] != -1)
    {
        KillTimer(BlackScreenTimer[playerid]);
        BlackScreenTimer[playerid] = -1;
    }
    if(type)
    {
        if(aaa == 0)
        {
            BlackScreen[playerid] = TextDrawCreate(0.0, 0.0, "_");
            TextDrawFont(BlackScreen[playerid], 1);
            TextDrawLetterSize(BlackScreen[playerid], 0.0, 50.0);
            TextDrawUseBox(BlackScreen[playerid], true);
            TextDrawColor(BlackScreen[playerid], 0);
            TextDrawBoxColor(BlackScreen[playerid], aaa);
            TextDrawShowForPlayer(playerid,BlackScreen[playerid]);
            aaa += 1;
        }
        else if(aaa < 255)
        {
            TextDrawHideForPlayer(playerid,BlackScreen[playerid]);
            TextDrawBoxColor(BlackScreen[playerid], aaa);
            TextDrawShowForPlayer(playerid,BlackScreen[playerid]);
            aaa += 1;
        }
        else if(254 < aaa < 265)
        {
            aaa += 1;
        }
        else if(aaa == 265)
        {
            type = false;
            aaa = 255;
            return 1;
        }
        BlackScreenTimer[playerid] = SetTimerEx("OnPlayerBlackScreen",speed,0,"dddd",playerid,type,aaa,speed);
    }
    else
    {
        if(aaa > 0)
        {
            TextDrawHideForPlayer(playerid,BlackScreen[playerid]);
            TextDrawBoxColor(BlackScreen[playerid], aaa);
            TextDrawShowForPlayer(playerid,BlackScreen[playerid]);
            aaa -= 1;
            BlackScreenTimer[playerid] = SetTimerEx("OnPlayerBlackScreen",speed,0,"dddd",playerid,type,aaa,speed);
        }
        else if(aaa <= 0)
        {
            TextDrawHideForPlayer(playerid,BlackScreen[playerid]);
            TextDrawDestroy(BlackScreen[playerid]);
        }
    }
    return 1;
}
атрибуты:
playerid - кому показывать
bool:type - первый запуск true или изменение параметров false
aaa - стартовый цвет (0 - замтемнение, 255 наоборот с церного на полное исчезновение)
speed - скорость

чтобы скрыть экран я вызывал его со следующими параметрами OnPlayerBlackScreen(playerid,true,0,3);


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - azen - 25.08.2010

хахах... Ну парень конешь дал газу... Функция, х3 какая, но точно не таймер xDDD


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - Stepashka - 25.08.2010

Quote:
Originally Posted by azen
Посмотреть сообщение
хахах... Ну парень конешь дал газу... Функция, х3 какая, но точно не таймер xDDD
вообще-то без таймера не обойтись.


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - K-911 - 25.08.2010

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
вообще-то без таймера не обойтись.
Да, но вот, что мне нужно было! Не замена цвета на светлее, как думали некоторые и ржали, а исчезание, я сейчас об этом:
Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Public TextDrawInv(textdrawid)
{
TextSec--;
if(TextSec== Осветление текстдрава;
if(TextSec==4) Более Осветление текстдрава;
if(TextSec==0) Полнре исчезновение текстдрава;
TextTimer = SetTimer("TextDrawInv",1000,0);
return 1;
}
А про SetTimer не спорю, без него тоже некак.


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - f0rtex - 25.08.2010

K-911, Получается что не ты делаешь твой мод, а скриптеры русского форума


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - [CripZ]SERCH - 25.08.2010

Да лан тебе, это всего лишь просьба человека , просто она большая


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - azen - 25.08.2010

ага, и обычно за такие просьбы деньги берут


Re: Как сделать, чтоб TextDraw исчезал через 10 сек. после коннекта? - K-911 - 25.08.2010

f0rtex, мой мод не скриптеры русского форума делают, он у меня сам по себе большой, а сюда я задаю вопросы, если с чем-то возникает проблема и я её не могу решить, или мне нужен какой-то важный скрипт, которого не могу найти, этот форум для того и сделан, чтоб знатоки помогали решить проблему, а если кто-то не хочет помогать, это уже его право, это в конце к концов форум, а за деньги, это когда уже в личном обращении просишь помощь