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: Скриптинг курилка - Stepashka - 20.02.2017

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
Дело не в эстетике, а логике. Код, не поддающийся логике - говнокод...
Да нет, сейчас вы просто называете всех кто делает не так как вы говнокодерами. А все левши криворукие.
Не надо быть таким предвзятым.

Например в языках где используется приведение типов это полезная практика, потому что тип второго аргумента приводится к типу первого.


Re: Коллекция функций / макросов - Mcc - 20.02.2017

пробовал jit на своем сирвири на линукс. безрезультатно, хотя на своем компе, результат был, и неплохой.


Re: Коллекция функций / макросов - Richard_Gere - 20.02.2017

PHP код:
new somearray[512];
native memset_plugin(array[], valuesize sizeof(array));
main() 
{
    new 
tick GetTickCount(); 
    for(new 
x10000000x++) 
    { 
        
fill_array(somearray, -1sizeof somearray); 
    }
    
printf("fill_array: %d ms"GetTickCount() - tick); 
    
tick GetTickCount(); 
    for(new 
x10000000x++) 
    { 
        for(new 
isizeof somearrayi++) 
        { 
            
somearray[i] = -1
        } 
    }
    
printf("loop: %d ms"GetTickCount() - tick); 
    
tick GetTickCount(); 
    for(new 
x10000000x++) 
    { 
        
memset(somearray0);
    }
    
printf("memset: %d ms"GetTickCount() - tick); 
    
tick GetTickCount(); 
    for(new 
x10000000x++) 
    { 
        
memset_plugin(somearray0);
    }
    
printf("memset_plugin: %d ms"GetTickCount() - tick); 

Windows:
с JIT:
fill_array: 1585 ms
memset: 940 ms
memset (c++, std::fill): 3507 ms
ну а если использовать чисто чтобы нулями залить то можно и memset
memset (c++, memset): 907 ms

без JIT:
fill_array: 5524 ms
memset: 11118 ms
memset (c++, std::fill): 5264 ms
memset (c++, memset): 1345 ms

Linux:
с JIT:
fill_array: 2401 ms
memset: 940 ms
memset (c++, std::fill): 4165 ms
memset (c++, memset): 924 ms

без JIT:
fill_array: 8607 ms
memset: 13200 ms
memset (c++, std::fill): 5372 ms
memset (c++, memset): 992 ms


Re: Скриптинг курилка - OneHitWonder - 21.02.2017

Ребят, такой вопрос. При запуске сервера ВПС делит его на 4 процесса. Кто может подсказать какой за что отвечает? Заметил что 4 процесс нагружает больше всего ЦП, остальные практически одинаково.


Re: Скриптинг курилка - OneHitWonder - 21.02.2017

Кто подскажет, что лучше?
return SendClientMessage(...);
или
SendClientMessage(...);
return 1;


Re: Скриптинг курилка - Stepashka - 21.02.2017

Quote:
Originally Posted by OneHitWonder
Посмотреть сообщение
Кто подскажет, что лучше?
return SendClientMessage(...);
или
SendClientMessage(...);
return 1;
Второй вариант. SendClientMessageвозвращает 2 значения, а это потенциальная ошибка.


Re: Скриптинг курилка - OneHitWonder - 21.02.2017

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
Второй вариант. SendClientMessageвозвращает 2 значения, а это потенциальная ошибка.
Сильно влияет? Не подскажешь на что?
Столкнулся с такой проблемой что с онлайном примерно в 350 человек сервер начинает подлагивает. Машина вроде хорошая и держать должна нормально, ЦП грузится на 70-80% по данным htop. Вроде мод оптимизирован более-менее приемлимо, таймеров жестких нет.
Есть одна проблема, коннект с базой не самый идеальный, а на сервере запросов используется прилично. Возможно ли что создается очередь и плагин так грузит сервер? Или проблему искать в моде?


Re: Скриптинг курилка - Mcc - 21.02.2017

прочитал на каком то форуме что до сих пор нет синхронизации светофоров между игроками, хотя давно был убежден в обратном. так что же в действительности?


Re: Скриптинг курилка - Stepashka - 21.02.2017

Quote:
Originally Posted by Mcc
View Post
прочитал на каком то форуме что до сих пор нет синхронизации светофоров между игроками, хотя давно был убежден в обратном. так что же в действительности?
Не читать какие-то форумы!
Внимательней читать этот форум.
Текущий статус светофоров


Re: Скриптинг курилка - Mcc - 21.02.2017

я хотел уточнить. на том форуме просто ребята играют и думают что светофоры не синхронизированны.


Re: Скриптинг курилка - OneHitWonder - 21.02.2017

Quote:
Originally Posted by OneHitWonder
View Post
Сильно влияет? Не подскажешь на что?
Столкнулся с такой проблемой что с онлайном примерно в 350 человек сервер начинает подлагивает. Машина вроде хорошая и держать должна нормально, ЦП грузится на 70-80% по данным htop. Вроде мод оптимизирован более-менее приемлимо, таймеров жестких нет.
Есть одна проблема, коннект с базой не самый идеальный, а на сервере запросов используется прилично. Возможно ли что создается очередь и плагин так грузит сервер? Или проблему искать в моде?
Помогите пожалуйста.


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

Quote:
Originally Posted by OneHitWonder
View Post
Сильно влияет? Не подскажешь на что?
Столкнулся с такой проблемой что с онлайном примерно в 350 человек сервер начинает подлагивает. Машина вроде хорошая и держать должна нормально, ЦП грузится на 70-80% по данным htop. Вроде мод оптимизирован более-менее приемлимо, таймеров жестких нет.
Есть одна проблема, коннект с базой не самый идеальный, а на сервере запросов используется прилично. Возможно ли что создается очередь и плагин так грузит сервер? Или проблему искать в моде?
Разница будет лишь тогда, когда возвращаемое значение как-то используется. Например, здесь надо было бы вернуть 1, поскольку команда найдена. Но т.к. мы берем возвращаемое значение из SCM, которое не всегда равно 1, будет вероятность, что игрок получит сообщение Server: Unknown Command.

PHP Code:
public OnPlayerCommandText(playeridcmdtext[])
{
    if(!
strcmp(cmdtext"/randommsg"true))
    {
        return 
SendClientMessage(random(MAX_PLAYERS), -1"Рандом выбрал тебя"); //вернет 0, если получатель не подключен
    
}
    return 
0;

А если возвращаемое значение больше не используется, то ни на что и не влияет.


Re: Скриптинг курилка - OneHitWonder - 21.02.2017

Получается если мне просто надо остановить действие команды(например), то я вполне могу return SendClientMessage и это будет ничем не хуже второго варианта?


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

Quote:
Originally Posted by OneHitWonder
View Post
Получается если мне просто надо остановить действие команды(например), то я вполне могу return SendClientMessage и это будет ничем не хуже второго варианта?
Если командному процессору (или чему бы то ни было другому) пофиг на возвращаемое значение (то бишь возвращаемое значение не повлияет на логику), то да, практической разницы нет, можно хоть рандом возвращать.


Re: Скриптинг курилка - ZiGGi - 21.02.2017

Quote:
Originally Posted by OneHitWonder
View Post
Сильно влияет? Не подскажешь на что?
Столкнулся с такой проблемой что с онлайном примерно в 350 человек сервер начинает подлагивает. Машина вроде хорошая и держать должна нормально, ЦП грузится на 70-80% по данным htop. Вроде мод оптимизирован более-менее приемлимо, таймеров жестких нет.
Есть одна проблема, коннект с базой не самый идеальный, а на сервере запросов используется прилично. Возможно ли что создается очередь и плагин так грузит сервер? Или проблему искать в моде?
Используй profiler плагин для нахождения самых медленных функций в скрипте.


Re: Скриптинг курилка - OneHitWonder - 22.02.2017

Вот за это от души!


Re: Скриптинг курилка - Diman777 - 22.02.2017

Хочу поставить Visual Studio 2015, нужно ли при этом сносить Visual Studio 2010?


Re: Скриптинг курилка - joker2020pro - 22.02.2017

Нет, не нужно, у меня стоит и 2010, и 2012, и 2015.


Re: Скриптинг курилка - Diman777 - 22.02.2017

Я прост имел ввиду не будет ли конфликтов между студиями, надеюсь, что установится)


Re: Скриптинг курилка - DartfoL - 22.02.2017

не будет
хотя, это же софт от майкрософт, тут всё что угодно возможно