|
Вопрос про OnGameModeExit()
|
|
| _Dark_ | Дата: Понедельник, 18.07.2011, 11:16 | Сообщение # 1 |
|
Постоялец
Группа:
I'm V.I.P.
Сообщений: 379
Награды: 4
Город: Dark://core.dll
Репутация: 169
Замечания: 40%
Статус: 
| Возник следующий вопрос: Как долго выполняется действие OnGameModeExit()? Успеет ли цикл for(new i; i<MAXPLAYERS; i++) SavePlayer(i); Выполнится на всех игроков онлайн (допустим 50 - 70)? (SavePlayer(playerid) - сохранение данных игрока в файл, используется MXIni). ----- Извиняюсь, перепутал разделы, пожалуйста, перенесите тему!!!
Если баги возникают из ниоткуда - ты на правильном пути. (с)
Сообщение отредактировал _Dark_ - Понедельник, 18.07.2011, 11:18 |
| |
|
|
| Impereal | Дата: Понедельник, 18.07.2011, 11:46 | Сообщение # 2 |
|
Мастер джэдай
Группа:
I'm V.I.P.
Сообщений: 2677
Награды: 51
Город: Санкт-Петербург
| Quote (_Dark_) Возник следующий вопрос: Как долго выполняется действие OnGameModeExit()? Успеет ли цикл for(new i; i<MAXPLAYERS; i++) SavePlayer(i); Выполнится на всех игроков онлайн (допустим 50 - 70)? (SavePlayer(playerid) - сохранение данных игрока в файл, используется MXIni). Сначало отработает весь паблик OnGameModeExit, после этого мод выключиться... Сделал ради интереса: Code public OnGameModeExit() { new str[16]; for(new i;i<50000;i++) { format(str,sizeof(str),"%i",i); print(str); } return 1; } Сначало вывело 50000 значений потом выключился сервер.
Прощай самп-рус =Р
Сообщение отредактировал Impereal - Понедельник, 18.07.2011, 11:47 |
| |
|
|
| Alcoholik | Дата: Понедельник, 18.07.2011, 11:50 | Сообщение # 3 |
|
Мастер джэдай
Группа:
Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус: 
| Тему перенёс. Quote (_Dark_) Как долго выполняется действие OnGameModeExit()? Настолько долго, как ты сам это задашь. Quote (_Dark_) Успеет ли цикл for(new i; i почему нет? Пока не выполнится команда, он не закончится. Если непонятно, объясню. Code for(new j=0; j<100500; j++) { for(new i; i<MAXPLAYERS; i++) SavePlayer(i); } Будет выполнятся 100500 раз, после уже выключится) (Я это не проверял, пишу из логических соображений)
Добавлено (18.07.2011, 11:50) --------------------------------------------- Impereal, ска обогнал
if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die(); Мониторинг sa:mp серверов Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги. Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
|
| |
|
|
| _Dark_ | Дата: Понедельник, 18.07.2011, 13:14 | Сообщение # 4 |
|
Постоялец
Группа:
I'm V.I.P.
Сообщений: 379
Награды: 4
Город: Dark://core.dll
Репутация: 169
Замечания: 40%
Статус: 
| Ясно, спасибо. Я просто думал, что время выполнения ограничено, т.е. я не знал, что он вначале все выполнит и только потом завершит свою работу. P.S. Спасибки вам обоим поставил, тему можно закрыть.
Если баги возникают из ниоткуда - ты на правильном пути. (с)
|
| |
|
|
| Alcoholik | Дата: Вторник, 19.07.2011, 11:04 | Сообщение # 5 |
|
Мастер джэдай
Группа:
Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус: 
| Закрыто Добавлено (19.07.2011, 11:04) --------------------------------------------- Открыто 
if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die(); Мониторинг sa:mp серверов Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги. Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
|
| |
|
|
| Scorpi | Дата: Вторник, 19.07.2011, 11:48 | Сообщение # 6 |
|
Группа:
I'm V.I.P.
Сообщений: 1504
Награды: 33
Репутация: 723
Замечания: 0%
Статус: 
| Закрыто
|
| |
|
|
| Alcoholik | Дата: Вторник, 19.07.2011, 23:21 | Сообщение # 7 |
|
Мастер джэдай
Группа:
Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус: 
| Наверно не просто так открыл?
if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die(); Мониторинг sa:mp серверов Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги. Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
|
| |
|
|
| AirKite | Дата: Среда, 20.07.2011, 01:46 | Сообщение # 8 |
|
Долгожитель
Группа:
I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус: 
| По теме могу добавить только то, что у процесса есть таймаут завершения. С этим встречался почти каждый с одним из приложений. Например когда в Windows закрываете программу, после чего вылетает табличка о том что приложение не отвечает и предлагает его принудительно завершить. sa-mp работает точно также... OnGameModeExit() срабатывает когда процессу поступил сигнал, о том, что ему нужно завершится (это происходит к примеру когда мы нажимаем на крестик консоли). После чего процесс не отвечает системе до тех пор, пока OnGameModeExit не дойдёт до конца (return).
Именно поэтому по возможности следует сначала сохранять все данные а затем завершать процесс. /rcon exit стоит исключить, но можно реализовать собственный /rcon close, который бы сначала сохранял данные затем вызывал exit в rcon. (Тоже самое касается и gmx).
[1337GAMES] Easy RP (SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)
Jabber: airkite@qip.ru [Addon] QuickBinder [FS] Online Players Record
|
| |
|
|