13:51
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
        
[Include] RemoveBuilding (2)
JasonGordon 24.05.2017 23:48
[SA-MP] Hosted Tab (116)
DieSeL 17.05.2017 17:33
Физрук (15)
Lanablogger1 16.05.2017 16:00
 





Рекомендуем:
Добавить IP: 95.172.59.51:7777





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
Скачать GTA SAMP 0.3.7 - Кл... 20.07.2015
Страница 1 из 11
Модератор форума: AXE, Weddew 
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Таймер
Таймер
kRiSyoДата: Пятница, 29.11.2013, 13:34 | Сообщение # 1
Новенький
Группа: Продвинутые
Сообщений: 71
Награды: 2
Город: Дублин
Репутация: 5
Замечания: 0%
Статус:
в обшем с первого раза все работает но потом начинаются лаги =/
рекурсия в этом коде действие будет выполняться бесконечно

есть решение ?

Код
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    switch (GetVehicleModel(vehicleid))
  {
   case 520:
   {
    DestroyObject(HydraGate);
    DestroyObject(HydraGate2);
    HydraTimer = SetTimer("Hydra",1000*60*1,true);
      }
    }
  return 1;
}


Код
forward Hydra();
public Hydra()
{
  HydraGate = CreateObject(10828,-1806.2998000,544.5996100,232.2000000,90.0000000,179.9840000,180.0000000);
  HydraGate2 = CreateObject(10828,-1806.0000000,569.0996100,232.2000000,90.0000000,180.0000000,359.4840000);
  KillTimer(HydraTimer);
  return 1;
}

GeryyДата: Пятница, 29.11.2013, 14:43 | Сообщение # 2
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
HydraTimer = SetTimer("Hydra",1000*60*1,false);


Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
kRiSyoДата: Пятница, 29.11.2013, 15:05 | Сообщение # 3
Новенький
Группа: Продвинутые
Сообщений: 71
Награды: 2
Город: Дублин
Репутация: 5
Замечания: 0%
Статус:
у меня изначально было false но нужно чтобы он запускался еще раз если сесть в гидру
работает 1 раз с false...

GeryyДата: Пятница, 29.11.2013, 16:21 | Сообщение # 4
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Т.е. те надо, чтобы таймер выполнился только 2 раза?


Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.

Сообщение отредактировал Geryy - Пятница, 29.11.2013, 16:21
kRiSyoДата: Пятница, 29.11.2013, 20:28 | Сообщение # 5
Новенький
Группа: Продвинутые
Сообщений: 71
Награды: 2
Город: Дублин
Репутация: 5
Замечания: 0%
Статус:
нет должно всегда возвращать ворота через минуту если взять гидру

Добавлено (29.11.2013, 17:56)
---------------------------------------------
SetTimerEx("Hydra",1000*60*1,false,"%d",HydraTimer);

а если так ?

Добавлено (29.11.2013, 17:57)
---------------------------------------------
хотя погоди =/ походу будет все работать если не убивать таймер и поставить false

Добавлено (29.11.2013, 17:58)
---------------------------------------------
если так
SetTimer("Hydra",1000*60*1,false);
то он выполнится один раз и его не надо убивать ?

Добавлено (29.11.2013, 18:44)
---------------------------------------------
не и так не работет

Добавлено (29.11.2013, 19:01)
---------------------------------------------
В общем изначально у меня есть объекты ворот
когда садится в гидру они исчезают
и через 1 минуту возвращаются
срабатывает 1 раз =/ в общем что-то не то
иногда и 2 раза срабатывает

Добавлено (29.11.2013, 20:28)
---------------------------------------------

Код
////////////////////////////////////////////////////////////////////////////////
new timer;
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    switch (GetVehicleModel(vehicleid))
  {
   case 520:
   {
    DestroyObject(HydraGate);
    DestroyObject(HydraGate2);
    timer = SetTimer("Hydra",1000*60,true);
      }
    }
  return 1;
}
////////////////////////////////////////////////////////////////////////////////
forward Hydra();
public Hydra()
{
  HydraGate = CreateObject(10828,-1806.2998000,544.5996100,232.2000000,90.0000000,179.9840000,180.0000000);
  HydraGate2 = CreateObject(10828,-1806.0000000,569.0996100,232.2000000,90.0000000,180.0000000,359.4840000);
  KillTimer(timer);
  return 1;
}
////////////////////////////////////////////////////////////////////////////////


В общем все работает но потом вдруг все перестает работать и не удаляет объекты.

GeryyДата: Суббота, 30.11.2013, 01:50 | Сообщение # 6
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Пробуй так:

Код

В public OnPlayerStateChange(playerid, newstate, oldstate)

     new vehicleID = GetPlayerVehicleID(playerid);
      if (newstate == 2 && GetVehicleModel(vehicleID) == 520)
     {
      DestroyObject(HydraGate);
      DestroyObject(HydraGate2);
      SetTimer("Hydra",60000,false);
     }
      
      
forward Hydra();
public Hydra()
{
   HydraGate = CreateObject(10828,-1806.2998000,544.5996100,232.2000000,90.0000000,179.9840000,180.0000000);
   HydraGate2 = CreateObject(10828,-1806.0000000,569.0996100,232.2000000,90.0000000,180.0000000,359.4840000);
}



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
kRiSyoДата: Суббота, 30.11.2013, 19:18 | Сообщение # 7
Новенький
Группа: Продвинутые
Сообщений: 71
Награды: 2
Город: Дублин
Репутация: 5
Замечания: 0%
Статус:
не помогло та же история.
GeryyДата: Воскресенье, 01.12.2013, 02:59 | Сообщение # 8
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Значит тогда дело не в этом коде. Проблема в другом.

HydraGate = CreateObject(10828,-1806.2998000,544.5996100,232.2000000,90.0000000,179.9840000,180.0000000);
HydraGate2 = CreateObject(10828,-1806.0000000,569.0996100,232.2000000,90.0000000,180.0000000,359.4840000);

у тебя в public OnGameModeInit() они есть? Или только в таймере создаются?



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.

Сообщение отредактировал Geryy - Воскресенье, 01.12.2013, 03:01
FiLEДата: Воскресенье, 01.12.2013, 03:00 | Сообщение # 9
Группа: Разработчики
Сообщений: 679
Награды: 70
Город: Днепропетровск
Замечания: 0%
Статус:
Ну, можно с помощью каменного века:

Кидаем в "начало" мода:
Код

new secund,HydraGate,HydraGate2;
forward sec();
forward Hydra();
public sec()
{
  if(secund > 0)
  {
      if(secund==1) Hydra();
   secund --;
  }
  return 1;
}
public Hydra()
{
    HydraGate = CreateObject(10828,-1806.2998000,544.5996100,232.2000000,90.0000000,179.9840000,180.0000000);
    HydraGate2 = CreateObject(10828,-1806.0000000,569.0996100,232.2000000,90.0000000,180.0000000,359.4840000);
}


Потом в modeinit создаем таймер: SetTimer("sec",1000,true);

И в заключение public OnPlayerStateChange:

Код

if (newstate == 2 && GetVehicleModel(GetPlayerVehicleID(playerid)) == 520)
{
  if(IsValidObject(HydraGate))
  {
   DestroyObject(HydraGate);
   DestroyObject(HydraGate2);
  }
  secund = 60;
}


В теории должно работать железно.




kRiSyoДата: Воскресенье, 01.12.2013, 22:40 | Сообщение # 10
Новенький
Группа: Продвинутые
Сообщений: 71
Награды: 2
Город: Дублин
Репутация: 5
Замечания: 0%
Статус:
Цитата Geryy ()
Значит тогда дело не в этом коде. Проблема в другом.

HydraGate = CreateObject(10828,-1806.2998000,544.5996100,232.2000000,90.0000000,179.9840000,180.0000000);
HydraGate2 = CreateObject(10828,-1806.0000000,569.0996100,232.2000000,90.0000000,180.0000000,359.4840000);

у тебя в public OnGameModeInit() они есть? Или только в таймере создаются?


OnGameModeInit они есть =/

Добавлено (01.12.2013, 22:40)
---------------------------------------------
в общем сделал через MoveObject в таймере почему то стало только для ид 0....
на всякий случай скидываю весь таймер
Код

forward OnGameTimer();
public OnGameTimer()
{
for(new i = 0; i < MAX_PLAYERS;i++)
{
if(IsPlayerConnected(i))
{
if(IsPlayerInRangeOfPoint(i, 5.0, -1806.80005,557.59998,228.8))
{
MoveObject(HydraGate, -1821.5000000,534.9000200,232.0000000, 2.0);
MoveObject(HydraGate2, -1793.5000000,584.0000000,232.0000000, 2.0);
}else{
MoveObject(HydraGate, -1813.2998000,548.8994100,232.0000000, 2.0);
MoveObject(HydraGate2, -1801.0000000,570.2998000,232.0000000, 2.0);
}
// Check chatoff time
if(PlayerInfo[i][pMuteTime] > 0) {
lastMuteTime[i] = PlayerInfo[i][pMuteTime];
PlayerInfo[i][pMuteTime]--;
}
else {
if(lastMuteTime[i] == 1) {
lastMuteTime[i] = 0;
SendClientMessage(i, COLOR_LIGHTGREEN, "Теперь вы можете говорить в чат!");
}
PlayerInfo[i][pMuteTime] = 0;
}
if(gPlayerSpawn[i] == 1)
{
new string[128];
new pPing = GetPlayerPing(i);
new pName[MAX_PLAYER_NAME];
GetPlayerName(i,pName,sizeof(pName));

ResetPlayerMoney(i);
GivePlayerMoney(i,pCash[i]);

if(pPing > 650)
{
format(string,sizeof(string),"%s(%d) {33CCFF}Кикнут за высокий пинг(+650m/s)",pName,i);
SendClientMessageToAll(-1,string);
Kick(i);
}
if((GetPlayerWeapon(i) == 35) || (GetPlayerWeapon(i) == 36) || (GetPlayerWeapon(i) == 37) || (GetPlayerWeapon(i) == 38) || (GetPlayerWeapon(i) == 17) || (GetPlayerWeapon(i) == 18))
{
format(string,sizeof(string),"%s(%d) {33CCFF}Кикнут за использование запрещенного оружия",pName,i);
SendClientMessageToAll(-1,string);
Kick(i);
}
}
}
}
return 1;
}



Сообщение отредактировал kRiSyo - Воскресенье, 01.12.2013, 22:41
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Таймер
Страница 1 из 11
Поиск:





 


 


 
Хостинг от uCoz SAMP-RUS.COM