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

Funkcja na podstawie Smoke.


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

#1 Screeaam...

    ; ooo

  • Zbanowany

Reputacja: 154
Profesjonalista

  • Postów:1 012
  • Lokalizacja:Sosnowiec
Offline

Napisano 30.05.2010 21:45

Witam, wzorując się na player_b_smokehit, jak mogę zrobić identyczną funkcję, tylko aby granaty Smoke podpalały graczy?

#2 Vertricus

    Godlike

  • Przyjaciel

Reputacja: 426
Wszechobecny

  • Postów:1 549
  • Lokalizacja:.
Offline

Napisano 30.05.2010 22:03

w Touchu zamiast zabić gracza musisz go podpalić :>
Funkcji od podpalenia poszukaj w ATAC.

		if(equal(szClassName, "grenade") && equal(szClassNameOther, "player"))
{
new greModel[64]
entity_get_string(ptd, EV_SZ_model, greModel, 63)

if(equali(greModel, "models/w_smokegrenade.mdl" ))
{
new id = entity_get_edict(ptd,EV_ENT_owner)

if (is_user_connected(id)
&& is_user_alive(ptr)
&& player_b_smokopodpalacz[id] > 0
&& get_user_team(id) != get_user_team(ptr))
// FUNKCJA PODPALAJĄCA
}


}

  • +
  • -
  • 1

#3 Screeaam...

    ; ooo

  • Autor tematu
  • Zbanowany

Reputacja: 154
Profesjonalista

  • Postów:1 012
  • Lokalizacja:Sosnowiec
Offline

Napisano 31.05.2010 14:09

Dobra, zrobiłem tak:

                if(equal(szClassName, "grenade") && equal(szClassNameOther, "player"))
                {
                        new greModel[64]
                        entity_get_string(ptd, EV_SZ_model, greModel, 63)
                        
                        if(equali(greModel, "models/w_smokegrenade.mdl" ))      
                        {
                                new id = entity_get_edict(ptd,EV_ENT_owner)
                                
                                if (is_user_connected(id) 
                                && is_user_alive(ptr) 
                                && player_b_smokopodpalacz[id] > 0
                                && get_user_team(id) != get_user_team(ptr))
                                fire_effects(id)
		                fire_damage(id)
                        }
                        
                        
                }

Na samym dole *.sma:

public fire_effects( id )
{
	if (is_user_alive(id))
	{
		new origin[ 3 ]
		get_user_origin(id, origin)
		draw_fire(origin)
		set_task(0.2, "fire_effects", id)
	}
}

public fire_damage( id )
{
	if (is_user_alive(id))
	{
		new health = get_user_health(id)
		set_pev(id, pev_dmg_inflictor, 0) // Reset attacker, else ATAC will rapidly start adding Team Attacks!

		if ( health - 5 <= 0 )
			user_kill( id, 1 )
		else
		{
			set_pev( id, pev_health, float( health ) - 5.0 )
			set_task(1.0, "fire_damage", id)
		}
	}
}

draw_fire(origin[3])
{
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(TE_SPRITE)
	write_coord(origin[0])
	write_coord(origin[1])
	write_coord(origin[2])
	write_short(g_mflash)
	write_byte(20)
	write_byte(200)
	message_end()

	smoke_effect(origin, 20) // Smoke
}

smoke_effect(origin[3], amount)
{
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(TE_SMOKE)
	write_coord(origin[0])
	write_coord(origin[1])
	write_coord(origin[2])
	write_short(g_smoke)
	write_byte(amount)
	write_byte(10)
	message_end()
}

Oczywiście precache i zmienne dodałem, kompiluje się, ale będzie działać? I tylko dźwięk usunąłem

1. Będzie zadawać dmg?

I co to jest:

set_pev(id, pev_dmg_inflictor, 0) // Reset attacker, else ATAC will rapidly start adding Team Attacks!\

?

I jakby mi mógł ktoś powiedzieć gdzie tu jest ile dmg zadaje? I że, jak ma koleś mało hp, żeby go zabijało, znaczy odejmuje i jak juz ma 1 hp i dalej jest to odejmuje i go zabija.

2. Jak długo będzie działać?
3. Jak zrobić, aby dym smoke'a też podpalał? xD

Użytkownik Screeaam... edytował ten post 31.05.2010 15:11


#4 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 31.05.2010 17:21

w zasadzie zada to 5 obrazen ale tylko w momencie dotkniecia wiec gracz sie palil nie bedzie tylko zabierze mu hp raz najlepiej zrobic taska ktory wykona to pare razy albo thinka + jak bedziesz stac na obiekcie to mam natychmiastowego deada


// jak chcesz sie wzorowac na czyms to polecam fireshielda lub totem ognisty
  • +
  • -
  • 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

#5 Screeaam...

    ; ooo

  • Autor tematu
  • Zbanowany

Reputacja: 154
Profesjonalista

  • Postów:1 012
  • Lokalizacja:Sosnowiec
Offline

Napisano 31.05.2010 20:05

w zasadzie zada to 5 obrazen ale tylko w momencie dotkniecia wiec gracz sie palil nie bedzie tylko zabierze mu hp raz najlepiej zrobic taska ktory wykona to pare razy albo thinka + jak bedziesz stac na obiekcie to mam natychmiastowego deada


// jak chcesz sie wzorowac na czyms to polecam fireshielda lub totem ognisty



Czyli co i jak mam zmienić?


Czyli, jeżeli wyciągnę funkcje z podpalania od totemu, podczepie to do taska i wykonam task kilkakrotnie w mojej funkcji, to będzie podpalanie działać?

Po drugie nie wiem która funkcja odpowiada za palenie się. ;/



@EDIT:


Czy to to:

stock Effect_Ignite(id,attacker,damage)
{
	new ent = Spawn_Ent("info_target")
	set_pev(ent,pev_classname,"Effect_Ignite")
	set_pev(ent,pev_owner,id)
	set_pev(ent,pev_ltime, halflife_time() + 99 + 0.1)
	set_pev(ent,pev_solid,SOLID_NOT)
	set_pev(ent,pev_euser1,attacker)
	set_pev(ent,pev_euser2,damage)
	set_pev(ent,pev_nextthink, halflife_time() + 0.1)	
	
	AddFlag(id,Flag_Ignite)
}

I jeszcze mam coś takiego, ale nie wiem do czego:

public Effect_Ignite_Think(ent)
{
	new id = pev(ent,pev_owner)
	attacker = pev(ent,pev_euser1)
	new damage = pev(ent,pev_euser2)
	
	if (pev(ent,pev_ltime) < halflife_time() || !is_user_alive(id) || !HasFlag(id,Flag_Ignite))
	{
		RemoveFlag(id,Flag_Ignite)
		Remove_All_Tents(id)
		Display_Icon(id ,0 ,"dmg_heat" ,200,0,0)
		
		remove_entity(ent)		
		return PLUGIN_CONTINUE
	}
	
	
	//Display ignite tent and icon
	Display_Tent(id,sprite_ignite,2)
	Display_Icon(id ,1 ,"dmg_heat" ,200,0,0)
	
	new origin[3]
	get_user_origin(id,origin)
	
	//Make some burning effects
	message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte( TE_SMOKE ) // 5
	write_coord(origin[0])
	write_coord(origin[1])
	write_coord(origin[2])
	write_short( sprite_smoke )
	write_byte( 22 )  // 10
	write_byte( 10 )  // 10
	message_end()
	
	//Decals
	message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte( TE_GUNSHOTDECAL ) // decal and ricochet sound
	write_coord( origin[0] ) //pos
	write_coord( origin[1] )
	write_coord( origin[2] )
	write_short (0) // I have no idea what thats supposed to be
	write_byte (random_num(199,201)) //decal
	message_end()
	
	
	//Do the actual damage
	change_health(id,-damage,attacker,"world")
	
	set_pev(ent,pev_nextthink, halflife_time() + 1.5)
	
	
	return PLUGIN_CONTINUE
}

01 czerwiec 2010 - 14:46:
Pomoże ktoś?

Użytkownik Screeaam... edytował ten post 31.05.2010 20:42





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

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