 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Действия по таймеру
| |
| xxxalexxxx | Дата: Пятница, 27.08.2010, 19:28 | Сообщение # 1 |
|
Новенький
Группа:
Продвинутые
Сообщений: 66
Награды: 1
Город: Kiev
Репутация: 12
Замечания: 40%
Статус: 
| Я хочу сделать так, чтобы каждое действие выполнялось через 1 секунду. Вот код: if(strcmp(cmd,"/fire", true) == 0) { GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "%s Достал оружие",sendername); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); format(string, sizeof(string), "%s Перезарядил оружие",sendername); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); format(string, sizeof(string), "%s Прицелился",sendername); ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); return 1; } Тоесть для каждого из этих действий, я хочу установить задержку на 1 секунд. Прошло 1 /me действие, потом через 1 секунду прошло и другое. Можно ли так сделать? Скиньте мне код. С меня плюс!
HostName: .::Real World RolePlay::.Address: 176.32.37.53:7777 Mode: Real Life v8.4
Наш сайт: http://rwroleplay.3nx.ru
|
| |
|
|
| Xripter | Дата: Пятница, 27.08.2010, 20:43 | Сообщение # 2 |
|
Новенький
Группа:
Пользователи
Сообщений: 7
Награды: 0
Город: Брест
Репутация: 0
Замечания: 0%
Статус: 
| Ну сам не проверял, надеюсь, ты мою мысль поймешь и сможешь там возможные неровности сгладить. (Все-таки бесплатно помогаю) //задаем глобальные переменные (в начале кода мода) new FireTime[MAX_PLAYERS]; // это наш счетчик new FireTimer; //перменная таймера, (чтобы его задать и им управлять) forward Fire(); //задаем паблик твоего скрипта //затем, там где все таймеры задаешь в моде, задаешь новый таймер FireTimer = SetTimer("Fire", 1000, 1); //частота ударов - 1 секунда //Где-нибудь в паблик, лучше всего в onplayerlogin добавить FireTime[playerid] = 0; // чтобы персонаж вдруг стрелять не начал // теперь пишем тело этого устройства public Fire() //таймер счелкает по эому паблику постоянно { new string[256]; new sendername[MAX_PLAYER_NAME]; for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(FireTime[i] == 1) //если ты запустил запускатель устройства , машина заработает и начнет считать { GetPlayerName(i, sendername, sizeof(sendername)); format(string, sizeof(string), "%s Достал оружие",sendername); ProxDetector(30.0, i, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); FireTime[i] = 2; //вот она написала первую строчку и добавила к счетчику } else if(FireTime[i] == 2) //вот сработала вторая ступенька счетчика { format(string, sizeof(string), "%s Перезарядил оружие",sendername); ProxDetector(30.0, i, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); FireTime[i] = 3; //ну ты понял } else if(FireTime[i] == 3) { format(string, sizeof(string), "%s Прицелился",sendername); ProxDetector(30.0, i, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); FireTime[i] = 4; } else if(FireTime[i] == 4) //когда дошло до конца, сбрасывает на ноль. ВСе. машина отключена. { FireTime[i] = 0; } } } //теперь пишем код запускателя if(strcmp(cmd,"/fire", true) == 0) //при вводе команды активируется FireTime и устройство возьмет его в оборот { if(IsPlayerConnected(playerid)) { FireTime[playerid] = 1; } return 1; } //честно говоря не удержался и проверил - все работает. } Добавлено (27.08.2010, 20:43) --------------------------------------------- Честно говоря ступил и не воспользовался функцией форума "код". Придется тебе в ручную форматировать.
Сервер: Plastilino Role Play Server IP: 188.120.232.165:7777 Сайт: www.plastilino.tk Скриптинг на заказ, ICQ 455-099-020
|
| |
|
|
| Maccer | Дата: Суббота, 28.08.2010, 00:35 | Сообщение # 3 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 281
Награды: 7
Город: Санкт-Петербург
Репутация: 100
Замечания: 40%
Статус: 
| предложу альтернативное решение: для каждого сообщения в чат создать свою public функцию вызвать их разом с различным временным интервалом с помощью SetTimerEx
есть вопросы по sa-mp или pawn? помогу за $$
|
| |
|
|
| Vagrant | Дата: Суббота, 28.08.2010, 16:51 | Сообщение # 4 |
|
Уважаемый человек
Группа:
I'm V.I.P.
Сообщений: 904
Награды: 21
Город: Находка
Репутация: 489
Замечания: 0%
Статус: 
| xxxalexxxx, Либо другой вариант: В начало: stock pause(msec) { new ms = GetTickCount()+msec; while(ms > GetTickCount()) {} } В команду: if(strcmp(cmd,"/fire", true) == 0) { GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "%s Достал оружие",sendername); pause(1000); // 1 Секунда ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); format(string, sizeof(string), "%s Перезарядил оружие",sendername); pause(1000); // 1 Секунда ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); format(string, sizeof(string), "%s Прицелился",sendername); pause(1000); // 1 Секунда ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); return 1; } Но так не желательно 
Человек учась ходить падает, и только падая, он учится ходить! Мои работы: [GM] W.F.S.A. V. 1.0 - 100% [GM] San Fierro Enigmatic (TDM) V. 1.0 - 100% [FS] Clan House V. 1.0 - 100% [FS] Save Car Tun System V. 1.0 - 100% [FS] Vagrant Anti-CapsLock V. 2.1 - 100% [FS] Vagrant Anti-Advertise V. 1.1, V. 2.0 - 100% [APP] SA-MP Interior Viewer V. 1.0 - 100%
Принимаю заказы на помощь в скриптинге!
|
| |
|
|
|
 |
|
 | |
| |
|