Вывод значений в текст -
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
|
Значит знайте, а то не надо костыли серверу ставить
Код:
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
|
В паблике указан playerid т.е. public zombie(playerid,npcid)