Типы переменных
| |
Vitaminoz
|
Дата: Понедельник, 24.02.2014, 21:14:53 | Сообщение # 16 |
 |
Сообщений: 142
Репутация: 1 [ +/- ]
|
|
Прошу прощения не совсем верно сформулировал. Запрос кидаю в глобальные функции.
|
|
| |
Valeriks
|
Дата: Пятница, 01.08.2014, 21:57:22 | Сообщение # 17 |
 |
Сообщений: 100
Репутация: 3 [ +/- ]
|
|
Подскажите пожалуйста, если мы делаем Код new bool:Player[MAXPLAYERS+1]; то это для каждого игрока будут хранится значения true|false ? И вообще, можно использовать [MAXPLAYERS+1] для bool ?
|
|
| |
horr0r
|
Дата: Пятница, 01.08.2014, 22:06:49 | Сообщение # 18 |
 |
Сообщений: 149
Репутация: 40 [ +/- ]
|
|
Valeriks, да. Можно. И это будет "как-бы" для каждого игрока. А без "как-бы", это будет для каждой ячейки массива.
Сообщение отредактировал horr0r - Пятница, 01.08.2014, 22:07:45 |
|
| |
Valeriks
|
Дата: Пятница, 01.08.2014, 22:08:31 | Сообщение # 19 |
 |
Сообщений: 100
Репутация: 3 [ +/- ]
|
|
Цитата horr0r (  ) да. Можно. Благодарю.
|
|
| |
www22
|
Дата: Вторник, 16.10.2018, 09:02:47 | Сообщение # 20 |
 |
Сообщений: 84
Репутация: -1 [ +/- ]
|
|
Что то голову сломал , как сделать : вообщем у меня есть 2 целых числа, после деления 1 на 2 , конечно же может получится число с остатком . Но мне надо опять получить его целым . Вот как быть , что то никак не пойму .. Цитата [float rnum,knum,dnum; knum=GetEventInt(event, "attacker"); dnum=GetEventInt(event, "victim"); rnum=RoundFloat(knum/dnum); snum=knum/dnum; PrintToChatAll("\x04RatioKillsDeaths = %f - %d",rnum,snum); Да и вот такой вопрос - выделили красным - такие операции внутри функции вообще возможен в sourcemod(pawn). Или отдельно нужно делать ? P.s. это типа мини статистики фрагов/смертей за раунд/карту.Добавлено (16.10.2018, 09:15:01) --------------------------------------------- да и еще вопрос с этими числами - Float , которые используют для чисел с плавающей точкой (небольших). К примеру в условии , какое число писать с точкой или можно и без . К примере мне надо сравнить число "3" с полученным результатом . Вот число 3 , как писать 3.0 или можно просто "3" ?
Сообщение отредактировал www22 - Вторник, 16.10.2018, 09:09:52 |
|
| |
_wS_
|
Дата: Вторник, 16.10.2018, 09:45:01 | Сообщение # 21 |
|
Цитата www22 (  ) Вот число 3 , как писать 3.0 или можно просто "3" ? При сравнении двух переменных у них должен быть одинаковый тип (не только сравнении, а если складываешь их и тд, любые операции). Так точно должно работать:
Код new knum = GetEventInt(event, "attacker"); new dnum = GetEventInt(event, "victim"); new Float:rnum = dnum > 0 ? RoundFloat(float(knum) / float(dnum)) : 0.0; snum = dnum > 0 ? (knum / dnum) : 0; PrintToChatAll("\x04RatioKillsDeaths = %.1f - %d", rnum, snum); Учитывай что на 0 делить нельзя, а то ошибка будет.
|
|
| |
www22
|
Дата: Вторник, 16.10.2018, 10:42:44 | Сообщение # 22 |
 |
Сообщений: 84
Репутация: -1 [ +/- ]
|
|
Цитата _wS_ (  ) При сравнении двух переменных у них должен быть одинаковый тип То есть и записывать их надо так же , по тому типу который объявлен ?! Я правильно понимаю ?! То есть если число float = 3.0 если int = 3 в условии . Просто если написать "3" для сравнения float , он это учтет ?!
Цитата _wS_ (  ) Учитывай что на 0 делить нельзя, а то ошибка будет. это я знаю , вот только когда прибавлял 1 к числу когда целые были числа выводилась , useid=0 , почему ..
|
|
| |
_wS_
|
Дата: Вторник, 16.10.2018, 11:01:40 | Сообщение # 23 |
|
Тебе тяжело самому всё это проверить? Я увидел что можно смешивать переменные разных типов, получается можно, но во избежание ошибок я всегда приравниваю типы.
Код public OnPluginStart() { new x = 1; new Float:y = 1.0; PrintToServer("%d == %f (%s)", x, y, x == y ? "yes" : "no"); y = 1.01; PrintToServer("%d == %f (%s)", x, y, x == y ? "yes" : "no"); x = 5; y = 2.5; PrintToServer("%d / %f = %f", x, y, x / y); PrintToServer("%f / %f = %f", float(x), y, float(x) / y); }
Цитата ] sm plugins reload b 1 == 1.000000 (yes) 1 == 1.009999 (no) 5 / 2.500000 = 2.000000 5.000000 / 2.500000 = 2.000000
|
|
| |
www22
|
Дата: Вторник, 16.10.2018, 11:34:26 | Сообщение # 24 |
 |
Сообщений: 84
Репутация: -1 [ +/- ]
|
|
_wS_, да мне еще сложно что то написать самому .. вон и так даже с этими переменными тут попал .. А почему спросил , я думал ты знаешь , ты же уже давно в скриптинге , вдруг сам сталкивался .. Вот и спросил.. Спасибо !!!
Сообщение отредактировал www22 - Вторник, 16.10.2018, 11:51:56 |
|
| |
_wS_
|
Дата: Вторник, 16.10.2018, 12:51:26 | Сообщение # 25 |
|
|
|
| |
www22
|
Дата: Вторник, 16.10.2018, 17:37:31 | Сообщение # 26 |
 |
Сообщений: 84
Репутация: -1 [ +/- ]
|
|
_wS_, блин вот я замарочился с этим Float , можно же было проще сделать , через целое число, типа такого Цитата _wS_ (  ) new dnum = GetEventInt(event, "victim") *3(коэфф); И потом уже сравнивать - стареем похоже уже :)))
Сообщение отредактировал www22 - Вторник, 16.10.2018, 17:38:28 |
|
| |
|