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

Pytaniedo Micza, Verta, G[o]Q i wszystkich ktorzy sie znaja na diablo


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

#1 false

    Wszechmogący

  • Użytkownik

Reputacja: 53
Pomocny

  • Postów:652
  • Lokalizacja:z Polski
Offline

Napisano 22.04.2010 20:22

/* Air Raid
   A Request Slay Plugin
   
   by CubicVirtuoso
     September, 2005
     
   Requested by: PsyCotiCtron
   
   Optimized for all mods
   
   Admins are able to trigger a set of events first starting with a siren, then a public announcement
   followed by plane sounds and bombs dropping from the sky following on random locations. Also 
   included is the command to trigger the air raid. 
   
   
   **COMMANDS**
   amx_airraid :: Triggers the air-raid sequence of events
   
   **UPDATES**
   
   Version 1.0:
   - Initial Release
   
*/

//--------------------------------------------------------------------------------------------------

#define MAXBOMBS 15 // Number of bombs
#define BETWEENTIME 10 // Must be greater or equal to 1
#define RADIUS 800 // Radius of bomb drops

#include <amxmodx> // Amx mod include definitions
#include <fun> // Fun Module
#include <amxmisc> // Useful functions
#include <engine> // Engine Plugin
#include <zombieplague>
//--------------------------------------------------------------------------------------------------

// Declaring info variables
new PLUGIN[]="Air Raid"
new AUTHOR[]="CubicVirtuoso"
new VERSION[]="1.0"

new inuse = 0 // variable to tell whether used already or not
new donebombs = MAXBOMBS // tells the engine how many bombs are finished dropping
new bombs[MAXBOMBS] // bomb array
new bool:hasraid[33]
new Float:timers[MAXBOMBS] // timers array
new SpriteExplosion

//Extra Item Values
new g_itemid_airraid
new const g_item_name[] = { "[ZP] Extra Air Raid Strike" }
const g_item_cost = 100
//--------------------------------------------------------------------------------------------------

// initalize function
public plugin_init()
{
	register_plugin(PLUGIN,VERSION,AUTHOR) // Register Function
	register_clcmd("say /airraid", "CMD_airraid") // Register Airraid Command
	g_itemid_airraid = zp_register_extra_item(g_item_name, g_item_cost, ZP_TEAM_HUMAN) 
	register_logevent("endround", 2, "0=World triggered", "1=Round_End")
}

//--------------------------------------------------------------------------------------------------

// Precache
public plugin_precache()
{
	precache_sound("ambience/siren.wav") // Siren Sound
	precache_sound("ambience/jetflyby1.wav") // Fly By Sound
	precache_model("models/rpgrocket.mdl") // Bomb Model
	SpriteExplosion = precache_model("sprites/bexplo.spr") // precache explosion sprite
}

//--------------------------------------------------------------------------------------------------
// Player buys our upgrade, set the unlimited ammo flag
public zp_extra_item_selected(id, itemid)
{
	if (itemid == g_itemid_airraid){
		hasraid[id] = true
		client_print(id, print_center, "You just bought an Air Raid Strike say /airraid to call in a STRIKE!!")
	}
}
public CMD_airraid(id)
{
	new k
	
	if (!is_user_alive(id) || zp_get_user_zombie(id)) // Checks if the command user has access
		return PLUGIN_HANDLED

	
	if (inuse == 1 && donebombs != MAXBOMBS)
	{
		client_print(id, print_chat, "You must wait longer before issuing another air strike")
		return PLUGIN_HANDLED
	}
	
	inuse = 1
	
	emit_sound(id,CHAN_AUTO, "ambience/siren.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
	
	new Float:ftime
	ftime = float(BETWEENTIME)
	
	set_task(ftime, "ACT_resetraid")
	set_task(5.0, "ACT_stopsound")
	set_task(6.0, "ACT_flybysound", id)
	
	set_task(6.0, "CRT_bomb", id)
	
	for (k = 0; k<MAXBOMBS; k++)
	{
		timers[k] = random_float(1.0,2.0)
	}
	
	return PLUGIN_HANDLED
}

public ACT_explodebomb(id,posistion)
{
	new location[3]
	new Float:Vec[3]
	IVecFVec(location, Vec)
	entity_get_vector(bombs[posistion], EV_VEC_origin, Vec)
	FVecIVec(Vec, location)
	location[2] = location[2] + 20
	CRT_explosion(location, SpriteExplosion, 80, 10, 0)
	REM_bomb(posistion)
	
	new players[32]
	new playercount
	
	get_players(players,playercount,"a")
	
	for (new m=0; m<playercount; m++)
	{
		new playerlocation[3]
		new resultdistance
		
		get_user_origin(players[m], playerlocation)
		
		resultdistance = get_distance(playerlocation,location)
		
		if(resultdistance < 100 && zp_get_user_zombie(id))
		{ 
		
			fakedamage(players[m],"Air Raid",3000.0,DMG_BLAST)
		}
	}
}

public REM_bomb(posistion)
{
	remove_entity(bombs[posistion])
	bombs[posistion] = 0
}

public CRT_bomb(id)
{
	new location[3]
	new randomlocation[3]
	new endrandomlocation[3]
	new randomx
	new randomy
	
	get_user_origin(id, location)
	
	location[2] = location[2] + 500
	
	donebombs = 0
	
	for (new i=0; i<MAXBOMBS; i++)
	{
		randomx = random_num(-RADIUS,RADIUS)
		randomy = random_num(-RADIUS,RADIUS)
		
		randomlocation[0] = location[0]+1*randomx
		randomlocation[1] = location[1]+1*randomy
		randomlocation[2] = location[2]
		
		new Float:LocVec[3]
		IVecFVec(randomlocation, LocVec)
		
		endrandomlocation[0] = randomlocation[0]
		endrandomlocation[1] = randomlocation[1]
		endrandomlocation[2] = randomlocation[2] - 5
		
		new Float:EndVec[3]
		IVecFVec(endrandomlocation, EndVec)
		
		new Float:VeloVec[3]
		VeloVec[0] = (EndVec[0] - LocVec[0])*1+1
		VeloVec[1] = (EndVec[1] - LocVec[1])*1+1
		VeloVec[2] = (EndVec[2] - LocVec[2])*1+1
		
		
		bombs[i] = create_entity("info_target") // creates the bombs
		if (!bombs[i]) // if not exist
			return PLUGIN_HANDLED
		
		entity_set_string(bombs[i], EV_SZ_classname, "Bomb") // set name
		entity_set_edict(bombs[i], EV_ENT_owner, id) // set owner
		entity_set_int(bombs[i], EV_INT_solid, 1) // not a solid but interactive
		entity_set_int(bombs[i], EV_INT_movetype, 6) // set move type to toss
		entity_set_model(bombs[i], "models/rpgrocket.mdl") // enterance sprite	
		entity_set_origin(bombs[i], LocVec) // start posistion	
		entity_set_vector(bombs[i], EV_VEC_velocity, VeloVec) // follow velocity			
		DispatchSpawn(bombs[i]) // Dispatches the Fire
	}
	
	for (new k = 0; k<MAXBOMBS; k++)
	{
		set_task(timers[k], "ACT_explodebomb", k)
	}
	
	return PLUGIN_CONTINUE
}

public ACT_resetraid()
{
	inuse = 0
	return PLUGIN_CONTINUE
}

public ACT_stopsound()
{
	client_cmd(0,"stopsound") // stops sound on all clients 
	return PLUGIN_CONTINUE
}

public ACT_flybysound(id)
{
	emit_sound(id,CHAN_AUTO, "ambience/jetflyby1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
	return PLUGIN_CONTINUE
}

public CRT_explosion(location[3], spritename, scale, framerate, flags)
{
	message_begin( MSG_BROADCAST, SVC_TEMPENTITY)
	write_byte(3) // TE_EXPLOSION
	write_coord(location[0])
	write_coord(location[1])
	write_coord(location[2])
	write_short(spritename)
	write_byte(scale)
	write_byte(framerate)
	write_byte(flags)
	message_end()
}

Jak moge "wkomponować" ten plug do diablo ?

tak zeby umiejetnosc dla klasy taka jak np:

player_b_inv[id]

;d
  • +
  • -
  • 0

#2 Screeaam...

    ; ooo

  • Zbanowany

Reputacja: 154
Profesjonalista

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

Napisano 22.04.2010 20:45

A co robi plugin?

Po drugie tam masz all napisane, init do init etc. xD

#3 false

    Wszechmogący

  • Autor tematu
  • Użytkownik

Reputacja: 53
Pomocny

  • Postów:652
  • Lokalizacja:z Polski
Offline

Napisano 23.04.2010 11:58

A co robi plugin?

Po drugie tam masz all napisane, init do init etc. xD


No to screeam moze pomozesz ? :D

24 kwiecień 2010 - 21:05:
@REFRESH
  • +
  • -
  • 0




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

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