SA-MP Forums Archive
Скриптинг курилка - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Скриптинг курилка (/showthread.php?tid=111279)



Re: Скриптинг курилка - stabker - 14.10.2017

С заморозкой это очевидно, я думал обойтись без нее. Тем более, что в функции, создающей интерьер, еще меняется погода, время, звук (это насчет извращений).


Re: Скриптинг курилка - Romz - 14.10.2017

Quote:
Originally Posted by stabker
Посмотреть сообщение
С заморозкой это очевидно, я думал обойтись без нее. Тем более, что в функции, создающей интерьер, еще меняется погода, время, звук (это насчет извращений).
Ну в R2 добавили же собственный звук для интерьеров, по этому уже не считается извращением.


Re: Скриптинг курилка - Romz - 15.10.2017

Quote:
Originally Posted by Eims
Посмотреть сообщение
А знает кто способ как заставить компилятор ругаться на все случаи несовпадения тега Float, а не подставлять функцию "float"?
Ну чтоб на что-то подобное
PHP код:
SetPlayerPos(playerid000); 
Компилятор выплюнул предупреждение о несовпадении тегов
Не нашли способ?


Re: Скриптинг курилка - Eims - 15.10.2017

Quote:
Originally Posted by Romz
Посмотреть сообщение
Не нашли способ?
Увы, нет.


Re: Скриптинг курилка - m1n1vv - 15.10.2017

SetObjectMaterialText обновляется конкретное количество раз. На это есть фикс?


Re: Скриптинг курилка - White_116 - 15.10.2017

Quote:
Originally Posted by m1n1vv
Посмотреть сообщение
SetObjectMaterialText обновляется конкретное количество раз. На это есть фикс?
Конкретнее можно описать ситуацию...


Re: Скриптинг курилка - m1n1vv - 15.10.2017

Quote:
Originally Posted by White_116
Посмотреть сообщение
Конкретнее можно описать ситуацию...
Я делаю редактор объектов. В нем можно менять цвет, текст, жирность и тд. Но после 10 изменений, SetObjectMaterialText перестает реагировать на любые изменения для того ИД объекта.


Re: Скриптинг курилка - eakwarp - 15.10.2017

Quote:
Originally Posted by m1n1vv
Посмотреть сообщение
Я делаю редактор объектов. В нем можно менять цвет, текст, жирность и тд. Но после 10 изменений, SetObjectMaterialText перестает реагировать на любые изменения для того ИД объекта.
Пересоздать?


Re: Скриптинг курилка - m1n1vv - 15.10.2017

Quote:
Originally Posted by eakwarp
Посмотреть сообщение
Пересоздать?
Пересоздание не помогает. Оно же к иду привязывается. Нашел такой выход с ситуации. После 10-й правки отправлять объект в центр карты, а в сцене создавать новый. Таким образом 10 000 возможностей изменить.


Re: Скриптинг курилка - OstGot - 15.10.2017

Quote:
Originally Posted by m1n1vv
Посмотреть сообщение
SetObjectMaterialText обновляется конкретное количество раз. На это есть фикс?
Попробуй использовать стримерские объекты. И если уже на них этот баг останется, то можно попробовать поиграть с функциями Streamer_SetIntData/Streamer_SetFloatData/Streamer_Update, чтобы он их после ретекстура как-то обновлял без изменения их ида.


Re: Скриптинг курилка - m1n1vv - 15.10.2017

Quote:
Originally Posted by OstGot
Посмотреть сообщение
Попробуй использовать стримерские объекты. И если уже на них этот баг останется, то можно попробовать поиграть с функциями Streamer_SetIntData/Streamer_SetFloatData/Streamer_Update, чтобы он их после ретекстура как-то обновлял без изменения их ида.
Про это я знаю. У себя в проекте использую. А я хочу собрать конструктор объектов без использования всяких плагинов.


Re: Скриптинг курилка - Eims - 16.10.2017

Продолжение вот этой темы:

Quote:
Originally Posted by Eims
Посмотреть сообщение
Есть кривой мод (предположительно паблик), на котором периодически перестаёт синхронизировать игрока с сервером: все игроки в зоне стрима встают в афк, а объекты за зоной стрима просто не создаются. Все команды, завязанные на действиях с другими игроками (например, слежка за игроком) так же отказываются работать. Работает только чат (игрок получает сообщения от других и сам может их писать). И так до релога (хоть даже собейтом сделать быстрый релог), после чего всё опять нормально.
Какую-то последовательность отловить не смог, собственно, поэтому обращаюсь к вам. Знает ли кто с чем это может быть связано?

P.S. OnPlayerUpdate всегда возвращает 1.
Собрал ряд скринов со статистикой сети при рассинхроне, но я особо никогда в это не вникал, поэтому не могу даже представить, есть ли в этих данных что-то полезное по моей теме.
Шарящим людям просьба заглянуть в скрины
https://i.imgur.com/n04MEsx.png

https://i.imgur.com/4S65Yjm.png

https://i.imgur.com/JdpspRp.png

https://i.imgur.com/RXl5qb8.png

https://i.imgur.com/SoN1oRJ.png

https://i.imgur.com/vy8pmGi.png


Re: Скриптинг курилка - Romz - 17.10.2017

Quote:
Originally Posted by Eims
Посмотреть сообщение
Есть кривой мод (предположительно паблик), на котором периодически перестаёт синхронизировать игрока с сервером: все игроки в зоне стрима встают в афк, а объекты за зоной стрима просто не создаются. Все команды, завязанные на действиях с другими игроками (например, слежка за игроком) так же отказываются работать. Работает только чат (игрок получает сообщения от других и сам может их писать). И так до релога (хоть даже собейтом сделать быстрый релог), после чего всё опять нормально.
Какую-то последовательность отловить не смог, собственно, поэтому обращаюсь к вам. Знает ли кто с чем это может быть связано?

P.S. OnPlayerUpdate всегда возвращает 1.
У меня раньше было такое, проблема была в хостинге. Но помимо такого лага иногда еще происходили дикие фризы (не всегда).
Сменил хост - проблема исчезла.


Re: Скриптинг курилка - Eims - 17.10.2017

Хостинг, если что, ruhoster. Было у кого такое там?


Re: Скриптинг курилка - Romz - 17.10.2017

Quote:
Originally Posted by Eims
Посмотреть сообщение
Хостинг, если что, ruhoster. Было у кого такое там?
у меня было такое на игрохосте, сейчас тоже использую рухостер и вроде такого не замечал.


Re: Скриптинг курилка - White_116 - 17.10.2017

Видно потери пакетов у клиента, так же количество созданных объектов 999, предположительно не верно настроен стриммер, либо идёт утечка в амх коде. Думаю причина в потере пакетов, стоит выяснить в какой момент это происходит и как сильно нагружения сервер.


Re: Скриптинг курилка - Romz - 17.10.2017

Всем привет. Посоветуйте, как лучше избавиться от предупреждения:
Код:
sscanf warning: String buffer overflow.
Собственно код самой команды:
Код:
COMMAND:kick(playerid, params[]) {
	new userid, reason[16];
	if(sscanf(params, "rs[16]", userid, reason)) {
		SCM(playerid, -1, "/kick [игрок] [причина]");
		return 1;
	}
	// Остальной код
	return 1;
}
Если я например ввожу причину которая длинней 16 символов, выскакивает предупреждение в логи сервера.
Я понимаю конечно что можно увеличить массив reason, но зачем мне он очень длинный если я все равно не планирую использовать причину длинней 16 символов?


Re: Скриптинг курилка - Eims - 17.10.2017

Как вариант
PHP код:
COMMAND:kick(playeridparams[]) {
    new 
userid;
    if(
sscanf(params"rs[128]"useridparams)) {
        
SCM(playerid, -1"/kick [игрок] [причина]");
        return 
1;
    }
    if(
strlen(params) > 16)
        ...
    
// Остальной код
    
return 1;

Хотя никогда не понимал зачем делать какие-то ограничения в подобных случаях


Quote:
Originally Posted by White_116
Посмотреть сообщение
Видно потери пакетов у клиента, так же количество созданных объектов 999, предположительно не верно настроен стриммер, либо идёт утечка в амх коде. Думаю причина в потере пакетов, стоит выяснить в какой момент это происходит и как сильно нагружения сервер.
Хорошо, спасибо. Значит дело именно в кривом моде (при онлайне в 150 грузит процессор на 100%). Я просто думал узнать, вдруг у подобных рассинхронов есть какая-то конкретная причина в виде конкретного кода, а не просто нагрузка.


Re: Скриптинг курилка - Romz - 17.10.2017

Quote:
Originally Posted by Eims
Посмотреть сообщение
Хотя никогда не понимал зачем делать какие-то ограничения в подобных случаях
Весь текст который я планирую писать в SendClientMessage + очень длинная причина просто не поместится в 144 символа, по этому и нужно ограничение на длину.


Re: Скриптинг курилка - Eims - 17.10.2017

Quote:
Originally Posted by Romz
Посмотреть сообщение
Весь текст который я планирую писать в SendClientMessage + очень длинная причина просто не поместится в 144 символа, по этому и нужно ограничение на длину.
Реализовать перенос на следующую строку?
Это не так уж и сложно делается, но, при этом, админам не нужно будет страдать, если вдруг они решат развернуто написать причину, а им не даст.
У сампа и так уже есть ограничение в 128 символов для окна чата. Зачем придумывать ещё что-то?