Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг
Войти через OpenID

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 05.07.2010, 12:42   #1
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию деление или проценты

Пытаюсь извлечь минимальное кол-во ХП из максимального.
Вот эта строка выдает ошибку:
Код:
ReadMinHpName:=((ReadMaxHpName) / 100 * (procent));
Может есть функция вычесления сразу в процентах?
Или может я не так делю?)

Вообщем опять нид хелп.
supernewbie вне форума   Ответить с цитированием
Старый 05.07.2010, 12:51   #2
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

var
ReadMinHpName:integer ?

ReadMinHpName := Round((ReadMaxHpName) / 100 * (procent)); !
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 05.07.2010, 12:53   #3
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

блин( опять запилил нубскую темку, ответ на вопрос который нашел сам)
PS вместо / надо писать div

Добавлено через 2 минуты
Цитата:
Сообщение от alexteam Посмотреть сообщение
var
ReadMinHpName:integer ?

ReadMinHpName := Round((ReadMaxHpName) / 100 * (procent)); !
PSS у тебя тоже ошибку "Integer" "Expended" выдает.

Последний раз редактировалось supernewbie, 05.07.2010 в 12:53. Причина: Добавлено сообщение
supernewbie вне форума   Ответить с цитированием
Старый 05.07.2010, 14:20   #4
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

Цитата:
Round
Цитата:
у тебя тоже ошибку "Integer" "Expended" выдает.
"ниверю" ©
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 05.07.2010, 16:12   #5
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

объясни заодно что такое Round )
supernewbie вне форума   Ответить с цитированием
Старый 05.07.2010, 16:30   #6
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

округление
Function Round(Value:extended):integer;
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 05.07.2010, 16:44   #7
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

округление чего) число и так целое)
supernewbie вне форума   Ответить с цитированием
Старый 05.07.2010, 16:54   #8
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

Цитата:
(ReadMaxHpName) / 100 * (procent)
Цитата:
число и так целое
ага..
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 06.07.2010, 00:30   #9
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Еще как в школе учился допустил ту же ошибку, пару дней не мог понять в чем дело. Инета в те времена у меня не было, пришлось своей головой думать. Благо нашел книжку по ассемблеру и глянул как работает операция деления. Сейчас то, все намного проще: неявное преобразование данных защищает от подобного.

Собственно ответ который нужен автору темы: операция деления ВСЕГДА возвращает число с плавающей точкой.

Не имеет значения какой предполагается результат, даже если 4/2 ответом будет 2.0
В вашем случаи для деления можно использовать операцию div, можно исользовать функции Round или Trunc. Может и еще как-то можно, но я не программист и мне в жизни хватает и этих

А еще историческая справка (для общего развития): этот фактор когда-то использовали (во времена турбо паскаля 1.0) для преобразования целого числа в число с плавающей точкой. Так как компилятор считал ошибкой запись (если r:real, а z:integer) r:=z; и надо было писать r:=z/1;
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber

Последний раз редактировалось J-Fobos, 06.07.2010 в 00:35.
J-Fobos вне форума   Ответить с цитированием
За это сообщение J-Fobos нажился спасибкой от:
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 03:08.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!