Скриптинг курилка

Quote:
Originally Posted by eakwarp
Посмотреть сообщение
Нет.
Имеется ввиду использование больших интервалов в case X..Y.
Ибо конструкция switch case в павно, является if based, и в итоге, использование больших интервалов тут работает как проверка каждого числа через if по отдельности. В данном случае гораздо уместнее использовать if(n>=x&&n<=y)
ммм размер amx сразу упал в раз 10
Reply

Quote:
Originally Posted by Stepashka
Посмотреть сообщение
OnFilterScriptInit везде заканчивается на return 1;?
Да, везде. Правда, в одном месте обнаружил полное отсутствие OnFilterScriptInit(). Не уверен, что дело в этом. Вообще сервер стал вести себя как девушка, чесс слово - то нормально грузит все скрипты, то последний не догружает.
Один из amx > 7МБ - это нормально? Или стоит призадуматься?
Сразу скажу, не я автор, т.ч. о содержимом известно мало
Reply

я вон как то ФС подключал, запускаю, он их просто не видит ...
поменял все exe шники заработало нормлаьно
хотя не где и не ковырялся
Reply

Кто знает, какой именно баг в ZCMD, который ложит сервер вроде? пустая строка и символ / в команде или еще что то есть?
Reply

Quote:
Originally Posted by Jon_De
Посмотреть сообщение
Кто знает, какой именно баг в ZCMD, который ложит сервер вроде? пустая строка и символ / в команде или еще что то есть?
Нет такого.
Reply

Quote:
Originally Posted by Jon_De
Посмотреть сообщение
Кто знает, какой именно баг в ZCMD, который ложит сервер вроде? пустая строка и символ / в команде или еще что то есть?
на 0.3x фиксанули, можно не волноваться

Quote:
Originally Posted by eakwarp
Посмотреть сообщение
Нет такого.
ошибаетесь, ну, по крайней мере было
Reply

Quote:
Originally Posted by Fireline
Посмотреть сообщение
на 0.3x фиксанули, можно не волноваться
Да я другой командный обработчик нашел (он побыстрее к тому же) + допилил немного. Кстати вопрос
CallLocalFunction(st, "ds", playerid, params); // можно ли вызывать, если params может быть пустой? на винде нормально всё, на линукс сервере сейчас не проверить
Reply

Quote:
Originally Posted by Jon_De
Посмотреть сообщение
Да я другой командный обработчик нашел (он побыстрее к тому же) + допилил немного. Кстати вопрос
CallLocalFunction(st, "ds", playerid, params); // можно ли вызывать, если params может быть пустой? на винде нормально всё, на линукс сервере сейчас не проверить
Нельзя.
Reply

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

Quote:
Originally Posted by eakwarp
Посмотреть сообщение
Никто не задумывался о том, как из памяти сервера выдернуть момент синхронизации тех же светофоров? По идее, все светофоры работают в трех режимах, всем красный, зеленый в одну сторону, зеленый в другую.
так синхронизацию светофоров вроде как не делали?
Reply

Quote:
Originally Posted by AirKite
Посмотреть сообщение
Alex009 обещал тысячу лет назад. Так и не вышло ничего у него...
Он забил на это дело по своему обыкновению )
Reply

уже не нужно*
Reply

Друзья, столкнулся с проблемой, когда SetObjectMaterial не работает на слой 16. У всех так? Или только у меня и на объекте 16323? Там 26 слоёв.
Reply

Quote:
Originally Posted by eakwarp
Посмотреть сообщение
Он забил на это дело по своему обыкновению )
Ну на тот момент когда он ещё не забил на разработку плагинов, он активно искал способы. За что то даже зацепился и анонсировал выход функций в одном из его плагинов. Ну а после уже по всей видимости стало ясно, что не удачно выйдет, вот и забил. Хотя конечно есть вероятность существования приемлемого решения...
Reply

Как будет целесообразней?

pawn Код:
new str[32], msg[128];
for(new i; i < sizeof(someArray); i++) {
    format(str, sizeof(str), "%s {77ff00}%s\n", someArray[i][Test], someArray[i][Test2]);
    strcat(msg, str);
}
или
pawn Код:
new msg[128];
for(new i; i < sizeof(someArray); i++) {
    format(msg, sizeof(msg), "%s%s {77ff00}%s\n", msg, someArray[i][Test], someArray[i][Test2]);
}
Сам я склонен к первому варианту.
Reply

Quote:
Originally Posted by GameMan
Посмотреть сообщение
Как будет целесообразней?

pawn Код:
new str[32], msg[128];
for(new i; i < sizeof(someArray); i++) {
    format(str, sizeof(str), "%s {77ff00}%s\n", someArray[i][Test], someArray[i][Test2]);
    strcat(msg, str);
}
или
pawn Код:
new msg[128];
for(new i; i < sizeof(someArray); i++) {
    format(msg, sizeof(msg), "%s%s {77ff00}%s\n", msg, someArray[i][Test], someArray[i][Test2]);
}
Сам я склонен к первому варианту.
Логичнее использовать второй вариант, так как раз ты всё-равно используешь format.

Но ещё можно проверить на быстродействие этот вариант:
pawn Код:
new msg[128];
for (new i; i < sizeof(someArray); i++) {
    strcat(msg, someArray[i][Test]);
    strcat(msg, " {77ff00}");
    strcat(msg, someArray[i][Test2]);
    strcat(msg, "\n");
}
Reply

Каким образом можно поправить такую несостыковочку?

В коде:
PHP код:
SendClientMessage(playerid,-1," "),
SendClientMessage(playerid,-1," ==== "),
SendClientMessage(playerid,-1," message "),
SendClientMessage(playerid,-1," ==== "),
SendClientMessage(playerid,-1," "); 
А на выходе вот так:
Код:
 ====

 ====
 message
Причем порядок строк на выходе меняется сам, иногда даже выходит правильно. Такая штука возникает только на хосте (lin), на локале (win) все впорядке.
Reply

Quote:
Originally Posted by Frapsy
Посмотреть сообщение
Каким образом можно поправить такую несостыковочку?

В коде:
PHP код:
SendClientMessage(playerid,-1," "),
SendClientMessage(playerid,-1," ==== "),
SendClientMessage(playerid,-1," message "),
SendClientMessage(playerid,-1," ==== "),
SendClientMessage(playerid,-1," "); 
А на выходе вот так:
Код:
 ====

 ====
 message
Причем порядок строк на выходе меняется сам, иногда даже выходит правильно. Такая штука возникает только на хосте (lin), на локале (win) все впорядке.
Увеличить скорость передачи данных, оптимизировать код. Другими словами: снизить задержку. Мэссэджи не приходят в нужном порядке потому что часть из них не успевает дойти от сервера к клиенту.
Reply

Quote:
Originally Posted by ZiGGi
Посмотреть сообщение
Логичнее использовать второй вариант, так как раз ты всё-равно используешь format.

Но ещё можно проверить на быстродействие этот вариант:
pawn Код:
new msg[128];
for (new i; i < sizeof(someArray); i++) {
    strcat(msg, someArray[i][Test]);
    strcat(msg, " {77ff00}");
    strcat(msg, someArray[i][Test2]);
    strcat(msg, "\n");
}
Сделал тест на 1000 итераций.
Код:
1 variant - 67 ticks
2 variant - 86 ticks
ZiGGi variant - 74 ticks
Как ни странно, но по скорости победил вот этот код:
pawn Код:
new str[32], msg[128];
for(new i; i < sizeof(someArray); i++) {
    format(str, sizeof(str), "%s {77ff00}%s\n", someArray[i][Test], someArray[i][Test2]);
    strcat(msg, str);
}
Reply

Quote:
Originally Posted by GameMan
Посмотреть сообщение
Сделал тест на 1000 итераций.
Код:
1 variant - 67 ticks
2 variant - 86 ticks
ZiGGi variant - 74 ticks
Как ни странно, но по скорости победил вот этот код:
pawn Код:
new str[32], msg[128];
for(new i; i < sizeof(someArray); i++) {
    format(str, sizeof(str), "%s {77ff00}%s\n", someArray[i][Test], someArray[i][Test2]);
    strcat(msg, str);
}
Не удивлен, strcat внутри пробегается по всей строке, находит её конец, вставляет туда вторую строку.
А теперь представьте что ZiGGi вызывает данную функцию, в цикле, четыре раза и каждый раз исходная строка длиннее предыдущей.
Предположим что someArray размером 3 строки, а длина каждой вставки 8 символов имеем(сколько символов каждый раз пропускается):
Код:
0-8-17-25
26-34-43-51
52-60-69-77
И это мы только 3 строки отформатировали. Так что с ростом строки strcat замедляет работу в геометрической прогрессии!


ЗЫ а можно узнать размер вашего someArray, а то у меня при его размере в 5 строк, результаты скорости смехотворны.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)