Re: Скриптинг курилка -
OstGot - 20.03.2015
Quote:
Originally Posted by cm666
case 1...100000
есть чтото подобное ?
|
Даже если есть, тут дело не в производительности компьютера, он то и "1...1000000" я думаю скомпилирует, тут ошибка в другом, как мне кажется.
Тем более сама инклуда компилируется, а подключенная к скрипту (любому) - нет.
Quote:
Originally Posted by stabker
Пропущенная скобка, длинный макрос.
|
Ничего из этого, все скобки проверил лично, каждую
Макрос только один использую, он - короче некуда)
Вобщем придётся по-частям отбрасывать разные участки кода, чтобы найти неработающий..
Re: Скриптинг курилка -
ZiGGi - 20.03.2015
Quote:
Originally Posted by OstGot
Кто-нибудь знает основные причины зависания pawno во время компиляции? (не вылета, именно зависания).
Я уже второй день ломаю голову из-за чего это могло произойти, и уже выяснил, что проблема именно в моём коде. Самое интересное то, что проблемный код у меня в инклуде. Компилирую её саму - вообще проблем нет. Подключаю к любому скрипту и компилирую его - зависание. Код изменял много и по мелочи, так что найти проблемное место очень проблематично.. Любые мысли, пожалуйста.
|
Можешь попробовать компилятор от Zeex (
https://github.com/Zeex/pawn), там какие-то крэши исправлены.
Или ознакомься с этим:
https://sampforum.blast.hk/showthread.php?tid=355877
Re: Скриптинг курилка -
SoNikMells - 20.03.2015
Quote:
Originally Posted by cm666
case 1...100000
есть чтото подобное ?
|
Где то очень длинная строка, возможно текстовая или подряд много перечислений массивов.
К примеру
pawn Код:
SetPlayerRaceCP(playerid, 1, MotoCheckpoint_2[GetLoad2(playerid)][0], MotoCheckpoint_2[GetLoad2(playerid)][1], MotoCheckpoint_2[GetLoad2(playerid)][2], MotoCheckpoint_2[GetLoad2(playerid)][0], MotoCheckpoint_2[GetLoad2(playerid)][1], MotoCheckpoint_2[GetLoad2(playerid)][2], 5)
+ это макрос
Re: Скриптинг курилка -
OKStyle - 21.03.2015
Может, просто стоит подождать, пока отвиснет? Тяжёлые моды обычно долго компилируются.
Re: Скриптинг курилка -
OstGot - 21.03.2015
Quote:
Originally Posted by OKStyle
Может, просто стоит подождать, пока отвиснет? Тяжёлые моды обычно долго компилируются.
|
Нет) У меня мой скрипт 3к строк, мод пустой (для теста). Любые другие моды, в десятки раз большие, компилировались гораздо быстрее.
Quote:
Originally Posted by ZiGGi
|
Пробовал, результат тот-же
..Вобщем, я заметил, что зависания происходят из-за перехватов callback'ов (Hook Method 7). И опять-же, странно то, что только callback'ов. То есть обычные функции у меня тоже перехватываются, однако из-за них не вылетает. Пробовал убрать конечные паблики именно в скрипте, к которому подключаю проблемную инклуду - не помогло. Буду думать дальше.
Re: Скриптинг курилка -
Richard_Gere - 21.03.2015
Quote:
Originally Posted by OstGot
Кто-нибудь знает основные причины зависания pawno во время компиляции? (не вылета, именно зависания).
Я уже второй день ломаю голову из-за чего это могло произойти, и уже выяснил, что проблема именно в моём коде. Самое интересное то, что проблемный код у меня в инклуде. Компилирую её саму - вообще проблем нет. Подключаю к любому скрипту и компилирую его - зависание. Код изменял много и по мелочи, так что найти проблемное место очень проблематично.. Любые мысли, пожалуйста.
|
Вставь "#error 1" и постепенно опускай в коде до зависания, так и найдешь строку где зависает. Всегда так делаю )
Re: Скриптинг курилка -
OstGot - 21.03.2015
Quote:
Originally Posted by Richard_Gere
Вставь "#error 1" и постепенно опускай в коде до зависания, так и найдешь строку где зависает. Всегда так делаю )
|
Так дело в том, что нашёл уже)
Лично я комментировал сначала все функции вообще, потом только автовызываемые, проблема в них -> потом выяснил где именно, это строчки:
pawn Код:
#if defined my_OnGameModeInit
Пробовал вырезать их просто на чистую инклуду и мод, всё работает -_-
Проблема вроде ясна, а вроде нет
Re: Скриптинг курилка -
Urukhay - 22.03.2015
Если на момент рестарта сервера (когда пришло время вызывать команду rcon gmx) не завершились все запросы с сохранением в базу MySQL, рестарт оттягивается и сервер ждёт пока плагин выполнит все запросы?
Re: Скриптинг курилка -
eXtAbLE - 22.03.2015
Почему когда выключаю samp-server.exe данные не сохраняются,а когда вызываю GameModeExit через команду,то сохраняется,в OnGameModeExit сохранение всего есть.
Re: Скриптинг курилка -
Stepashka - 22.03.2015
Quote:
Originally Posted by Urukhay
Если на момент рестарта сервера (когда пришло время вызывать команду rcon gmx) не завершились все запросы с сохранением в базу MySQL, рестарт оттягивается и сервер ждёт пока плагин выполнит все запросы?
|
Не должен ждать. Но можешь проверить.
Quote:
Originally Posted by eXtAbLE
Почему когда выключаю samp-server.exe данные не сохраняются,а когда вызываю GameModeExit через команду,то сохраняется,в OnGameModeExit сохранение всего есть.
|
Если выключаешь через завершение процесса, то это нормальна логика. Если хочешь что бы вызывался
OnGameModeExit нужно вызывать консольную команду
exit.
Re: Скриптинг курилка -
eXtAbLE - 22.03.2015
Если допустим я запускаю сервер на компьютере( я так не делаю,просто допустим ) ,и у меня выключается свет,получается что вся инфа слетит и в базу ничего не сохранится,можно это предотвратить?
Re: Скриптинг курилка -
Romz - 22.03.2015
Quote:
Originally Posted by eXtAbLE
Если допустим я запускаю сервер на компьютере( я так не делаю,просто допустим ) ,и у меня выключается свет,получается что вся инфа слетит и в базу ничего не сохранится,можно это предотвратить?
|
если выключится свет то вы явно не как не сможете сохранить данные которые не успели сохранится.
Re: Скриптинг курилка -
Stepashka - 22.03.2015
Quote:
Originally Posted by eXtAbLE
Если допустим я запускаю сервер на компьютере( я так не делаю,просто допустим ) ,и у меня выключается свет,получается что вся инфа слетит и в базу ничего не сохранится,можно это предотвратить?
|
Додуматься самостоятельно до сохранения данных в момент изменения или периодически серого вещества не хватает?
Re: Скриптинг курилка -
eXtAbLE - 22.03.2015
Если бы я сам мог скорее всего сюда бы не писал,и вообще не шарю о чем ты сейчас говоришь,если закрывать samp-server.exe OnGameModeExit не вызывается?
Re: Скриптинг курилка -
Stepashka - 22.03.2015
Quote:
Originally Posted by eXtAbLE
Если бы я сам мог скорее всего сюда бы не писал,и вообще не шарю о чем ты сейчас говоришь,если закрывать samp-server.exe OnGameModeExit не вызывается?
|
Ты читал что я написал?
Re: Скриптинг курилка -
stabker - 23.03.2015
delete
Re: Скриптинг курилка -
Makar93 - 23.03.2015
Quote:
Originally Posted by eXtAbLE
если закрывать samp-server.exe OnGameModeExit не вызывается?
|
Нет, не вызывается.
По сути вопроса: не существуют идеальные системы, которые могут восстановить потерянные данные или предотвратить их потерю. Тут надо ловить баланс между производительностью (например, как предложил степашка - сохранять данные при их изменении) и вероятностью потерять данные (например, сохранять раз в сутки, уверуя в то, что сервер не упадет).
Сохраняй данные например раз в полчаса/час/два часа, откат в случае форс-мажора будет незначительный.
Re: Скриптинг курилка -
Urukhay - 23.03.2015
Если в OnPlayerDisconnect вызывать функцию, которая использует ID отключившегося, то до завершения выполнения это функции на этот слот никто не подключится?
Re: Скриптинг курилка -
OstGot - 23.03.2015
Quote:
Originally Posted by Urukhay
Если в OnPlayerDisconnect вызывать функцию, которая использует ID отключившегося, то до завершения выполнения это функции на этот слот никто не подключится?
|
Нет, не должен, т.к. нет мультипоточности. Да если бы и была, то код бы выполняться вполне бы успевал.
Re: Скриптинг курилка -
Urukhay - 23.03.2015
Является ли нормальной практикой выносить создание большого количества TextDraw в инклюд?