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

Jak to zoptymalizowac?


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

#1 VirusX

    Pomocny

  • Użytkownik

Reputacja: 75
Zaawansowany

  • Postów:48
  • Imię:Adam
  • Lokalizacja:Zabrze
Offline

Napisano 08.03.2012 17:31

public fart_fume(param[1])
{
new FartEnt = param[0]
new Float:forigin[3], origin[3]
entity_get_vector(FartEnt, EV_VEC_origin, forigin)
FVecIVec(forigin, origin)
new players[32], inum
get_players(players,inum)
for(new i = 0 ;i < inum; ++i)
{
message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},players[i])
write_byte(17)
write_coord(origin[0])
write_coord(origin[1])
write_coord(origin[2])
write_short(fart_spr)
write_byte(30)
write_byte(75)
message_end()
}
return PLUGIN_CONTINUE
}

Mam taki o sobie fragment kodu, jak mniemam tworzy on obloczek dymu.
Jak moglbym to zoptymalizowac aby bylo mniej zasobozerne?
Z informacji jakie uzyskalem od jednego z tutejszych administratorow mozna to napisac z wykorzystaniem MSG_BROADCAST zamiast num*MSG_ONE, jakkolwiek niestety nie bawilem sie nigdy messegami i nie chce czegos popsuc stad prosba o pomoc.

Z gory dziekuje i pozdrawiam,
Adam.
  • +
  • -
  • 0

#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 08.03.2012 17:41

jeśli chodzi ci o samo wyświetlanie sprite to wiele nie zdziałasz
jeśli chcesz wysyłać ten message do wszystkich do usuń pętle i pobieranie graczy i daj MSG_BROADCAST
  • +
  • -
  • 1

#3 VirusX

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 75
Zaawansowany

  • Postów:48
  • Imię:Adam
  • Lokalizacja:Zabrze
Offline

Napisano 08.03.2012 17:53

public fart_fume(param[1])
{
new FartEnt = param[0]
new Float:forigin[3], origin[3]
entity_get_vector(FartEnt, EV_VEC_origin, forigin)
FVecIVec(forigin, origin)
  message_begin(MSG_BROADCAST,SVC_TEMPENTITY,{0,0,0})
  write_byte(17)
  write_coord(origin[0])
  write_coord(origin[1])
  write_coord(origin[2])
  write_short(fart_spr)
  write_byte(30)
  write_byte(75)
  message_end()

return PLUGIN_CONTINUE
}

Łi ?
  • +
  • -
  • 0

#4 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 09.03.2012 14:02

zamiast przekształcać float -> int możesz przekazać origin jako float za pomocą
engfunc( EngFunc_WriteCoord , fOrigin[ 0 ] );

public fart_fume(param[1])
{
new FartEnt = param[0]
new Float:forigin[ 3 ];
entity_get_vector(FartEnt, EV_VEC_origin, forigin)
  message_begin(MSG_BROADCAST,SVC_TEMPENTITY,{0,0,0})
  write_byte(17)
  engfunc( EngFunc_WriteCoord , forigin[0])
  engfunc( EngFunc_WriteCoord , forigin[1])
  engfunc( EngFunc_WriteCoord , forigin[2])
  write_short(fart_spr)
  write_byte(30)
  write_byte(75)
  message_end()
}

  • +
  • -
  • 0




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

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