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

Gracze znajdujący się przy innym graczuTj czy Gracz 1 stoi koło Gracza 2


  • Zamknięty Temat jest zamknięty
Brak odpowiedzi do tego tematu

#1 Juri_gag

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:4
Offline

Napisano 01.04.2011 19:05

Piszę znowu bo niby niezrozumiałe mam rozumieć? No to napisze prościej:

Chcę sprawdzić czy przy Graczu I znajdują się jacyś inni gracze w okolicy(tj 100 unitów). A jeśli tak i stoją przez jakiś czas w tej okolicy to wykonać jakąś funkcję na tym Graczu I.

Oraz drugi problem:

Czy da się zamiast normalnej śmierci tj < 1 hp zrobić coś innego, np przeciwnik nie ginie a np zapada się pod ziemię.

Tera git ?

Dodano 02 kwiecień 2011 - 00:03:
Może jakoś da radę zastosować find_sphere_class ? Proszę o pomoc bo bardzo mi to potrzebne :D

Dodano 02 kwiecień 2011 - 12:11:
Mam cos takiego:

public check( id )
{
    new num, list[ 32 ], Float:dist = 250.0;
    num = find_sphere_class( id, "player", dist+0.0, list, 32 );
    
    new player;
    for ( new i ; i < num ; i++ )
    {        
        player = list[ i ];
        if( !is_user_alive( player ) || get_user_team( player ) != get_user_team( id ) || gfFrost[id] == 0 )
		{
            continue;
		}
		set_task(5.0,"odmroz",id)
    }
}

public odmroz(id)
{
	gfFrost[id]=0;
	set_user_health(id,100);
	set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
	set_pev(id, pev_maxspeed, 250.0) 
}

Czemu niezaleznie gdzie sie kto znajduje po 5 sekundach ma unfreeze ? Tak jakby ten zasieg nie dzialal :D

Dodano 02 kwiecień 2011 - 21:09:
Dobra poradziłem sobie już, gdyby ktoś miał podobny problem:

W prethinku jakimś:

public fwPreThink(id){
	if (!task_exists(id)){
	set_task(1.0,"check",id);
	}

No i reszta skryptu:

public check( id )
{

	if( !gfFrost[id] )
    return PLUGIN_HANDLED;
	
    new num, list[32], Float:dist = 250.0;
    num = find_sphere_class( id, "player", dist, list, 32 );
    
    new player;
    for ( new i ; i < num ; i++ )
    {        
        player = list[ i ];
        if( !is_user_alive( player ) || get_user_team( player ) != get_user_team( id ) || id == player)
		{
            continue;
		}
		if (num == 2)
		{
		tuf[id]=tuf[id]+1;
		}
		else if(num >= 3)
		{
		tuf[id]=tuf[id]+1*(((num-1)/5)+1);
		}
		if (tuf[id] >= 7){
		tuf[id]=0;
		odmroz(id);
		}
    }
}

public odmroz(id)
{
	gfFrost[id] = false;
	set_user_health(id,100);
	set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 0)
	set_pev(id, pev_maxspeed, 250.0) 
}

Działą perfekcyjnie i tak jak chce :D Wieć już zaniedługo testy moda - TDM Freeze i wypuszcze wersję 0.1 ;D

Użytkownik Juri_gag edytował ten post 02.04.2011 20:10

  • +
  • -
  • 0




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

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