Descrição : plugin de transformar player em foguete apenas admin tem acesso
Plugin : amx_rocket
Creditos: MtsLa!<3.L | dAsm.dll | f117bomb
Comandos: amx_rocket "nick do player"
Arquivos : .sma e .inc
-----------------------|| SMA ||-------------------------
-----------------------|| INC ||-------------------------
Plugin : amx_rocket
Creditos: MtsLa!<3.L | dAsm.dll | f117bomb
Comandos: amx_rocket "nick do player"
Arquivos : .sma e .inc
-----------------------|| SMA ||-------------------------
Código:
/* AMX Mod script.
*
* (c) Copyright 2002-2003, f117bomb
* This file is provided as is (no warranties).
*/
#include < amxmodx >
#include < amxmisc >
#include < fun>
#include < client_printcolor >
/*
* Makes user turn into a rocket and explode in the air with visual effects
* Usage: amx_rocket <authid, nick, @team or #userid>
*
*/
new m_blueflare2,mflash,gmsgDamage,white,smoke,rocket_z[33]
/********************************** ROCKET FUNCTIONS *****************************/
public rocket_liftoff(svictim[]) {
new victim = svictim[0]
set_user_gravity(victim,-0.50)
client_cmd(victim,"+jump;wait;wait;-jump")
emit_sound(victim, CHAN_VOICE, "weapons/rocket1.wav", 1.0, 0.5, 0, PITCH_NORM)
rocket_effects(svictim)
return PLUGIN_CONTINUE
}
public rocket_effects(svictim[]) {
new victim = svictim[0]
if ( is_user_alive(victim) ) {
new vorigin[3]
get_user_origin(victim,vorigin)
message_begin(MSG_ONE, gmsgDamage, {0,0,0}, victim)
write_byte(30) // dmg_save
write_byte(30) // dmg_take
write_long(1<<16) // visibleDamageBits
write_coord(vorigin[0]) // damageOrigin.x
write_coord(vorigin[1]) // damageOrigin.y
write_coord(vorigin[2]) // damageOrigin.z
message_end()
if(rocket_z[victim] == vorigin[2])
rocket_explode(svictim)
rocket_z[victim] = vorigin[2]
//Draw Trail and effects
//TE_SPRITETRAIL - line of moving glow sprites with gravity, fadeout, and collisions
message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
write_byte( 15 )
write_coord( vorigin[0]) // coord, coord, coord (start)
write_coord( vorigin[1])
write_coord( vorigin[2])
write_coord( vorigin[0]) // coord, coord, coord (end)
write_coord( vorigin[1])
write_coord( vorigin[2] - 30)
write_short( m_blueflare2 ) // short (sprite index)
write_byte( 5 ) // byte (count)
write_byte( 1 ) // byte (life in 0.1's)
write_byte( 1 ) // byte (scale in 0.1's)
write_byte( 10 ) // byte (velocity along vector in 10's)
write_byte( 5 ) // byte (randomness of velocity in 10's)
message_end()
//TE_SPRITE - additive sprite, plays 1 cycle
message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
write_byte( 17 )
write_coord(vorigin[0]) // coord, coord, coord (position)
write_coord(vorigin[1])
write_coord(vorigin[2] - 30)
write_short( mflash ) // short (sprite index)
write_byte( 15 ) // byte (scale in 0.1's)
write_byte( 255 ) // byte (brightness)
message_end()
set_task(0.2, "rocket_effects" , 0 , svictim, 2)
}
return PLUGIN_CONTINUE
}
public rocket_explode(svictim[]) {
new victim = svictim[0]
if ( is_user_alive(victim) ) { /*If user is alive create effects and user_kill */
new vec1[3]
get_user_origin(victim,vec1)
// blast circles
message_begin( MSG_BROADCAST,SVC_TEMPENTITY,vec1)
write_byte( 21 )
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2] - 10)
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2] + 1910)
write_short( white )
write_byte( 0 ) // startframe
write_byte( 0 ) // framerate
write_byte( 2 ) // life
write_byte( 16 ) // width
write_byte( 0 ) // noise
write_byte( 188 ) // r
write_byte( 220 ) // g
write_byte( 255 ) // b
write_byte( 255 ) //brightness
write_byte( 0 ) // speed
message_end()
//Explosion2
message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
write_byte( 12 )
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_byte( 188 ) // byte (scale in 0.1's)
write_byte( 10 ) // byte (framerate)
message_end()
//Smoke
message_begin( MSG_BROADCAST,SVC_TEMPENTITY,vec1)
write_byte( 5 )
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_short( smoke )
write_byte( 2 )
write_byte( 10 )
message_end()
user_kill(victim,1)
}
//stop_sound
emit_sound(victim, CHAN_VOICE, "weapons/rocket1.wav", 0.0, 0.0, (1<<5), PITCH_NORM)
set_user_maxspeed(victim,1.0)
set_user_gravity(victim,1.00)
return PLUGIN_CONTINUE
}
public rocket_player(id,level,cid) {
if (!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED
new arg[32],arg2[3]
read_argv(1,arg,31)
read_argv(2,arg2,2)
if (arg[0]=='@') {
new players[32], inum , name[32]
get_players(players,inum,"ae",arg[1])
if (inum==0){
client_printcolor(id,"!y[!tTHV!y]!t Nenhum jogador(a) de tal !gEquipe!y.")
return PLUGIN_HANDLED
}
for(new a=0;a<inum;++a){
if (get_user_flags(players[a])&ADMIN_IMMUNITY){
get_user_name(players[a],name,31)
client_printcolor(id,"!y[!tTHV!y]!t Ignorado !g^"%s^" !tporque o jogador(a) tem !gImunidade!y.",name)
continue
}
new sPlayer[2]
sPlayer[0] = players[a]
emit_sound(players[a],CHAN_WEAPON ,"weapons/rocketfire1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
set_user_maxspeed(players[a],0.01)
set_task(1.2, "rocket_liftoff" , 0 , sPlayer, 2)
}
}
else {
new player = cmd_target(id,arg,5)
if (!player)
return PLUGIN_HANDLED
new sPlayer[2]
sPlayer[0] = player
emit_sound(player,CHAN_WEAPON ,"weapons/rocketfire1.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
set_user_maxspeed(player,0.01)
set_task(1.2, "rocket_liftoff" , 0 , sPlayer, 2)
new playername[32]
get_user_name(player,playername,31)
client_printcolor(id,"!y[!tTHV!y]!y O Jogador(a) !g^"%s^" !tFoi Transformado em !yFoguete!y",playername)
}
return PLUGIN_HANDLED
}
public plugin_precache() {
mflash = precache_model("sprites/muzzleflash.spr")
m_blueflare2 = precache_model( "sprites/blueflare2.spr")
smoke = precache_model("sprites/steam1.spr")
white = precache_model("sprites/white.spr")
precache_sound("weapons/rocketfire1.wav")
precache_sound("weapons/rocket1.wav")
return PLUGIN_CONTINUE
}
public plugin_init() {
register_plugin("Admin Rocket","1.3","f117bomb")
register_concmd("amx_rocket","rocket_player",ADMIN_SLAY,"<authid, nick, @team or #userid>")
gmsgDamage = get_user_msgid("Damage")
return PLUGIN_CONTINUE
}
-----------------------|| INC ||-------------------------
Código:
stock client_printcolor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4") // Chat Verde
replace_all(msg, 190, "!y", "^1") // Chat Normal
replace_all(msg, 190, "!t", "^3") // Chat Do Time Tr=Vermelho Ct=Azul Spec=Branco
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}