Jump to content


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

Posted Image Posted Image

Guest Message by DevFuse
 

Rozbłysjk granatu w Zombie Plague - Jak zrobiono


  • This topic is locked This topic is locked
3 replies to this topic

#1 zielu001

    Zaawansowany

  • Użytkownik

  • Reputacja: 11
    Początkujący

  • Postów:90
  • Lokalizacja:Zator
Offline

Posted 23.05.2010 16:29

Witam, potrzebuję wiedzieć jak zrobiono rozbłysk granatu zapalającego, i pobieranie graczy którzy znajdują się w promieniu.

Kod z zombieplague:

// Fire Grenade Explosion
fire_explode(ent)
{
	// Get origin
	static Float:originF[3]
	pev(ent, pev_origin, originF)
	
	// Make the explosion
	create_blast2(originF)
	
	// Fire nade explode sound
	static sound[64]
	ArrayGetString(grenade_fire, random_num(0, ArraySize(grenade_fire) - 1), sound, charsmax(sound))
	emit_sound(ent, CHAN_WEAPON, sound, 1.0, ATTN_NORM, 0, PITCH_NORM)
	
	// Collisions
	static victim
	victim = -1
	
	while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, originF, NADE_EXPLOSION_RADIUS)) != 0)
	{
		// Only effect alive zombies
		if (!is_user_valid_alive(victim) || !g_zombie[victim] || g_nodamage[victim])
			continue;
		
		// Heat icon?
		if (get_pcvar_num(cvar_hudicons))
		{
			message_begin(MSG_ONE_UNRELIABLE, g_msgDamage, _, victim)
			write_byte(0) // damage save
			write_byte(0) // damage take
			write_long(DMG_BURN) // damage type
			write_coord(0) // x
			write_coord(0) // y
			write_coord(0) // z
			message_end()
		}
		
		if (g_nemesis[victim]) // fire duration (nemesis is fire resistant)
			g_burning_duration[victim] += get_pcvar_num(cvar_fireduration)
		else
			g_burning_duration[victim] += get_pcvar_num(cvar_fireduration) * 5
		
		// Set burning task on victim if not present
		if (!task_exists(victim+TASK_BURN))
			set_task(0.2, "burning_flame", victim+TASK_BURN, _, _, "b")
	}
	
	// Get rid of the grenade
	engfunc(EngFunc_RemoveEntity, ent)
}

  • +
  • -
  • 0

#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

  • Reputacja: 6,559
    Godlike

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

Posted 23.05.2010 18:00


static Float:originF[3]
pev(ent, pev_origin, originF)

// Make the explosion
create_blast2(originF)

funkcja create_blast2 (jest w zm)

do pobierania odległości między graczami (lub obiektami )służy get_entity_distance(id,id2)
załóżmy że szukamy graczy któży są w odległości 1200 unitów

new tablica[32]
new ile = 0;
for(new i = 1;i<33;i++){
if(is_user_alive(i) && i != id && get_user_team(i) != get_user_team(id)){
if(get_entity_distance(id,i) < 1200){
tablica[ile] = i;
ile++;
}
}
}

  • +
  • -
  • 0

#3 zielu001

    Zaawansowany

  • Autor tematu
  • Użytkownik

  • Reputacja: 11
    Początkujący

  • Postów:90
  • Lokalizacja:Zator
Offline

Posted 23.05.2010 18:13

Tak, ale ta funkcja którą podaleś jest na sprawdzanie odleglosci graczy(for) od gracza(id), a mi chodzi o pobieranie graczy którzy są w promieniu tego połysku ( funkcja create_blast2)
  • +
  • -
  • 0

#4 DarkGL

    Nie oddam ciasteczka !

  • Administrator

  • Reputacja: 6,559
    Godlike

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

Posted 23.05.2010 18:18

no to masz

static victim
victim = -1
while ((victim = engfunc(EngFunc_FindEntityInSphere, victim, originF, asdasd)) != 0){
}

w victim jest id gracza
za aasdasd wstawiasz liczbę rzeczywistą
  • +
  • -
  • 0




  


1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

Coinsy CSGOPolygon Za SMS, PSC , Przelew - CoinSell.pro
Skiny do CS:GO za SMS, PSC, Przelew - CSGOPaka.com
Automatyczny Bot Levelowania Steam - LVLUPSteam.com
CSGO Gambling Sites and Free Betting Codes - DreamCodes.gg

Sign In