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
 

Zdjęcie

set_sprite - stock i tag mismatch


Najlepsza odpowiedź psilocybe, 22.11.2014 15:21

Nie wiem jak to zrobić :D

 

A gdybym użył

 

get_user_origin() zamiast pev?

 

przykładowo:

new zwloki[3]
get_user_origin(Victim, zwloki, 1)

Właściwie to chyba mógłbym wyrzucić fakemeta z tego pluginu chyba, no i nie wiem co to za define:

#define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1)

Edit

 

Wyrzuciłem fakemeta i zrobiłem tak jak wyżej, w stocku write_coord_f zmieniłem na write_coord, usunąłem ww. define i działa :D Dzięki za naprowadzenie na trop, bo całkiem niepotrzebnie uzywałem fakemeta :D

 

 

Jeszcze jedno pytanie:

 

Wcześniej gdy dodałem do osi Z +10 podnosiło sprite niewiele do góry, teraz gdy dam +10 to podnosi o wiele więcej, to jest w innych jednostkach?? Na pewno to nie są jednostki gry. Ktoś może to wyjaśnić w prosty sposób?

Przejdź do postu


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

#1 psilocybe

    Toasty!

  • Power User

Reputacja: 252
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 22.11.2014 03:21

Mam takiego stocka

stock set_sprite(id, xpos, ypos, zpos, sprite, scale, bright)
{
    message_begin(MSG_ONE, SVC_TEMPENTITY, {0,0,0}, id );
    write_byte(TE_SPRITE);
    write_coord_f(xpos);
    write_coord_f(ypos);
    write_coord_f(zpos);
    write_short(sprite);
    write_byte(scale);
    write_byte(bright);
    message_end();
}

W DeathMsg wyświetlam sprite nad zwłokami ofiary

new Float:fOrigin[3];
pev(Victim,pev_origin,fOrigin);

set_sprite(Killer, fOrigin[0], fOrigin[1], fOrigin[2], grenadekill, 2, 255);

No i plugin się kompiluje, działa chyba prawidłowo bo pokazuje sprite tam gdzie chcę ale przy każdym użyciu stocka set_sprite, kompilator wywala mi 

warning 213: tag mismatch

Plugin działa na debugu od 48 godzin i zero błędów więc o co chodzi z tym 'tag mismatch' skoro współrzędne pobiera prawidłowo, przykładowo daje:

fOrigin[2] += 10.0;

I pięknie mi sprite podnosi w osi Z do góry o 10 jednostek ;)

 

Pomożecie?

 

 


  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika


#2 grankee

    Godlike

  • Support Team

Reputacja: 517
Wszechwiedzący

  • Postów:1 500
  • Lokalizacja:Radom
Offline

Napisano 22.11.2014 15:03

stock set_sprite(id, xpos, ypos, zpos, sprite, scale, bright)

Tu dajesz znak kompilatorowi, że wszystkie argumenty funkcji mają być typu integer czyli liczba całkowita.

set_sprite(Killer, fOrigin[0], fOrigin[1], fOrigin[2], grenadekill, 2, 255);

A tu podajesz mu kilka integerów a kilka floatów.

 


  • +
  • -
  • 1

#3 psilocybe

    Toasty!

  • Autor tematu
  • Power User

Reputacja: 252
Wszechwidzący

  • Postów:524
  • Steam:steam
  • Imię:Filip
  • Lokalizacja:PL
Offline

Napisano 22.11.2014 15:21   Najlepsza odpowiedź

Nie wiem jak to zrobić :D

 

A gdybym użył

 

get_user_origin() zamiast pev?

 

przykładowo:

new zwloki[3]
get_user_origin(Victim, zwloki, 1)

Właściwie to chyba mógłbym wyrzucić fakemeta z tego pluginu chyba, no i nie wiem co to za define:

#define write_coord_f(%1) engfunc(EngFunc_WriteCoord,%1)

Edit

 

Wyrzuciłem fakemeta i zrobiłem tak jak wyżej, w stocku write_coord_f zmieniłem na write_coord, usunąłem ww. define i działa :D Dzięki za naprowadzenie na trop, bo całkiem niepotrzebnie uzywałem fakemeta :D

 

 

Jeszcze jedno pytanie:

 

Wcześniej gdy dodałem do osi Z +10 podnosiło sprite niewiele do góry, teraz gdy dam +10 to podnosi o wiele więcej, to jest w innych jednostkach?? Na pewno to nie są jednostki gry. Ktoś może to wyjaśnić w prosty sposób?


Użytkownik psilocybe edytował ten post 22.11.2014 15:51

  • +
  • -
  • 0

Dołączona grafika

Dołączona grafika





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

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