SA-MP Forums Archive
Скриптинг курилка - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Скриптинг курилка (/showthread.php?tid=111279)



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
Посмотреть сообщение
Советую ознакомиться с особенностями работы компьютера с float числами: https://habrahabr.ru/post/112953/
Есть какой то вариант фикса?


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(stringsizeof(string), "%d.%d"value 10value 10);
    return 
string;




Re: Скриптинг курилка - Romz - 18.04.2017

Quote:
Originally Posted by ZiGGi
Посмотреть сообщение
Храни температуру как целое число - 366 и выводи с помощью чего-то подобного:

PHP код:
stock GetTemperatureString(value)
{
    new 
string[16];
    
format(stringsizeof(string), "%d.%d"value 10value 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)?
лол а что у сампа есть лимит пваров, я только узнал