Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Функция и её параметры

, помогите чайнику
Статус пользователя MisterFake
сообщение 5.11.2014, 23:34
Сообщение #1


Стаж: 12 лет

Сообщений: 93
Благодарностей: 28
Полезность: 214

Решил завернуть внушительный кусок кода в функцию

функция примерно выглядит так
Код:
public VecAnalysys(Float: dX, Float: dY, const Vector1[3], const Vector2[3]) {

//кода очень много и не в нем явно дело

dX = De1 / Det
dY = De2 / Det

server_print("%f %f", dX, dY)
//в консоле сервера выводит результаты без багов, корректные, отличные от нуля, значит dX и dY посчитаны явно верно

return 1
}


Однако вызов самой функции в основном коде ведет себя страно

Код:
new Float:dX
new Float:dY
if (VecAnalysys(dX,dY,Vec1,Vec2))
client_print(id,print_chat,"dX = %f dY = %f", dX, dY)
//А вот тут в чат упорно выводятся нули, почему то процедура VecAnalysys не изменила значения dX, dY


Ошибок и предупреждений компилятор НЕ выдает
В логах сервера тоже чисто

В чем может быть дело?
Попытка загуглить не удалась.

Отредактировал: MisterFake, - 5.11.2014, 23:58
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя s1lent
сообщение 6.11.2014, 0:42
Сообщение #2
Стаж: 16 лет

Сообщений: 440
Благодарности: выкл.

Код:
public VecAnalysys(Float: dX, Float: dY, const Vector1[3], const Vector2[3])


=>

Код:
public VecAnalysys(&Float: dX, &Float: dY, const Vector1[3], const Vector2[3])


не массивы надо передавать по ссылке, т.е с &

ps.gif link
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MisterFake
сообщение 6.11.2014, 1:44
Сообщение #3


Стаж: 12 лет

Сообщений: 93
Благодарностей: 28
Полезность: 214

Действительно thank_you2.gif

[SOLVED]
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MisterFake
сообщение 6.11.2014, 19:53
Сообщение #4


Стаж: 12 лет

Сообщений: 93
Благодарностей: 28
Полезность: 214

Теперь новая проблема..
dX в чат выводит, dY по нулям.. в логах значения корректны..

&Float указал для обеих переменных

UPD: Похоже переменная где-то обнуляется.. Пока трассировкой когда занимаюсь выводя значения переменных в разных частях алгоритма, попробую выяснить.. в AMXX есть какие нибудь технические ограничения на количество переменных?

Отредактировал: MisterFake, - 6.11.2014, 21:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: