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=403415)

Pages: 1 2


Вывод значений в текст - lost13 - 30.12.2012

Я беру жизни playerid, *умножаю на 120 и через %d вывожу на экран но показывает чтото такое 142531525 если вывожу через %f 120000.00000 что впринципе и нужно но без .0000. Так вот, как мне юыть как вывести так, что показывало 12000


Re: Вывод значений в текст - GameMan - 30.12.2012

Сделай %d, но само умноженное значение возьми в floatround()
Например:
new Float:health = 100.0;
new str[50];
format(str, sizeof(str), "Health: %d", floatround(health*120));
print(str);

В лог напишет - Health: 12000


Re: Вывод значений в текст - -Stranger- - 30.12.2012

Вики читать стало не модно?
https://sampwiki.blast.hk/wiki/GetPlayerHealth
Какой тип у переменной health? Правильно float. И вопрос, какого .. выводим через %d?

PHP код:
new Float:health;
GetPlayerHealth(playerid,health);
new 
health2 floatround(health 120.0);
printf("%d",health2); 
GameMan, не напрягайте человеку мозг лишними функциями, ex. floatmul


Re: Вывод значений в текст - lost13 - 30.12.2012

Спасибо.


Re: Вывод значений в текст - lost13 - 30.12.2012

а еще? ниже скрипт CNPC который указывает ботам кого и когда атаковать, когда на серве один игрок боты отрабатывают исправно, но когда больше они либо вообще не агряться либо агряться только на 1
pawn Код:
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
    for_npcs(i)
    {
    if(IsPlayersNear(playerid,i,30))
    {
    NPC_RunTo(i,(random(5) - random(5) + pos[0]),(random(5) - random(5) + pos[1]),pos[2],0);
    NPC_ShotAt(i,pos[0],pos[1],pos[2]);
    //NPC_AimAt(i,pos[0],pos[1],pos[2]);
    //NPC_LookAt(i,pos[0],pos[1],pos[2]);
    }else{
    OnNPCMovingComplete(i);
    }
    }
    /*}*/
}

stock IsPlayersNear(playerid,targetid,Float:range)
{
    new Float:pos[3];
    GetPlayerPos(targetid,pos[0],pos[1],pos[2]);
    if(IsPlayerInRangeOfPoint(playerid,range,pos[0],pos[1],pos[2]))return true;
    return false;
}



Re: Вывод значений в текст - White_116 - 30.12.2012

else OnNPCMovingComplete(i); я так понимаю останавливает бота.
либо вы запоминайте атакует ли бот кого либо и соответственно не включайте его уже в проверку
или пускай бот сам выбирает кого он атакует. У вас же какой-то бардак. Игрок выбирает бота и если он должен атаковать вы не исключаете его из проверки для следующего игрока.


Re: Вывод значений в текст - SDraw - 30.12.2012

Quote:
Originally Posted by -Stranger-
Посмотреть сообщение
Вики читать стало не модно?
https://sampwiki.blast.hk/wiki/GetPlayerHealth
Какой тип у переменной health? Правильно float. И вопрос, какого .. выводим через %d?

PHP код:
new Float:health;
GetPlayerHealth(playerid,health);
new 
health2 floatround(health 120.0);
printf("%d",health2); 
GameMan, не напрягайте человеку мозг лишними функциями, ex. floatmul
*rofl*
Никто про %.0f не знает что ле? xD


Re: Вывод значений в текст - GameMan - 30.12.2012

Quote:
Originally Posted by SDraw
Посмотреть сообщение
*rofl*
Никто про %.0f не знает что ле? xD
Эмм, неа
Я знаю про %0.1f %0.2f, а про %0.0f не знал


Re: Вывод значений в текст - SDraw - 30.12.2012

Quote:
Originally Posted by GameMan
Посмотреть сообщение
Эмм, неа
Я знаю про %0.1f %0.2f, а про %0.0f не знал
Значит знайте, а то не надо костыли серверу ставить
Код:
new Float:health,str[12];
GetPlayerHealth(playerid,health);
format(str,12,"%.0f",floatmul(health,120.0));
TextDrawSetString(Text:id,str); // или же PlayerTextDrawSetString(playerid,PlayerText:id,str); //для примера :)



Re: Вывод значений в текст - -Stranger- - 30.12.2012

SDraw, %.0f и есть костыль, если нужно показать Int...


Re: Вывод значений в текст - SDraw - 31.12.2012

Quote:
Originally Posted by -Stranger-
Посмотреть сообщение
SDraw, %.0f и есть костыль, если нужно показать Int...
Не смешите...
Топикстартеру нужно только целая часть числа, значит, нужно откинуть дробную часть, что и есть %.0f...
Quote:
Originally Posted by lost13
Посмотреть сообщение
если вывожу через %f 120000.00000 что впринципе и нужно но без .0000



Re: Вывод значений в текст - -Stranger- - 31.12.2012

А что такое целая часть числа без дробной части? Случаем это не int?
С вашей логикой, число можно конвертнуть в строчку и обрезать личнее...


Re: Вывод значений в текст - SDraw - 31.12.2012

Quote:
Originally Posted by -Stranger-
Посмотреть сообщение
А что такое целая часть числа без дробной части? Случаем это не int?
С вашей логикой, число можно конвертнуть в строчку и обрезать личнее...
Ну, ладно, пусть будет по Вашему с помощью floatround...Но ведь оно же при обычном округлении (floatround_round) из, к примеру, 12.8457 даст 13, а это уже не то. Придется использовать floatround_floor, что уже означает ошибку в примерах (не мои примеры) выше


Re: Вывод значений в текст - -Stranger- - 31.12.2012

SDraw, тут я с Вами полностью согласен.
TS нужно выбрать более оптимальный метод округление для конкретного случая: https://sampwiki.blast.hk/wiki/Floatround_method


Re: Вывод значений в текст - dimonml - 31.12.2012

Начиная с каких-то последних версий сампа по сети жизнь и бронька передается целым беззнаковым байтом, так что проблем с округлением быть особо не должно.


Re: Вывод значений в текст - White_116 - 01.01.2013

Quote:
Originally Posted by dimonml
Посмотреть сообщение
Начиная с каких-то последних версий сампа по сети жизнь и бронька передается целым бесзнаковым байтом, так что проблем с округлением быть особо не должно.
Да и ещё в диапазоне от 0 до 255 включая.


Re: Вывод значений в текст - lost13 - 01.01.2013

Quote:
Originally Posted by White_116
Посмотреть сообщение
else OnNPCMovingComplete(i); я так понимаю останавливает бота.
либо вы запоминайте атакует ли бот кого либо и соответственно не включайте его уже в проверку
или пускай бот сам выбирает кого он атакует. У вас же какой-то бардак. Игрок выбирает бота и если он должен атаковать вы не исключаете его из проверки для следующего игрока.
Ниче не понял, но спасибо, попробую разобраться.


Re: Вывод значений в текст - lost13 - 02.01.2013

Quote:
Originally Posted by lost13
Посмотреть сообщение
Ниче не понял, но спасибо, попробую разобраться.
Так и не разобрался, они все равно агряться только на ид 0


Re: Вывод значений в текст - AirKite - 02.01.2013

Quote:
Originally Posted by lost13
Посмотреть сообщение
Так и не разобрался, они все равно агряться только на ид 0
http://forum.sa-mp.com/showpost.php?...48&postcount=5
Чему равен playerid? Цикл на всех игроков не забыли?


Re: Вывод значений в текст - lost13 - 06.01.2013

Quote:
Originally Posted by AirKite
Посмотреть сообщение
http://forum.sa-mp.com/showpost.php?...48&postcount=5
Чему равен playerid? Цикл на всех игроков не забыли?
В паблике указан playerid т.е. public zombie(playerid,npcid)