Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Funkcja if - nietypowy problem


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
1 odpowiedź w tym temacie

#1 Gość_kubek_*

  • Gość

Reputacja: 0

Offline

Napisano 16.01.2013 16:42

Witam, na wstępie chciałbym tylko powiedzieć, iż wątek który prowadzę w dziale pytania jest oddzielny. Tutaj chce po prostu zapytać czemu nie mogę zdefiniować (nie wiem czy dobrze się wyraziłem) danej funkcji do ifa, już piszę o co chodzi dokładnie na przykładzie kodu:


new Float: aim[2][3]
new Float: dif
entity_get_vector(ofiara, EV_VEC_v_angle, aim[0])
entity_get_vector(atakujacy, EV_VEC_v_angle, aim[1])

if(aim[0][1]<0) aim[0][1]+=360.0
if(aim[1][1]<0) aim[0][1]-=360.0

if(aim[0][1]>aim[1][1]) dif = aim[0][1]-aim[1][1]
else dif = aim[1][1]-aim[0][1]


Mamy taki sobie kod i aby zdefiniować go wystarczy niby

if(dif>90){


Lecz niestety nie działa. Ciekawe jest to, iż jak dodam przez new Float: aim[2][3] takie coś, lecz wyklucza to powyższą funkcje:

if(dif>90) return HAM_IGNORED;


To plugin wtedy łapie tą funkcje difa. Ktoś wie jak zrobić, aby zdefiniować to tak jak napisałem ?

Za pomoc jestem w stanie zapłacić (cena do uzgodnienia z osobą, która wie jak to zrobić) :)

Użytkownik kubek edytował ten post 16.01.2013 16:56


#2 Kameha

    Początkujący

  • Użytkownik

Reputacja: 3
Nowy

  • Postów:14
  • Lokalizacja:Assambler
Offline

Napisano 18.01.2013 13:52

Jeżeli możesz to wyjaśnij trochę bardziej o co Ci dokładnie chodzi. Bo na chwile obecną zrozumiałem jedynie że próbujesz pobrać wektor kierunku drugiej osoby, przeliczyć go wedle własnych upodobań a następnie sprawdzić różnicę pomiędzy kierunkiem pierwszej a drugiej osoby.
Nie jestem w stanie domyśleć się co możesz mieć na myśli, pisząc że sprawdzanie zmiennej dif nie spełnia Twoich oczekiwań.

Nie jestem pewien co do v_angle, ale z tego co mi intuicja podpowiada jest to kierunek x,y,z. A więc, powinna być ona zawarta od 0~360, no chyba że sposób w jaki engine to interpretuje wygląda np. -180~180. Jaki jest sens odejmowania, bądź dodawania 360stopni (pełne kółko) tego nie wiem.

Nie jestem pewien co do składni Pawn, ale jeżeli dif>90 przy zmiennej float nie chce działać możesz spróbować dif>90.0. Ewentualnie przeprasować ją do zmiennej int, poprzez zaokrąglanie reszty Odnośnik do dokumentacji floatround.
Jeżeli podasz trochę więcej informacji dot. Twojego problemu może będziemy w stanie trochę lepiej pomóc tak jak tego oczekujesz.

Pozdrawiam,
Kameha
  • +
  • -
  • 1




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych