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

Smoke i byt.


  • Zamknięty Temat jest zamknięty
11 odpowiedzi w tym temacie

#1 GoldeN

    Wszechmogący

  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 26.11.2010 19:35

Witam. Jak mogę przechwycić rzucenie granatem (smoke) i jak on leży to na nim stworzyć niewidzialny byt (coś tak totem) i żeby on w X obszarze cośdawał?

#2 Knopers

    Nie patrz tak na mnie !

  • Przyjaciel

Reputacja: 588
Wszechwiedzący

  • Postów:2 013
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Cz-wa
Offline

Napisano 26.11.2010 21:00

szukasz smoke'a
new ent = find_ent_by_owner(-1, "weapon_smokegrenade", id, 1);

Sprawdzasz czy leży na ziemi, jeśli tak to pobierasz koordynaty a następnie sprawdzasz czy ktoś znajduje się w obszarze jego i dalej lecisz ze swoją funkcją.
  • +
  • -
  • 1

#3 GoldeN

    Wszechmogący

  • Autor tematu
  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 26.11.2010 21:16

Sprawdzenie czy jest na ziemi to za pomocą tego:

if(ent & FL_ONGROUND) 


?

Kompiluje się wiec chyba to to. Teraz dodałem do tego leczenie. Jak mam zrobić, aby po X sekundach wszystkie efekty się usuwały? I żeby leczenie było co X sekund?

Użytkownik GoldeNx3 edytował ten post 26.11.2010 21:56


#4 Ortega

    mów mi Orti

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

Napisano 26.11.2010 22:16

if( pev( entity, pev_flags ) & FL_ONGROUND )

set_task
  • +
  • -
  • 1

#5 GoldeN

    Wszechmogący

  • Autor tematu
  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 26.11.2010 22:27

Dobra. Jeszcze jak mam wywołać tą całą funkcję? W którym momencie?

public function_smoke_gren(id)
{
new ent = find_ent_by_owner(-1, "weapon_smokegrenade", id, 1);
new koordy[3];
new gracz[3];

get_user_origin(id, gracz)

if( pev( ent, pev_flags ) & FL_ONGROUND )
{
get_user_origin(ent, koordy)
set_rendering(ent, kRenderFxGlowShell, 255,0,0, kRenderNormal, 255)

message_begin( MSG_BROADCAST, SVC_TEMPENTITY, koordy );
write_byte( TE_BEAMCYLINDER );
write_coord( koordy[0] );
write_coord( koordy[1] );
write_coord( koordy[2] );
write_coord( koordy[0] );
write_coord( koordy[1] + 300 );
write_coord( koordy[2] + 300 );
write_short( sprite_white );
write_byte( 1 ); // startframe
write_byte( 2 ); // framerate
write_byte( 10 ); // life
write_byte( 50 ); // width
write_byte( 255 ); // noise
write_byte( 255 ); // r, g, b
write_byte( 0 ); // r, g, b
write_byte( 0 ); // r, g, b
write_byte( 128 ); // brightness
write_byte( 5 ); // speed
message_end();
}
return PLUGIN_CONTINUE;
}


Jak do tego dodać leczenie co 2 sekundy i żeby to trwało 10 sekund i wszystkie efekty się usuwały?

Użytkownik GoldeNx3 edytował ten post 26.11.2010 22:36


#6 Ortega

    mów mi Orti

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

Napisano 26.11.2010 22:36

Ustawiasz taska, żeby się wykonywał co jakiś czas gdy byt granatu będzie na ziemi, np. w nieskończoność aż byt nie zostanie usunięty i wtedy robisz remove_task.
  • +
  • -
  • 1

#7 GoldeN

    Wszechmogący

  • Autor tematu
  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 26.11.2010 22:40

No tak, ale jak wywołam taska w funkcji w/w to jak mam wszystko pobrać i jak mam usunąć byt, skoro ta nast. funkcja nie bd wiedziała co to jest "ent"?

#8 Ortega

    mów mi Orti

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

Napisano 26.11.2010 22:45

To przepisujesz argument.
new iArg[ 1 ];
iArg[ 0 ] = ent;
set_task( 1.0, "func", id + X, iArg, sizeof( iArg ) - 1, "b" );

  • +
  • -
  • 1

#9 GoldeN

    Wszechmogący

  • Autor tematu
  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 26.11.2010 22:48

public function_smoke_gren(id)
{
new ent = find_ent_by_owner(-1, "weapon_smokegrenade", id, 1);
new koordy[3];
new gracz[3];
new iArg[ 1 ];
iArg[ 0 ] = ent;

get_user_origin(id, gracz)

if( pev( ent, pev_flags ) & FL_ONGROUND )
{
get_user_origin(ent, koordy)
set_rendering(ent, kRenderFxGlowShell, 255,0,0, kRenderNormal, 255)
set_task( 1.0, "func", id + 333, iArg, sizeof( iArg ) - 1, "b" );
}
return PLUGIN_CONTINUE;
}


Takie cuś? ; /

#10 Ortega

    mów mi Orti

  • Power User

Reputacja: 363
Wszechpomocny

  • Postów:640
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Sosnowiec
Offline

Napisano 26.11.2010 22:52

Tak, a w:
public func( id, iArg[ ] ) {
id =- 333;
new ent = iArg[ 0 ];
}

  • +
  • -
  • 1

#11 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 26.11.2010 23:36

ehh ortega nie lepiej przekazac ent zamiast id i usunac ent bo o to chodzi wiec id w zasadzie jest zbedna a jak jest juz potrzebne to lepiej wpisac wczesniej pev_owner i odczytac w funkcji konczacej efekt bez kombinowania z taskami + mozna uzyc innych pev_* ktore sa znane z tego ze nie robia nic waznego i mozna ich sobie uzywac :D
  • +
  • -
  • 1
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#12 GoldeN

    Wszechmogący

  • Autor tematu
  • Zbanowany

Reputacja: 69
Pomocny

  • Postów:676
  • Imię:Kamil
  • Lokalizacja:DG
Offline

Napisano 26.11.2010 23:39

public func( id, iArg[ ] ) {
id =- 333;
new ent = iArg[ 0 ];
}


I w tym mam usunąć byt? Czy w tym mam wywołać leczenie?

Dodano 27 listopad 2010 - 17:14:
Pomoże ktoś?




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

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