• Регистрация на форуме отключена.
    Она будет открываться первого числа каждого месяца на 24 часа.
Иконка ресурса

Furrien Mod 2.1

Нет прав для скачивания

w0w

Сообщения
1.150
Реакции
2.259
Помог
50 раз(а)
w0w, пруфы? Я лично сомневаюсь в такой реализации.

Оператор ИЛИ возвращает истину, если хотя бы одно из условий истина. Если представить это математически (логическим сложением, разумеется), то хотя бы одна 1 (как истина) в сумме с любыми другими операндами уже даст 1 в любом случае.
С логическим умножением всё также - при умножении если хоть один операнд будет иметь 0 (ложь), то результатом будет 0, ведь любое число умножить на 0 - будет 0.

Такая реализация математически обоснована хотя бы.
Ну а я о чём говорю? Если хоть 1 совпадёт то выполнится условие. Соответственно, если у нас первое условие true то и код выполняется и дальше по условиям не будет идти, ибо уже совпало 1.
 
Сообщения
17
Реакции
7
w0w, так проблема в том, что все условия будут проверены тогда. А если их проверять поочередно, то предыдущее отсекает следующее.

В этом случае проверятся все условия в любом случае без исключения и всегда:
C++:
if(!is_user_connected(iAttacker) || g_bIsFurrien[iAttacker] || iVictim == iAttacker)
    return;
А в этом нет:
C++:
if(!is_user_connected(iAttacker))
    return;

if(g_bIsFurrien[iAttacker])
    return;

if(iVictim == iAttacker)
    return;
То есть если ID=iAttacker не приконнекшен, то выполнение кода будет далее прекращено. Со вторым условием также.
То есть в каких-то моментах это дает оптимизацию.
 
Сообщения
350
Реакции
309
Помог
12 раз(а)
В этом случае проверятся все условия в любом случае без исключения и всегда:
Это ведь легко проверить: сделайте условия из трех функций, которые будут что-нибудь писать в консоль и возвращать true/false и посмотрите
 

w0w

Сообщения
1.150
Реакции
2.259
Помог
50 раз(а)
И правда, получается что всё же проверяет все, печально конечно, думал не проверяет следующие условия если совпало одно условие.
 
Сообщения
17
Реакции
7
voed, Код:
C++:
#include <amxmodx>

new g_iValue[3];

public plugin_init()
{
    if((g_iValue[0] = 1) || (g_iValue[1] = 0) || (g_iValue[2] = 1)) {}
  
    server_print("%i | %i | %i", g_iValue[0], g_iValue[1], g_iValue[2]);
}
123.png

Всё-таки да, оба варианта работают одинаково.
13 Мар 2019
Второе условие сразу же вызвало прекращение дальнейшей проверки третьего условия, соответственно, единица не присвоилась третьему элементу массива, всё визуально видно на скрине.

P.S Аналогия с математическим представлением здесь не работает.
 
Сообщения
189
Реакции
53
Помог
9 раз(а)
У кого нибудь стоит данный мод? Работает стабильно?
 
Сообщения
47
Реакции
6
Помог
1 раз(а)
r1nk0, да стоит работает на ура!)
 
Сообщения
29
Реакции
16
Предупреждения
5
Интересно, этот мод был доделан в полной мере, или так и остался сырым?
 
Сообщения
17
Реакции
7
KRYSIS, перестал быть "сырым" с приходом версии 2.1.
 

Пользователи, просматривающие эту тему

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