Code:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <fakemeta>
#include <engine>
new avatars[33]
new theSprite
new theSprite2
new theSprite3
new SSJ4Int
new SSJ4GInt
new spark
new sound
new weaponName[41]
new weaponId
new kamestarta, kamecharge, kameab, kametrail
new bbkamestart, bbkamehead, bbkamecharge, bbkame
public client_PostThink(id)
{
if ( SSJ4Int==1 )
{
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,1)
entity_set_float( id, EV_FL_renderamt, 0.0 );
new entity;
new maxentities = get_global_int(GL_maxEntities);
for( entity = 1; entity < maxentities; entity++) {
if ( !is_valid_ent( entity ) )
continue;
new owner = entity_get_edict( entity, EV_ENT_owner );
if( owner == id ) {
new szModel[32];
entity_get_string( entity, EV_SZ_model, szModel, 31 );
if( equal( szModel, "turbo" ) != -1 ) {
entity_set_int( entity, EV_INT_skin, 3 ); // replace skin number with number from 1 to 5
}
}
}
}
else if (SSJ4Int==0)
{
}
return PLUGIN_CONTINUE
}
public plugin_init()
{
register_plugin("ESF SSJ4","Alpha","Raupe")
register_forward( FM_EmitSound, "EmitSound" )
register_message( get_user_msgid( "Powerup" ), "PowerupMessage" )
register_message( get_user_msgid( "EETrail" ), "trail" )
register_cvar("esf_allowtransform","0")
register_event("CurWeapon", "trail", "be", "1=1")
register_event("CurWeapon", "Get_WeaponName", "be", "1=1")
register_clcmd("ascend","Block_Cmd")
register_clcmd( "SSJ4" ,"SSJ4")
register_clcmd( "split" ,"Split_Attack")
register_clcmd( "unssj4","UnSSJ4")
return PLUGIN_CONTINUE
}
public SSJ4 (id)
{
set_task(14.0,"active_Vegeta",id)
set_task(14.0,"active_Goku",id)
set_task(0.0,"SSJ4_Vegeta",id)
set_task(0.0,"SSJ4_Goku",id)
return PLUGIN_HANDLED
}
public SSJ4_Vegeta (id)
{
new powerlevel = get_pdata_int(id,460);
if ( entity_get_int( id, EV_INT_playerclass) == 8 && powerlevel > 5000000 )
{
set_task(4.0,"spawn_sprite2",id)
set_task(8.0,"spawn_sprite2",id)
set_task(7.0,"Trans_light",id)
set_task(6.0,"Trans_light",id)
set_task(5.0,"Trans_light",id)
set_task(8.0,"Trans_light",id)
set_task(5.0,"TransformFX",id)
set_task(0.5,"ssj4Vegeta_sound",id)
set_task(8.0,"ssj4Vegeta_sound2",id)
set_task(19.0,"ssj4Vegeta_sound3",sound)
set_task(17.0,"ssj4Vegeta_sound4",id)
set_task(19.0,"remove",id)
set_task(0.5,"Extras",id)
set_task(0.2,"IMPLOSION",id,_,_,"b")
set_task(0.2,"IMPLOSION",id,_,_,"b")
set_task(0.3,"Sequens",id,_,_,"b")
client_cmd(id,"bind t wait")
client_cmd(id,"bind e wait")
}
return PLUGIN_HANDLED
}
public SSJ4_Goku (id)
{
new powerlevel = get_pdata_int(id,460);
if ( entity_get_int( id, EV_INT_playerclass) == 2 && powerlevel > 5000000 )
{
set_task(20.0,"spawn_sprite2",id)
set_task(19.5,"spawn_sprite2",id)
set_task(19.0,"spawn_sprite2",id)
set_task(21.0,"spawn_sprite3",id)
set_task(0.0,"spawn_sprite4",id,_,_,"b")
set_task(0.1,"ssj4Goku_sound2",id)
set_task(8.0,"ssj4Goku_sound",id)
set_task(17.0,"ssj4Goku_sound3",id)
set_task(19.0,"ssj4Goku_sound4",sound)
set_task(7.0,"Trans_light",id)
set_task(6.0,"Trans_light",id)
set_task(5.0,"Trans_light",id)
set_task(8.0,"Trans_light",id)
set_task(19.0,"Trans_light",id)
set_task(16.0,"Trans_light",id)
set_task(17.0,"Trans_light",id)
set_task(18.0,"Trans_light",id)
set_task(5.0,"TransformFX",id)
set_task(19.0,"remove",id)
set_task(0.2,"Extras",id)
set_task(0.3,"Sequens",id,_,_,"b")
set_task(0.5,"EXPLOSION",id,_,_,"b")
client_cmd(id,"bind t wait")
client_cmd(id,"bind e wait")
}
return PLUGIN_HANDLED
}
public active_Vegeta (id)
{
if (!(get_user_flags(id)&ADMIN_LEVEL_A)) {
return PLUGIN_HANDLED
}
new powerlevel = get_pdata_int(id,460);
if ( entity_get_int( id, EV_INT_playerclass) == 8 && powerlevel > 5000000 )
{
avatars[id] = create_entity( "env_model" );
SSJ4Int=1
client_print(id, print_chat, " You are now SSJ 4. ")
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,1)
give_item(id,"weapon_finalflash")
entity_set_int( id, EV_INT_rendermode, kRenderTransAdd );
entity_set_float( id, EV_FL_renderamt, 1.0 );
entity_set_int( avatars[id], EV_INT_movetype, MOVETYPE_FOLLOW );
entity_set_edict( avatars[id], EV_ENT_aiment, id );
entity_set_model( avatars[id], "models/player/ssj4vegeta/ssj4vegeta.mdl")
set_pdata_int(id, 460,powerlevel + 50000000 )
}
return PLUGIN_HANDLED
}
public active_Goku (id)
{
new powerlevel = get_pdata_int(id,460);
if ( entity_get_int( id, EV_INT_playerclass) == 2 && powerlevel > 5000000 )
{
new powerlevel = get_pdata_int(id,460);
avatars[id] = create_entity( "env_model" );
SSJ4Int=1
SSJ4GInt=1
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,1)
entity_set_int( id, EV_INT_rendermode, kRenderTransAdd );
entity_set_float( avatars[id], EV_FL_renderamt, 1.0 );
entity_set_int( avatars[id], EV_INT_movetype, MOVETYPE_FOLLOW );
entity_set_edict( avatars[id], EV_ENT_aiment, id );
entity_set_model( avatars[id], "models/player/ssj4goku/ssj4goku.mdl")
set_pdata_int(id, 460,powerlevel + 60000000 )
}
return PLUGIN_CONTINUE
}
public Split_Attack (id)
{
if ( entity_get_int( id, EV_INT_playerclass) == 2)
{
avatars[id] = create_entity( "info_target" );
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,1)
entity_set_int( id, EV_INT_rendermode, kRenderTransAdd );
entity_set_float( avatars[id], EV_FL_renderamt, 1.0 );
entity_set_int( avatars[id], EV_INT_movetype, MOVETYPE_FOLLOW );
entity_set_model( avatars[id], "models/player/ssj4goku/ssj4goku.mdl")
}
return PLUGIN_HANDLED
}
public UnSSJ4 (id)
{
remove_task(id)
user_kill(id)
SSJ4Int=0
SSJ4GInt=0
set_user_rendering(id,kRenderFxGlowShell,0,0,0,kRenderTransAlpha,255)
set_pdata_int(id, 460, 6000000 )
set_entity_visibility(avatars[id], 0)
return PLUGIN_HANDLED
}
public Get_WeaponName(id)
{
if (SSJ4GInt==1)
{
weaponId = read_data(2)
get_weaponname(weaponId, weaponName, 40)
if(weaponId == 6) {
new ent, Float:origin[3];
entity_get_vector(id,EV_VEC_origin,origin);
while((ent = find_ent_in_sphere(ent,origin,64.0)) != 0) {
new model[32];
entity_get_string(ent,EV_SZ_model,model,31);
if(containi(model,"sprites/kamecharge.spr") != -1) {
entity_set_model(ent,"sprites/10xkamecharge.spr");
}
}
}
}
return PLUGIN_CONTINUE
}
public Block_Cmd(id) {
if (get_cvar_num("esf_allowtransform")==0)
client_cmd(id,"descend")
else
return PLUGIN_CONTINUE
return PLUGIN_HANDLED
}
public trail(id)
{
if (SSJ4GInt==1)
{
weaponId = read_data(2)
get_weaponname(weaponId, weaponName, 40)
if (weaponId == 6)
{
set_msg_arg_int( 5, ARG_SHORT, kamecharge) // beam start
set_msg_arg_int( 6, ARG_SHORT, kamestarta) // beam head
set_msg_arg_int( 7, ARG_SHORT, kameab)
set_msg_arg_int( 8, ARG_SHORT, kametrail) // trail
set_msg_arg_int( 9, ARG_BYTE, get_msg_arg_int(9) * 7 )
}
}
if (SSJ4GInt==0)
{
weaponId = read_data(2)
get_weaponname(weaponId, weaponName, 40)
if (weaponId == 6)
{
set_msg_arg_int( 5, ARG_SHORT, bbkamestart )
set_msg_arg_int( 6, ARG_SHORT, bbkamehead )
set_msg_arg_int( 7, ARG_SHORT, bbkamecharge )
set_msg_arg_int( 8, ARG_SHORT, bbkame )
set_msg_arg_int( 9, ARG_BYTE, get_msg_arg_int(9) * 1 )
}
}
return PLUGIN_CONTINUE
}
public remove(id)
{
remove_task(id)
client_cmd(id, "+powerup;wait;wait;-powerup")
client_cmd(id, "turbo")
client_cmd(id, "bind t turbo")
client_cmd(id, "bind e +powerup")
return PLUGIN_HANDLED
}
public PowerupMessage( msgid, dest, pEnt )
{
if ( SSJ4Int==1 )
{
set_msg_arg_int( 2, ARG_BYTE, 250 );
set_msg_arg_int( 3, ARG_BYTE, 0 );
set_msg_arg_int( 4, ARG_BYTE, 0 );
}
return PLUGIN_CONTINUE
}
public Extras(id)
{
client_cmd(id, "+powerup;wait;wait;+powerup")
client_cmd(id, "turbo")
return PLUGIN_HANDLED
}
public Extras2(id)
{
set_task(0.21,"spawn_sprite",id,_,_,"b")
return PLUGIN_HANDLED
}
public Sequens(id)
{
entity_set_int(id, EV_INT_sequence, 102 )
return PLUGIN_HANDLED
}
public spawn_sprite(id)
{
new spriteorigin[3];
get_user_origin(id,spriteorigin);
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(17);
write_coord(spriteorigin[0]);
write_coord(spriteorigin[1]);
write_coord(spriteorigin[2]);
write_short(theSprite);
write_byte(20);
write_byte(200);
message_end();
return PLUGIN_HANDLED
}
public spawn_sprite2(id)
{
new spriteorigin[3];
get_user_origin(id,spriteorigin);
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(17);
write_coord(spriteorigin[0]);
write_coord(spriteorigin[1]);
write_coord(spriteorigin[2]);
write_short(theSprite2);
write_byte(20);
write_byte(200);
message_end();
return PLUGIN_HANDLED
}
public spawn_sprite3(id)
{
new spriteorigin[3];
get_user_origin(id,spriteorigin);
message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
write_byte(17);
write_coord(spriteorigin[0]);
write_coord(spriteorigin[1]);
write_coord(spriteorigin[2]);
write_short(theSprite3);
write_byte(20);
write_byte(200);
message_end();
return PLUGIN_HANDLED
}
public spawn_sprite4(id)
{
new vec1[3]
get_user_origin(id,vec1)
message_begin(MSG_PVS, SVC_TEMPENTITY, vec1)
write_byte(9) // TE_SPARKS
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
message_end()
return PLUGIN_HANDLED
}
public IMPLOSION(id,level,cid)
{
new vec1[3]
get_user_origin(id,vec1)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY,vec1)
write_byte(14) // TE_IMPLOSION
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_byte(100)
write_byte(20)
write_byte(5)
message_end()
return PLUGIN_HANDLED
}
public EXPLOSION(id,level,cid)
{
new vec1[3]
get_user_origin(id,vec1)
message_begin(MSG_BROADCAST, SVC_TEMPENTITY,vec1)
write_byte(12) // TE_EXPLOSION2
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2])
write_byte(188)
write_byte(10)
message_end()
return PLUGIN_HANDLED
}
public Trans_light(id,level,cid)
{
new vec1[3]
get_user_origin(id,vec1)
message_begin( MSG_BROADCAST,SVC_TEMPENTITY,vec1)
write_byte( 21 )
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2] + 20)
write_coord(vec1[0])
write_coord(vec1[1])
write_coord(vec1[2] + 2000)
write_short( spark )
write_byte( 0 )
write_byte( 0 )
write_byte( 24 )
write_byte( 128 )
write_byte( 0 )
write_byte( 180 )
write_byte( 255 )
write_byte( 255 )
write_byte( 255 )
write_byte( 0 )
message_end()
return PLUGIN_HANDLED
}
public TransformFX(id)
{
message_begin(MSG_ALL,get_user_msgid("TransformFX"));
write_byte(id);
write_byte(50);
write_byte(0);
message_end();
return PLUGIN_HANDLED
}
public Emit_sound(id)
{
emit_sound(id,CHAN_AUTO, "ambience/gamestartup_ingame.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
public ssj4Goku_sound(id)
{
emit_sound(id,CHAN_AUTO, "ssj4Goku/trans.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
public ssj4Goku_sound2(id)
{
emit_sound(id,CHAN_AUTO, "ssj4Goku/trans2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
public ssj4Goku_sound3(id)
{
emit_sound(id,CHAN_AUTO, "ssj4Goku/scream.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
public ssj4Goku_sound4(id)
{
emit_sound(id,CHAN_AUTO, "ssj4Goku/scream2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
public ssj4Vegeta_sound(id)
{
emit_sound(id,CHAN_AUTO, "ssj4Vegeta/trans2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
public ssj4Vegeta_sound2(id)
{
emit_sound(id,CHAN_AUTO, "ssj4Vegeta/trans.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
public ssj4Vegeta_sound3(id)
{
emit_sound(id,CHAN_AUTO, "ssj4Vegeta/scream.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
public ssj4Vegeta_sound4(id)
{
emit_sound(id,CHAN_AUTO, "ssj4Vegeta/scream2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
return PLUGIN_HANDLED
}
public EmitSound(entity, channel, const sound[])
{
if ( SSJ4Int==1 )
{
if( equal( sound, "vegeta/finalflash.wav" ))
{
emit_sound(entity, channel, "ssj4Vegeta/finalflash.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
if( equal( sound, "vegeta/ha.wav" ))
{
emit_sound(entity, channel, "ssj4Vegeta/ha.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
if( equal( sound, "vegeta/death.wav" ))
{
emit_sound(entity, channel, "ssj4Vegeta/death.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
if( equal( sound, "vegeta/gallitgun.wav" ))
{
emit_sound(entity, channel, "ssj4Vegeta/gallitgun.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
if( equal( sound, "vegeta/pain1.wav" ))
{
emit_sound(entity, channel, "ssj4Vegeta/pain1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
if( equal( sound, "vegeta/pain2.wav" ))
{
emit_sound(entity, channel, "ssj4Vegeta/pain2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
if( equal( sound, "vegeta/pain3.wav" ))
{
emit_sound(entity, channel, "ssj4Vegeta/pain3.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
if( equal( sound, "vegeta/pain4.wav" ))
{
emit_sound(entity, channel, "ssj4Vegeta/pain4.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
if( equal( sound, "vegeta/finalflash_charge.wav" ))
{
emit_sound(entity, channel, "ssj4Vegeta/finalflash_charge.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
if( equal( sound, "goku/kamehame.wav" ))
{
emit_sound(entity, channel, "ssj4Goku/kamehame.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
if( equal( sound, "goku/ha.wav" ))
{
emit_sound(entity, channel, "ssj4Goku/ha.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
if( equal( sound, "goku/death.wav" ))
{
emit_sound(entity, channel, "ssj4Goku/death.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
if( equal( sound, "goku/solarflare.wav" ))
{
emit_sound(entity, channel, "ssj4Goku/solarflare.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
if( equal( sound, "goku/pain1.wav" ))
{
emit_sound(entity, channel, "ssj4Goku/pain1.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
if( equal( sound, "goku/pain2.wav" ))
{
emit_sound(entity, channel, "ssj4Goku/pain2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
if( equal( sound, "goku/pain3.wav" ))
{
emit_sound(entity, channel, "ssj4Goku/pain3.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
if( equal( sound, "goku/pain4.wav" ))
{
emit_sound(entity, channel, "ssj4Goku/pain4.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
return FMRES_SUPERCEDE;
}
}
return FMRES_IGNORED;
}
public plugin_precache()
{
precache_model("models/player/ssj4goku/ssj4goku.mdl")
precache_model("models/player/ssj4vegeta/ssj4vegeta.mdl")
precache_model("models/player/oozaru/oozaru.mdl")
precache_model("sprites/kamecharge.spr")
precache_model("sprites/10xkamecharge.spr")
precache_sound("ssj4Goku/kamehame.wav")
precache_sound("ssj4Goku/ha.wav")
precache_sound("ssj4Goku/pain4.wav")
precache_sound("ssj4Goku/pain3.wav")
precache_sound("ssj4Goku/pain2.wav")
precache_sound("ssj4Goku/pain1.wav")
precache_sound("ssj4Goku/solarflare.wav")
precache_sound("ssj4Goku/death.wav")
precache_sound("ssj4Goku/kamehame.wav")
precache_sound("ssj4Vegeta/ha.wav")
precache_sound("ssj4Vegeta/pain4.wav")
precache_sound("ssj4Vegeta/pain3.wav")
precache_sound("ssj4Vegeta/pain2.wav")
precache_sound("ssj4Vegeta/pain1.wav")
precache_sound("ssj4Vegeta/death.wav")
precache_sound("ssj4Goku/trans2.wav")
precache_sound("ssj4Goku/scream.wav")
precache_sound("ssj4Goku/scream2.wav")
precache_sound("ssj4Goku/trans.wav")
precache_sound("ssj4Vegeta/trans2.wav")
precache_sound("ssj4Vegeta/scream.wav")
precache_sound("ssj4Vegeta/scream2.wav")
precache_sound("ssj4Vegeta/trans.wav")
theSprite = precache_model("sprites/SSJ4F.spr")
theSprite2 = precache_model("sprites/SSJ4_2.spr")
theSprite3 = precache_model("sprites/SSJ4_4.spr")
spark = precache_model("sprites/lgtning.spr");
kamestarta = precache_model("sprites/10xkameastart.spr")
kameab = precache_model("sprites/10xkamea.spr")
kametrail = precache_model("sprites/10xkametrail.spr")
kamecharge = precache_model("sprites/10xkamecharge.spr")
bbkamestart = precache_model("sprites/kamehamehabstart.spr")
bbkamehead = precache_model("sprites/kamehamehabstart.spr")
bbkamecharge = precache_model("sprites/kamehamehabstart.spr")
bbkame = precache_model("sprites/kamehamehatrail.spr")
return PLUGIN_CONTINUE
}