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

Ent na radarze


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

#1 Klakier

    Volenti non fit iniuria

  • Power User

Reputacja: 391
Wszechpomocny

  • Postów:878
  • GG:
  • Imię:Sebastian
  • Lokalizacja:Mogilno
Offline

Napisano 05.01.2013 13:45

Witam, chciałem zrobić, aby istniejący ent był na radarze, a nieistniejący zniknął. Mam kod, ale niestety gdy "zbiorę" enta, nadal on jest na radarze. Pomoże ktoś?


public radar_scan(id)
{
new num, players[32];
get_players(players, num, "gh");
for(new a=0; a<num; a++)
{
new id = players[a];
if(is_user_connected(id) && is_user_alive(id))
{
new ent = -1;
new num = 1;

//while((ent = find_ent_by_class(ent, "paczka")))
new Float:fOrigin[3];
while((ent = find_ent_by_class(ent,"paczka")))
{

if(is_valid_ent(ent)){

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

new iCoords[3];

for(new i; i<3 ;i++)
iCoords[i] = floatround(fOrigin[i]);

message_begin(MSG_ONE_UNRELIABLE, msgHostagePos, {0,0,0}, id)
write_byte(1)
write_byte(num>10?num++:10)
write_coord(iCoords[0])
write_coord(iCoords[1])
write_coord(iCoords[2])
message_end()


}


}
}
}
}

  • +
  • -
  • 0

Sell - System Klanów (wojny, top15 etc)

 

Kontakt GG: 7285018


#2 Cypis'

    Master

  • Przyjaciel

Reputacja: 1 162
Super Hero

  • Postów:965
  • GG:
  • Steam:steam
  • Lokalizacja:polska
Offline

Napisano 05.01.2013 14:08


new msgHostagePos, msgHostageK;

public plugin_init()
{
msgHostagePos = get_user_msgid("HostagePos");
msgHostageK = get_user_msgid("HostageK");
}

public radar_scan()
{
new ent = -1;
new Float:fOrigin[3];
new num, players[32];

while((ent = find_ent_by_class(ent, "paczka")))
{
if(is_valid_ent(ent))
{
pev(ent, pev_origin, fOrigin);

get_players(players, num, "gh");
for(new i=0; i<num; i++)
{
new id = players[i];
if(!is_user_alive(id))
continue;

message_begin(MSG_ONE_UNRELIABLE, msgHostagePos, .player = id);
write_byte(id);
write_byte(ent);
write_coord(floatround(fOrigin[0]));
write_coord(floatround(fOrigin[1]));
write_coord(floatround(fOrigin[2]));
message_end();

message_begin(MSG_ONE_UNRELIABLE, msgHostageK, .player = id);
write_byte(ent);
message_end();
}
}
}
}


sprawdz.
a jak usuwasz tego enta ?

Użytkownik Cypis' edytował ten post 05.01.2013 14:10

  • +
  • -
  • 0

#3 Klakier

    Volenti non fit iniuria

  • Autor tematu
  • Power User

Reputacja: 391
Wszechpomocny

  • Postów:878
  • GG:
  • Imię:Sebastian
  • Lokalizacja:Mogilno
Offline

Napisano 05.01.2013 15:12

Tą funkcją:
remove_entity(ent);


Teraz nie pokazuje nic na radarze :/
  • +
  • -
  • 0

Sell - System Klanów (wojny, top15 etc)

 

Kontakt GG: 7285018


#4 Cypis'

    Master

  • Przyjaciel

Reputacja: 1 162
Super Hero

  • Postów:965
  • GG:
  • Steam:steam
  • Lokalizacja:polska
Offline

Napisano 05.01.2013 20:30

zmień

write_byte(id);
write_byte(ent);

na

write_byte(0); //lub 1
write_byte(ent);

  • +
  • -
  • 0

#5 Klakier

    Volenti non fit iniuria

  • Autor tematu
  • Power User

Reputacja: 391
Wszechpomocny

  • Postów:878
  • GG:
  • Imię:Sebastian
  • Lokalizacja:Mogilno
Offline

Napisano 06.01.2013 00:44

Dalej nie działa, ale jak dałem

           	 message_begin(MSG_ONE_UNRELIABLE, msgHostagePos, .player = id);
write_byte(ent);
write_byte(id);
//write_coord(floatround(fOrigin[0]));
//write_coord(floatround(fOrigin[1]));
//write_coord(floatround(fOrigin[2]));
engfunc(EngFunc_WriteCoord,fOrigin[0])
engfunc(EngFunc_WriteCoord,fOrigin[1])
engfunc(EngFunc_WriteCoord,fOrigin[2])
message_end();

message_begin(MSG_ONE_UNRELIABLE, msgHostageK, .player = id);
write_byte(id);
message_end();


to coś się pokazało

W sensie zmieniłem

write_byte(id);
write_byte(ent);

na

write_byte(ent);
write_byte(id);

  • +
  • -
  • 0

Sell - System Klanów (wojny, top15 etc)

 

Kontakt GG: 7285018


#6 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 06.01.2013 00:47

:facepalm:
write_byte(id);
write_byte(ent);

miałeś zamienić na
write_byte(0);
write_byte(ent);


Jak wywołujesz "radar_scan"?

I swoją drogą najlepiej jakby ta funkcja wyglądała tak
public radar_scan()
{
new ent = -1;
new Float:fOrigin[3], iOrigin[3];
new i, num, players[32];
get_players(players, num, "ch");
while((ent = find_ent_by_class(ent, "paczka")))
{
if(is_valid_ent(ent))
{
entity_get_vector(ent, EV_VEC_origin, fOrigin);
FVecIVec(fOrigin, iOrigin);

for(i=0; i<num; ++i)
{
new id = players[i];
if(!is_user_alive(id))
continue;

message_begin(MSG_ONE_UNRELIABLE, msgHostagePos, .player = id);
write_byte(0);
write_byte(ent);
write_coord(iOrigin[0]);
write_coord(iOrigin[1]);
write_coord(iOrigin[2]);
message_end();

message_begin(MSG_ONE_UNRELIABLE, msgHostageK, .player = id);
write_byte(ent);
message_end();
}
}
}
}

bo po co pobierać graczy przy każdym znalezieniu enta?
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#7 Klakier

    Volenti non fit iniuria

  • Autor tematu
  • Power User

Reputacja: 391
Wszechpomocny

  • Postów:878
  • GG:
  • Imię:Sebastian
  • Lokalizacja:Mogilno
Offline

Napisano 06.01.2013 01:11

sebul przecież napisałem, że zmieniłem i dalej nie działa, więc pokombinowałem inaczej :P

set_task(2.5,"radar_scan", .flags="b");


Uparte jak osioł. Dalej nie działa xD
  • +
  • -
  • 0

Sell - System Klanów (wojny, top15 etc)

 

Kontakt GG: 7285018


#8 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 06.01.2013 01:15

Uparte jak osioł. Dalej nie działa xD

Robisz coś źle, dlatego nie działa.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#9 Klakier

    Volenti non fit iniuria

  • Autor tematu
  • Power User

Reputacja: 391
Wszechpomocny

  • Postów:878
  • GG:
  • Imię:Sebastian
  • Lokalizacja:Mogilno
Offline

Napisano 06.01.2013 01:19

Przesłać ci na PWcałe .sma ? Może ty coś dojrzysz.
sebul (06.01.2013 01:37):
Prześlij.

  • +
  • -
  • 0

Sell - System Klanów (wojny, top15 etc)

 

Kontakt GG: 7285018


#10 Klakier

    Volenti non fit iniuria

  • Autor tematu
  • Power User

Reputacja: 391
Wszechpomocny

  • Postów:878
  • GG:
  • Imię:Sebastian
  • Lokalizacja:Mogilno
Offline

Napisano 07.01.2013 20:19

Refresh
  • +
  • -
  • 0

Sell - System Klanów (wojny, top15 etc)

 

Kontakt GG: 7285018


#11 Klakier

    Volenti non fit iniuria

  • Autor tematu
  • Power User

Reputacja: 391
Wszechpomocny

  • Postów:878
  • GG:
  • Imię:Sebastian
  • Lokalizacja:Mogilno
Offline

Napisano 10.01.2013 22:43

REFF
  • +
  • -
  • 0

Sell - System Klanów (wojny, top15 etc)

 

Kontakt GG: 7285018





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

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