возможно кто-то столконется с такой же проблеймой..
изначально было так
- Код: Выделить всё
new g_Admin=0
new g_Vip=0
new g_All=0
public client_putinserver(id)
{
g_All++
new iFlags = get_user_flags(id);
if (iFlags & ADMIN_BAN)
{
g_Admin++
}
if (iFlags & ADMIN_LEVEL_H)
{
g_Vip++
}
}
public client_disconnected(id)
{
g_All--
new iFlags = get_user_flags(id);
if (iFlags & ADMIN_BAN)
{
g_Admin--
}
if (iFlags & ADMIN_LEVEL_H)
{
g_Vip--
}
}
абсолютно все 3 массива "хаотично" меняли данные.
Замаенил на
- Код: Выделить всё
new g_Admin
new g_Vip
new g_All
public client_connect(id)
{
g_All++
new iFlags = get_user_flags(id);
if (iFlags & ADMIN_BAN)
{
g_Admin++
}
if (iFlags & ADMIN_LEVEL_H)
{
g_Vip++
}
}
public client_disconnected(id)
{
g_All--
new iFlags = get_user_flags(id);
if (iFlags & ADMIN_BAN)
{
g_Admin--
}
if (iFlags & ADMIN_LEVEL_H)
{
g_Vip--
}
}
игроки начали нормально засчитываться, остальное "магия".
И уже после подсказки
Mistrick, всё поменял обратно и убрал "=0" и вернул "client_putinserver"
- Код: Выделить всё
new g_Admin
new g_Vip
new g_All
public client_putinserver(id)
{
g_All++
new iFlags = get_user_flags(id);
if (iFlags & ADMIN_BAN)
{
g_Admin++
}
if (iFlags & ADMIN_LEVEL_H)
{
g_Vip++
}
}
public client_disconnected(id)
{
g_All--
new iFlags = get_user_flags(id);
if (iFlags & ADMIN_BAN)
{
g_Admin--
}
if (iFlags & ADMIN_LEVEL_H)
{
g_Vip--
}
}
Добавлено спустя 1 минуту 53 секунды:Остальное, в плане экономии и оптимизации, ничего вообще не хотел такого, просто обновился с 182 на 183 и началось это.
Так понял каким-то образом повлияло
- Код: Выделить всё
new g_Admin=0
new g_Vip=0
new g_All=0
вместо
- Код: Выделить всё
new g_Admin
new g_Vip
new g_All
Добавлено спустя 1 минуту 11 секунд:Mistrick писал(а):Dmitry Beast,
Захотел сэкономить на подсчете игроков, теперь думай как правильно их считать самому.
я вот об этом, вообще не понял в какую это кассу?
Че экономить на подсчете игроков? Зашел - плюсанул, вышел минусанул.
Добавлено спустя 2 минуты 3 секунды:И опять же нет, сейчас, только что захожу на сервер, а там уже с админами всё ок, а игроков вместо 11 пишет 5
Добавлено спустя 4 минуты 14 секунд:Итог, проблема осталась
Так показывает правильное кол-во игров
- Код: Выделить всё
new g_Admin
new g_Vip
new g_All
public client_connect(id)
{
g_All++
new iFlags = get_user_flags(id);
if (iFlags & ADMIN_BAN)
{
g_Admin++
}
if (iFlags & ADMIN_LEVEL_H)
{
g_Vip++
}
}
public client_disconnected(id)
{
g_All--
new iFlags = get_user_flags(id);
if (iFlags & ADMIN_BAN)
{
g_Admin--
}
if (iFlags & ADMIN_LEVEL_H)
{
g_Vip--
}
}
но показывает неправильное кол-во админов и вип
А так наоборот. показывает правильное кол-во вип и админов, но не правильное -кол-во игроков
- Код: Выделить всё
new g_Admin
new g_Vip
new g_All
public client_putinserver(id)
{
g_All++
new iFlags = get_user_flags(id);
if (iFlags & ADMIN_BAN)
{
g_Admin++
}
if (iFlags & ADMIN_LEVEL_H)
{
g_Vip++
}
}
public client_disconnected(id)
{
g_All--
new iFlags = get_user_flags(id);
if (iFlags & ADMIN_BAN)
{
g_Admin--
}
if (iFlags & ADMIN_LEVEL_H)
{
g_Vip--
}
}
Подскажите, пожалуйста, что за магия?!
Добавлено спустя 58 секунд:Это после обновления с 182 на 183