28.09.2014, 13:09
Пробовал 2.7.0, 2.7.4 - везде объекты пропадают, пробовал даже tickRate на 700 выставить вместо 1500. Похоже проблема в стримере. А с tickRate 150 просто не заметно когда они пропадают, ибо быстро стримятся обратно
Странно, у меня даже на 1500 все хорошо, в разных точках карты.
А какая дистанция стрима? На сколько приближаешься? И пропадают совсем, или на время (пока двигаешься на той позиции где пропало)? |
Всем привет!
Обнаружена проблема в паблике OnPlayerDisconnect. Паблик порой обрабатывается позже чем игрок вышел (особенно если он некорректно завершил игру). Соответственно в таких случаях функция GetPlayerMoney возвращает нулевое значение, так игрока уже по факту на сервере нет. Так же наблюдается и другая аномалия: если использовать в OnplayerDisconnect функцию GetPlayerName, то у некоторых игроков она возвращает ник который уже полчаса назад как покинул сервер. Вот пример: В OnPlayerConnect вызываем функцию GetPlayerName и записываем ее значение в переменную, затем вызываем функцию GetPlayerName в OnPlayerDisconnect и порой она возвращает совершенно другой ник, хотя в течении игры ник игроку никто не менял. И если это сучилось, то данная функция возвращает этот же ник еще полчаса у игроков которые дисконнектятся, тоесть складывается впечатление что данный ник висит в памяти сервера и повторный вызов функции GetPlayerName в OnPlayerDisconnect не получает ник игрока и берет его и этой памяти . |
new test = 0;
new test1 = 1;
if(test || test1 == 1) SCM(i,-1,"WORK");
//if(test == 1 || test1 == 1) SCM(i,-1,"WORK");
new test = 1;
new test1 = 1;
if(test && test1 == 1) SCM(i,-1,"WORK");
//if(test == 1 && test1 == 1) SCM(i,-1,"WORK");
if(test) { }
Проверка вида вернёт 0 только если переменная равна нулю. В остальных случаях, даже при отрицательных значениях, будет возвращена 1.
|
new test[4]; if (test[0] || test[1] || test[2] || test[3]) //false new test = 0; if (test) //false new test; if (test) //false
Сказочник!
Код:
new test[4]; if (test[0] || test[1] || test[2] || test[3]) //false new test = 0; if (test) //false new test; if (test) //false |
new test[4]; if(test) // true test = "0"; if(test) // true
А вот из строки "" во всех случаях возвращается true. |