LuxurY forum (scripting SA-MP)

Объявление

с 29 марта 2007 года
LuxurY forum - крупнейший российский форум скриптинга в PAWNO
Новый форум
Задавайте свои вопросы

Архив скриптов


Наша кнопка:
LuxurY forum :: Scripting SA-MP
Код:

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



SetTimer

Сообщений 1 страница 11 из 11

1

Как убрать эти «переменных» или хрен знает, как они называются (SetTimer)? К примеру:
---------------------------------------------------------------------------
#define TIME 300
---------------------------------------------------------------------------
public OnPlayerEnterCheckpoint(playerid)
{
SetTimer("Minus_money", TIME, 1);
return 1;
}

public Minus_money(playerid)
{
      GivePlayerMoney(playerid,-1);
return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
(что тут надо написать, чтоб деньги прекратили отбавляться после выхода из чекпоента (чтоб SetTimer умер)) ???
            return 1;
}

---------------------------------------------------------------------------

Какие вообще возможности «Timer» - ра этого?
Или даже как закрыть его воздействия на public Minus_money?

0

2

Код:
public OnPlayerLeaveCheckpoint(playerid)
{
new TMoney = SetTimer("Minus_money",TIME,1);
KillTimer(TMoney);
            return 1;
}

KillTimer(TMoney); - выключает таймер

Возможности: в таймер ты можешь запихать любые команды (восстановление здоровья, оружие итд.)
Можно сделать часы, отсчет какой-нибудь.
Миссию на время.
И много много чего.

Таймер просто повторяет функцию. Часы можешь посмотреть в теме "Полезные команды"

0

3

Спасибо большое!

Но не работает.... Проверь сам! Вот запусти это:

#include <a_samp>
#define COLOR_WHITE 0xFFFFFFAA
#define TIME 300
#define CHECKPOINT 1
new gPlayerCheckpointStatus[MAX_PLAYERS];

public OnGameModeInit()
{
    AddPlayerClass(70,-2015.1179,156.8853,28.8359,34.8346,0,0,0,0,0,0);
return 1;
}
public OnPlayerSpawn(playerid)
{
gPlayerCheckpointStatus[playerid] = CHECKPOINT;
    SetPlayerCheckpoint(playerid,-2029.2666,156.5178,28.6164,4.0);
    return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
SendClientMessage(playerid,COLOR_WHITE,"ВХОД");
SetTimer("Minus_money", TIME, 1);
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
SendClientMessage(playerid,COLOR_WHITE,"ВЫХОД");
new TMoney = SetTimer("Minus_money", TIME, 1);
KillTimer(TMoney);
            return 1;
}
public Minus_money(playerid)
{
      GivePlayerMoney(playerid,-1);
return 1;
}

Отредактировано sneg (2007-05-05 22:24:41)

0

4

sneg написал(а):

Спасибо большое!

незачто пиши еще с удовольствием отвечу
не пиши на др. форуме там редко отвечают, а в основном посылают, тут тебе все ответят и расскажут

0

5

Так ты мне не ответил... Я просто подумал, что ты пропустил мое второе сообщение... А то, как-то ответ не соответствует вопросу.

0

6

sneg написал(а):

Так ты мне не ответил... Я просто подумал, что ты пропустил мое второе сообщение... А то, как-то ответ не соответствует вопросу.

Код:
#include <a_samp>
#define CHECKPOINT 1
new TIME = 300; // Или #define TIME 300
new gPlayerCheckpointStatus[MAX_PLAYERS];
public OnGameModeInit()
{
	AddPlayerClass(70,-2015.1179,156.8853,28.8359,34.8346,0,0,0,0,0,0);
	SetTimer("Minus_money", TIME, 1);
	return 1;
}
public OnPlayerConnect(playerid)
{
 SendClientMessage(playerid,0xFFFF00AA,"Таймер запустился! (Он отнимает деньги).");
 SendClientMessage(playerid,0xFFFF00AA,"Зайди в и выйди из Checkpoint-а и таймер остановиться!");
 return 1;
}
public OnPlayerSpawn(playerid)
{
	gPlayerCheckpointStatus[playerid] = CHECKPOINT;
    SetPlayerCheckpoint(playerid,-2029.2666,156.5178,28.6164,4.0);
    return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
SendClientMessage(playerid, 0xFFFF00AA, "Сейчас должен прекратить свою работу таймер.");
SendClientMessage(playerid, 0xFFFF00AA, "Но нет! Он все еще снимать деньги...");
SendClientMessage(playerid, 0xFFFF00AA, "LuxurY почему?");
new TMoney = SetTimer("Minus_money",TIME,1);
KillTimer(TMoney);

            return 1;
}
public Minus_money()
{
for(new i=0; i<MAX_PLAYERS; i++)
if (IsPlayerConnected(i) && IsPlayerInCheckpoint(i))
{
      GivePlayerMoney(i,-1);
}

}

0

7

Спасибо большое! Все работает! :)

0

8

sneg написал(а):

Спасибо большое! Все работает!

не за что

0

9

LuxurY написал(а):

не за что

Действительно, не за что. Это же я этот код написал. :D

0

10

Начнем с того, что ты его не мог ни как написать. Так как это мой код с исправленными ошибками.

0

11

divine написал(а):

Действительно, не за что. Это же я этот код написал.

ухаха код. это не код а так фуфел. я его и сам мог бы написать

0