Re: Скриптинг курилка -
Stepashka - 17.04.2017
Quote:
Originally Posted by Kolstin
Хочу использовать так:
Код:
new Float:value = 2.8;
printf("%.1f", value); // выводит 2.7, а должно 2.8
|
Не должно, оно выводит как ему и положено 2.799999999(9).
Поищи функцию округления до определённого знака после запятой.
Re: Скриптинг курилка -
ZiGGi - 17.04.2017
Quote:
Originally Posted by Kolstin
Почему значение Float может вот так сбиваться?
Код:
2.200000
2.300000
2.400000
2.500000
2.600000
2.700000
2.799999
2.899999
2.999999
3.099999
Хочу использовать так:
Код:
new Float:value = 2.8;
printf("%.1f", value); // выводит 2.7, а должно 2.8
но по непонятным для меня причинам возникла проблема с float значениями...
|
Советую ознакомиться с особенностями работы компьютера с float числами:
https://habrahabr.ru/post/112953/
Re: Скриптинг курилка -
Mcc - 17.04.2017
Quote:
Originally Posted by Hawkins
Кто сталкивался? Актёр созданный через какое то время сходит со своих координат. Как решит беду?
|
проваливается под текстуру, скорее всего объекта созданного через стример. можно обновлять позиции актеров при стриме. лучше по таймеру.
Re: Скриптинг курилка -
Romz - 18.04.2017
Quote:
Originally Posted by ZiGGi
|
Есть какой то вариант фикса?
Re: Скриптинг курилка -
Romz - 18.04.2017
Quote:
Originally Posted by Stepashka
Не должно, оно выводит как ему и положено 2.799999999(9).
Поищи функцию округления до определённого знака после запятой.
|
В стандартных не вижу такой, можете подсказать где искать?
Re: Скриптинг курилка -
Romz - 18.04.2017
Судя по
этой теме проблему никак не решить. Если все же я не прав, и кто то знает решение то отпишитесь пожалуйста.
Re: Скриптинг курилка -
ZiGGi - 18.04.2017
Quote:
Originally Posted by Kolstin
Есть какой то вариант фикса?
|
Если нужна точность в 1 знак, то можно вообще не использовать Float числа. Напиши, что конкретно ты хочешь сделать и для чего тебе это нужно.
Re: Скриптинг курилка -
Romz - 18.04.2017
Quote:
Originally Posted by ZiGGi
Если нужна точность в 1 знак, то можно вообще не использовать Float числа. Напиши, что конкретно ты хочешь сделать и для чего тебе это нужно.
|
Например, для хранения температуры.
36.6 отображается как 36.5(99999)
Re: Скриптинг курилка -
ZiGGi - 18.04.2017
Quote:
Originally Posted by Kolstin
Например, для хранения температуры.
36.6 отображается как 36.5(99999)
|
Храни температуру как целое число - 366 и выводи с помощью чего-то подобного:
PHP код:
stock GetTemperatureString(value)
{
new string[16];
format(string, sizeof(string), "%d.%d", value / 10, value % 10);
return string;
}
Re: Скриптинг курилка -
Romz - 18.04.2017
Quote:
Originally Posted by ZiGGi
Храни температуру как целое число - 366 и выводи с помощью чего-то подобного:
PHP код:
stock GetTemperatureString(value)
{
new string[16];
format(string, sizeof(string), "%d.%d", value / 10, value % 10);
return string;
}
|
Интересный вариант, спасибо за наводку.
Re: Скриптинг курилка -
OneHitWonder - 22.04.2017
Горит очко пацаны, ранее обращался с крашем в тупорылой функции, теперь создал другую и проблема повторяется, НУ ЧЕМУ ТУТ КРАШИТЬ ТО ВООБЩЕ?!?!?
Код:
[15:55:52] [debug] Server crashed while executing tsn.amx
[15:55:52] [debug] AMX backtrace:
[15:55:52] [debug] #0 00201d44 in MySetPlayerPos (playerid=224, Float:x=865.75098, Float:y=-1568.33728, Float:z=18.08130) at D:\tsn\gamemodes\tsn.pwn:36713
Код:
stock MySetPlayerPos(playerid, Float:x, Float:y, Float:z)
{
SetPVarInt(playerid, "AntiKickTP", 15); // строка 36713
SetPlayerPos(playerid, x, y, z);
return true;
}
Re: Скриптинг курилка -
ZiGGi - 22.04.2017
Quote:
Originally Posted by OneHitWonder
Горит очко пацаны, ранее обращался с крашем в тупорылой функции, теперь создал другую и проблема повторяется, НУ ЧЕМУ ТУТ КРАШИТЬ ТО ВООБЩЕ?!?!?
Код:
[15:55:52] [debug] Server crashed while executing tsn.amx
[15:55:52] [debug] AMX backtrace:
[15:55:52] [debug] #0 00201d44 in MySetPlayerPos (playerid=224, Float:x=865.75098, Float:y=-1568.33728, Float:z=18.08130) at D:\tsn\gamemodes\tsn.pwn:36713
Код:
stock MySetPlayerPos(playerid, Float:x, Float:y, Float:z)
{
SetPVarInt(playerid, "AntiKickTP", 15); // строка 36713
SetPlayerPos(playerid, x, y, z);
return true;
}
|
Может лимит PVar'ов привышен (800)?
Re: Скриптинг курилка -
OneHitWonder - 22.04.2017
У меня их даже 100 нет, это точно
Это ведь имеется на игрока, верно?
Или 300 игроков, каждому по пвару AntiKickTP = 300 пваров?
Re: Скриптинг курилка -
DartfoL - 22.04.2017
Quote:
Originally Posted by OneHitWonder
Горит очко пацаны, ранее обращался с крашем в тупорылой функции, теперь создал другую и проблема повторяется, НУ ЧЕМУ ТУТ КРАШИТЬ ТО ВООБЩЕ?!?!?
Код:
[15:55:52] [debug] Server crashed while executing tsn.amx
[15:55:52] [debug] AMX backtrace:
[15:55:52] [debug] #0 00201d44 in MySetPlayerPos (playerid=224, Float:x=865.75098, Float:y=-1568.33728, Float:z=18.08130) at D:\tsn\gamemodes\tsn.pwn:36713
Код:
stock MySetPlayerPos(playerid, Float:x, Float:y, Float:z)
{
SetPVarInt(playerid, "AntiKickTP", 15); // строка 36713
SetPlayerPos(playerid, x, y, z);
return true;
}
|
это все [debug] строчки?
Re: Скриптинг курилка -
OneHitWonder - 22.04.2017
Да, всё что есть. Уже не первый раз встречаю проблему когда в функции стоит банальный код и его крашит. А если идентичный код запускать не в отдельной функции, то всё работает отлично.
Re: Скриптинг курилка -
ZiGGi - 22.04.2017
Quote:
Originally Posted by OneHitWonder
У меня их даже 100 нет, это точно
Это ведь имеется на игрока, верно?
Или 300 игроков, каждому по пвару AntiKickTP = 300 пваров?
|
800 на игрока, да. Попробуй закомментировать эту строку и проверить,
Re: Скриптинг курилка -
DartfoL - 22.04.2017
значит что-то не так с крашдетектом. По крайней мере он должен выводить Native backtrace
Re: Скриптинг курилка -
OneHitWonder - 22.04.2017
Нет, с крашдетектом всё нормально
Уже не первый раз встречаю такие краши и версия последняя
Re: Скриптинг курилка -
OneHitWonder - 22.04.2017
Я не знаю, это просто чудеса ебаные какие-то
Re: Скриптинг курилка -
Mcc - 22.04.2017
Quote:
Originally Posted by ZiGGi
Может лимит PVar'ов привышен (800)?
|
лол а что у сампа есть лимит пваров, я только узнал