/*======================================================== Author: Dutchmeat Last update: 23 April 2007. Features: **Overall**: -Increased Powerlevel, Health, Speed, Swooping-speed -Ascending menu -Spiritbomb nuke 'fix' -Two help commands -M_pitch and M_yaw get's decreased when swooping(due the great speed) and increased when stopped swooping **Goku** -Goku SSJ4 Transformation -Red Kamehameha for Goku. -Energy 'surge' for Goku. **Vegeta** -Vegeta SSJ4 Transformation ========================================================*/ #include #include #include #include #include #include #define TE_BEAMTORUS 19 // Screen aligned beam ring, expands to max radius over lifetime #define SND_STOP (1<<5) #define DELAY 30.0 #define MENU_SIZE 256 #define MENU_PLAYERS 8 new healtha = 130 new g_nMenuPosition new g_nMenuPlayers[32] new white new wave new SpriteLightning new swooptrail new PlayerForm[33] // Form normal or 2nd, numbers are weird new PlayerExtra[33] // If Extra powered up or not new PlayerTrans[33] // Currently transforming. new PlayerOrigSpeed[33] // Original speed to change back during transforming if cancelled. new xkamestart, xkamehead, xkamecharge, xkame new kills[33] new oldPlLevel[33] new FLOATNM[10] = "Dutchmeat" new choise[33] new blockSB[33] new redsphere[33] new sphere[33] new turbo[33] new oldhp[33] new swooping[33] // i need a dynamic variable of swooping. new shield new dust new spr[33] new pusprite new machine[33] new Special[33] new attacking[33] //using the attack button new ctime[33] = 0 //chargebar time. new canattack[33] //attack! new specialattacker[33] //we know who attacked. new usedspecial[33] //we know that the dead one was killed by a special new eline[33][3] new fusionask[33] //someone requested a fusion, do Inradius new FuseOne[33] new g_iMsgScoreInfo new JubeiSelect[33] new JubeiExplosion[33] new kametorp new Float:g_last[33] new dust1 new zz=10, kk=0 new spr_flare[33] new flame public plugin_init() { register_plugin("ESF-EVM SSJ4","Alpha 1.0",FLOATNM) register_clcmd( "ssj4help" ,"SSJ4Help") register_clcmd( "ssj4info" ,"SSJ4Info") register_clcmd(".Special3","Special1") register_clcmd("ascend","Ascend") // Captures you trying to ascend register_clcmd("descend","toDescend") // Captures you trying to descend register_clcmd("test","TransformationGenerator") // register_clcmd("test2","test2") //register_clcmd("fusion","FusionMenu") register_cvar("ssj4_allow","1") // For allowing giji ssj yes or no register_cvar("ssj4_plneeded","0") // Minimum powerlevel for goku to giji ssj register_cvar("ssj4_minimumkills","0") register_cvar("customtransformations","0") register_cvar("gokutransfile","gokussj4.txt") register_cvar("vegetatransfile","vegetassj4.txt") register_event("ResetHUD","playerSpawn","b") // Player spawns after death register_event("Health","deadCheck","b") // Checks to see if player is dead. register_message( get_user_msgid( "EETrail" ), "trail" ); register_message( get_user_msgid( "Explosion" ), "Explomessage" ); register_message( get_user_msgid( "Powerup" ), "PowerupMessage" ) register_message( get_user_msgid( "Flare" ), "flare" ); register_forward( FM_EmitSound, "EmitSound" ); register_forward( FM_GetGameDescription, "GameDesc" ); register_message(get_user_msgid("DeathMsg"), "deathmessage") register_menucmd( register_menuid("To wich class do you want to ascend?: "), 1023, "MenuCommand" ) register_menucmd( register_menuid("Do you want to fuse with:"), 1023, "FuseConfirm" ) register_menucmd( register_menuid("Fusion Menu:"), 1023, "MenuAction" ) g_iMsgScoreInfo = get_user_msgid( "ScoreInfo" ) return PLUGIN_CONTINUE } public TransformationGenerator(id){ new transfile[64] = 0, class = WhichClass(id) if(get_cvar_num("customtransformations")==0) return PLUGIN_HANDLED if(class == 2) get_cvar_string("gokutransfile",transfile,63) else if(class == 8) get_cvar_string("vegetatransfile",transfile,63) if(file_exists(transfile)){ new line[80], len, Lines = 0,time[3] while (read_file(transfile, Lines++, line, 79, len)) { if (line[0] == ';') continue // line is a comment parse(line, line, 80,time,3) FunctionCheck(id,line, str_to_float(time)) } } return PLUGIN_HANDLED } public emitsound(params[]){ new id, sound[81] id = params[0] if(!file_exists (sound)) { console_print(id,"sound '%s' does not exist",sound) return } format(sound,80,params[1]); console_print(id,"DEBUG SOUND2 '%s'",sound) emit_sound(id,CHAN_BODY, params[1], 1.0, ATTN_NORM, 0, PITCH_NORM) } FunctionCheck(id,command[], Float:time){ new params[3] new sound if(!isalpha(command[0])) return PLUGIN_HANDLED if (get_func_id(command) == -1){ new temp[10] params[0] = id sound = str_to_num ( command ) //str_to_num(command, sound, sizeof(command)) params[1] = sound //console_print(id,"DEBUG SOUND1: '%s'",params[1]) set_task(time,"emitsound",1111+id,params) return PLUGIN_HANDLED } console_print(id,"command: '%s' time: '%f'",command,time) set_task(time,command,1111+id,params,2) return PLUGIN_HANDLED } public SetdefaultClass(id){ new result[60] entity_get_string ( id, EV_SZ_model, result, 60) if(equali(result,"models/player/ssj4goku/ssj4goku.mdl")){ entity_set_string(id, EV_SZ_model, "models/player/ecx.goku-ts/ecx.goku-ts.mdl") entity_set_model(id, "models/player/ecx.goku-ts/ecx.goku-ts.mdl") } if(equali(result,"models/player/ssj4vegeta/ssj4vegeta.mdl")){ entity_set_string(id, EV_SZ_model, "models/player/ecx.vegeta-ts/ecx.vegeta-ts.mdl") entity_set_model(id, "models/player/ecx.vegeta-ts/ecx.vegeta-ts.mdl") } } public WhichClass(id){ new result[60] entity_get_string ( id, EV_SZ_model, result, 60) if(equali(result,"models/player/ecx.goku-ts/ecx.goku-ts.mdl")) return 2; if(equali(result,"models/player/ecx.vegeta-ts/ecx.vegeta-ts.mdl")) return 8; return 0; } /* new effect7sprite public test(id){ //new origin[3] //get_user_origin(id,origin) new num = 1 new Float:origin[3] entity_get_vector(id,EV_VEC_origin,origin) origin[0] = origin[0] - 50 eline[id][num] = create_entity("env_sprite") entity_set_string(eline[id][num],EV_SZ_classname,"energy") entity_set_model(eline[id][num],"sprites/null.spr") entity_set_origin(eline[id][num],origin) entity_set_float(eline[id][num],EV_FL_scale,0.0) MeleeEffect(id,1) MeleeEffect(id,1) MeleeEffect(id,1) MeleeEffect(id,1) MeleeEffect(id,1) MESSAGE_BEGIN( MSG_PVS, gmsgMeleeFX, m_pAttacker->pev->origin); WRITE_BYTE (MELEE_ENDSHOCKWAVE); WRITE_BYTE ( m_pAttacker->entindex() ); MESSAGE_END(); message_begin(MSG_ALL,get_user_msgid( "Flare" ),{0,0,0}, id) write_long(eline[id][num]) write_short( effect7sprite); //flarea write_short( effect7sprite ); //flareb write_short( 8 ); //size write_short( xkame ) //trail write_short(6) //trail size write_coord( origin[0] ); //coord coord coord (position) write_coord( origin[1] ); write_coord( origin[2] ); message_end(); MESSAGE_BEGIN( MSG_ALL, gmsgFlare, NULL ); WRITE_LONG(pMagicAttack->entindex()); //end entity WRITE_SHORT(flarea); //start attachment WRITE_SHORT(flareb); //start sprites WRITE_SHORT( flSize*0.1 ); //size in .1's WRITE_SHORT(trail); //trail sprite WRITE_SHORT(KAMETORPEDO_SIZE_TRAIL_LENGTH * size); //trail length WRITE_COORD(vecStart.x); //start pos WRITE_COORD(vecStart.y); WRITE_COORD(vecStart.z); MESSAGE_END(); } */ public MeleeEffect(id,num){ new Float:origin[3] new iorigin[3] new meleemsg = get_user_msgid( "MeleeFX" ) get_user_origin(id,iorigin) entity_get_vector(id,EV_VEC_origin,origin) origin[0] -= 23 eline[id][num] = create_entity("env_sprite") entity_set_string(eline[id][num],EV_SZ_classname,"melee") entity_set_model(eline[id][num],"sprites/null.spr") entity_set_origin(eline[id][num],origin) entity_set_float(eline[id][num],EV_FL_scale,0.0) entity_set_int(eline[id][num], EV_INT_rendermode, kRenderTransAlpha) //native message_begin(dest, msg_type, const origin[3] = {0,0,0}, player = 0); message_begin(MSG_PVS,meleemsg,iorigin ) write_byte(num); //1 is normale melee , 2 = klein bubble 3= grote bubble, expands write_byte(eline[id][num]); message_end(); } public Elight(id){ if (PlayerTrans[id]){ new origin[3] get_user_origin(id,origin) message_begin(MSG_BROADCAST,SVC_TEMPENTITY, origin) write_byte( 27 ) write_coord( origin[0] ); //coord coord coord (position) write_coord( origin[1] ); write_coord( origin[2] ); write_byte( 20 ) //Radius write_byte(255) //Red write_byte( 0 ) //Green write_byte(0 ) //Blue write_byte( 255 ) //Brightness write_byte(200) //Life write_byte( 1) //Decay Rate message_end(); set_task(0.2,"Elight",id) } } public cloudseffect(params[]){ new id = params[0] new playerlocation[3] get_user_origin(id,playerlocation) new from[3] for(new a = 1; a <= 10; a++) { from[0] = playerlocation[0]+(random_num(-200,200)) // similiar from[1] = playerlocation[1]+(random_num(-200,200)) // similiar from[2] = playerlocation[2]+(random_num(0,100)) // similiar DrawBeam(playerlocation, from, 0, 100, 50 ); //change some of these numbers, to change the result. } } public lightningctrl(id) { if(is_valid_ent(spr[id])) { entity_set_float(spr[id], EV_FL_renderamt, 50.0) } if(!isBusy(id)){ switch ( random_num(1,2) ) { case 1 : set_task(0.5,"lightning1",id) case 2 : set_task(0.5,"lightning2",id) } } if(is_valid_ent(spr[id])) { remove_entity(spr[id]) } } public lightning1(id) { if(is_valid_ent(spr[id])) { remove_entity(spr[id]) } new Float: vOrigin[3] entity_get_vector(id,EV_VEC_origin,vOrigin) vOrigin[0] += (random_num(-5,5)) vOrigin[1] += (random_num(-5,5)) vOrigin[2] += (random_num(-5,5)) spr[id] = create_entity("env_glow") entity_set_string(spr[id],EV_SZ_classname,"power") entity_set_int(spr[id], EV_INT_rendermode, 5)//randermode entity_set_float(spr[id], EV_FL_renderamt, 255.0)//visable entity_set_float(spr[id], EV_FL_scale, 0.1) switch ( random_num(1,3) ) { case 1 : entity_set_model(spr[id], "sprites/dutch/lightningbig.spr") case 2 : entity_set_model(spr[id], "sprites/dutch/lightningbig2.spr") case 3 : entity_set_model(spr[id], "sprites/dutch/lightningbig3.spr") } entity_set_origin(spr[id], vOrigin) entity_set_float(spr[id], EV_FL_framerate, 10.0) set_task(0.0,"lightningctrl",id) } public lightning2(id) { if(is_valid_ent(spr[id])) { remove_entity(spr[id]) } new Float: vOrigin[3] entity_get_vector(id,EV_VEC_origin,vOrigin) vOrigin[0] += (random_num(-8,8)) vOrigin[1] += (random_num(-8,8)) vOrigin[2] += (random_num(-10,10)) spr[id] = create_entity("env_glow") entity_set_string(spr[id],EV_SZ_classname,"power") entity_set_int(spr[id], EV_INT_rendermode, 5)//randermode entity_set_float(spr[id], EV_FL_renderamt, 255.0)//visable entity_set_float(spr[id], EV_FL_scale, 0.1) switch ( random_num(1,3) ) { case 1 : entity_set_model(spr[id], "sprites/dutch/lightningsmall.spr") case 2 : entity_set_model(spr[id], "sprites/dutch/lightningsmall2.spr") case 3 : entity_set_model(spr[id], "sprites/dutch/lightningsmall3.spr") } entity_set_origin(spr[id], vOrigin) entity_set_float(spr[id], EV_FL_framerate, 10.0) set_task(0.0,"lightningctrl",id) } public FX_RemoveEffect4(params[]){ new id = params[0] remove_entity(spr_flare[id]) } public FX_Effect4(params[]){ new id = params[0] new Float: vOrigin[3] entity_get_vector(id,EV_VEC_origin,vOrigin) vOrigin[0] = vOrigin[0] +10 spr_flare[id] = create_entity("env_sprite") entity_set_string(spr_flare[id], EV_SZ_classname, "Taura") entity_set_edict(spr_flare[id], EV_ENT_owner, id) set_rendering(spr_flare[id], kRenderFxNone, 0, 0, 0, kRenderTransAdd, 255) entity_set_int(spr_flare[id], EV_INT_solid, 1) entity_set_int(spr_flare[id], EV_INT_movetype, 0) entity_set_float(spr_flare[id],EV_FL_scale,1.0) entity_set_float(spr_flare[id], EV_FL_framerate, 10.0) entity_set_model(spr_flare[id], "sprites/evm_taura3.spr") entity_set_origin(spr_flare[id], vOrigin) DispatchSpawn(spr_flare[id]) } public FX_Effect3(params[]){//sproei new id = params[0] new iOrigin[3] get_user_origin(id,iOrigin) message_begin( MSG_BROADCAST, SVC_TEMPENTITY, iOrigin ); write_byte ( 15 ); write_coord( iOrigin[0] ); write_coord( iOrigin[1] ); write_coord( iOrigin[2] - 1 ); write_coord( iOrigin[0] ); write_coord( iOrigin[1] ); write_coord( iOrigin[2] + 1 ); write_short(flame) write_byte ( 5 ); write_byte ( 10 ); write_byte ( 3 ); write_byte ( 10 ); write_byte ( 40 ); message_end(); } public FX_Effect5(params[]){//flare/flame new id = params[0] new origin[3] get_user_origin(id,origin) origin[2] = origin[2] + 5 message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin) write_byte( 0 ) write_coord( origin[0] ) write_coord( origin[1] + 5 ) write_coord( origin[2] + 50) write_coord( origin[0] ) write_coord( origin[1] + 5) write_coord( origin[2] ) write_short( pusprite ) write_byte( 0 ) write_byte( 255 ) write_byte( 50 ) write_byte( 100 ) write_byte( 0 ) write_byte( 255 ) write_byte( 255 ) write_byte( 255 ) write_byte( 155 ) write_byte( 0 ) message_end() message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin) write_byte( 0 ) write_coord( origin[0] ) write_coord( origin[1] - 5 ) write_coord( origin[2] + 50) write_coord( origin[0] ) write_coord( origin[1] - 5) write_coord( origin[2] ) write_short( pusprite ) write_byte( 0 ) write_byte( 255 ) write_byte( 50 ) write_byte( 100 ) write_byte( 0 ) write_byte( 255 ) write_byte( 255 ) write_byte( 255 ) write_byte( 155 ) write_byte( 0 ) message_end() message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin) write_byte( 0 ) write_coord( origin[0] + 5 ) write_coord( origin[1] ) write_coord( origin[2] + 50 ) write_coord( origin[0] + 5) write_coord( origin[1] ) write_coord( origin[2]) write_short( pusprite ) write_byte( 0 ) write_byte( 255 ) write_byte( 50 ) write_byte( 100 ) write_byte( 0 ) write_byte( 255 ) write_byte( 255 ) write_byte( 255 ) write_byte( 155 ) write_byte( 0 ) message_end() message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin) write_byte( 0 ) write_coord( origin[0] - 5 ) write_coord( origin[1] ) write_coord( origin[2] + 50 ) write_coord( origin[0] + 5) write_coord( origin[1] ) write_coord( origin[2]) write_short( pusprite ) write_byte( 0 ) write_byte( 255 ) write_byte( 50 ) write_byte( 100 ) write_byte( 0 ) write_byte( 255 ) write_byte( 255 ) write_byte( 255 ) write_byte( 155 ) write_byte( 0 ) message_end() message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin) write_byte( 0 ) write_coord( origin[0] - 5) write_coord( origin[1] ) write_coord( origin[2] + 50 ) write_coord( origin[0] - 5) write_coord( origin[1] ) write_coord( origin[2]) write_short( pusprite ) write_byte( 0 ) write_byte( 255 ) write_byte( 50 ) write_byte( 100 ) write_byte( 0 ) write_byte( 255 ) write_byte( 255 ) write_byte( 255 ) write_byte( 155 ) write_byte( 0 ) message_end() //origin[2] = origin[2] - 1 //down message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin) write_byte( 0 ) write_coord( origin[0] ) write_coord( origin[1] + 5 ) write_coord( origin[2] - 50) write_coord( origin[0] ) write_coord( origin[1] + 5) write_coord( origin[2] ) write_short( pusprite ) write_byte( 0 ) write_byte( 255 ) write_byte( 50 ) write_byte( 100 ) write_byte( 0 ) write_byte( 255 ) write_byte( 255 ) write_byte( 255 ) write_byte( 155 ) write_byte( 0 ) message_end() message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin) write_byte( 0 ) write_coord( origin[0] ) write_coord( origin[1] - 5 ) write_coord( origin[2] - 50) write_coord( origin[0] ) write_coord( origin[1] - 5) write_coord( origin[2] ) write_short( pusprite ) write_byte( 0 ) write_byte( 255 ) write_byte( 50 ) write_byte( 100 ) write_byte( 0 ) write_byte( 255 ) write_byte( 255 ) write_byte( 255 ) write_byte( 155 ) write_byte( 0 ) message_end() message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin) write_byte( 0 ) write_coord( origin[0] + 5 ) write_coord( origin[1] ) write_coord( origin[2] - 50 ) write_coord( origin[0] + 5) write_coord( origin[1] ) write_coord( origin[2]) write_short( pusprite ) write_byte( 0 ) write_byte( 255 ) write_byte( 50 ) write_byte( 100 ) write_byte( 0 ) write_byte( 255 ) write_byte( 255 ) write_byte( 255 ) write_byte( 155 ) write_byte( 0 ) message_end() message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin) write_byte( 0 ) write_coord( origin[0] - 5 ) write_coord( origin[1] ) write_coord( origin[2] - 50 ) write_coord( origin[0] + 5) write_coord( origin[1] ) write_coord( origin[2]) write_short( pusprite ) write_byte( 0 ) write_byte( 255 ) write_byte( 50 ) write_byte( 100 ) write_byte( 0 ) write_byte( 255 ) write_byte( 255 ) write_byte( 255 ) write_byte( 155 ) write_byte( 0 ) message_end() message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin) write_byte( 0 ) write_coord( origin[0] - 5) write_coord( origin[1] ) write_coord( origin[2] - 50 ) write_coord( origin[0] - 5) write_coord( origin[1] ) write_coord( origin[2]) write_short( pusprite ) write_byte( 0 ) write_byte( 255 ) write_byte( 50 ) write_byte( 100 ) write_byte( 0 ) write_byte( 255 ) write_byte( 255 ) write_byte( 255 ) write_byte( 155 ) write_byte( 0 ) message_end() } public draw_circle(id){ if(kk < 5){ set_task(0.1, "draw_circle1", id) zz +=5 kk ++ set_task(0.2, "draw_circle", id) }else{ kk = 0 zz = 0 } } public draw_circle1(id){ new playerlocation[3] get_user_origin(id, playerlocation, -1) new x = playerlocation[0] new y = playerlocation[1] new z = playerlocation[2] z = playerlocation[2] + zz draw_circle2(x, y, z, 20) } public draw_circle2(xCenter, yCenter, zCenter, radius){ new x = 0, y = radius, p = (5 - radius*4)/4 circlePoints(xCenter, yCenter, zCenter, x, y) while (x < y) { x++ if (p < 0){ p += 2*x+1; }else{ y--; p += 2*(x-y)+1; } circlePoints(xCenter, yCenter, zCenter, x, y) } } public circlePoints(cx, cy, cz, x, y){ new startloc[3] startloc[2] = cz if (x == 0){ startloc[0] = cx, startloc[1] = cy + y model_effect(startloc, dust, 1, 255) startloc[0] = cx, startloc[1] = cy - y model_effect(startloc, dust, 1, 255) startloc[0] = cx + y, startloc[1] = cy model_effect(startloc, dust, 1, 255) startloc[0] = cx - y, startloc[1] = cy model_effect(startloc, dust, 1, 255) } else { if (x == y) { startloc[0] = cx + x, startloc[1] = cy + y model_effect(startloc, dust, 1, 255) startloc[0] = cx - x, startloc[1] = cy + y model_effect(startloc, dust, 1, 255) startloc[0] = cx + x, startloc[1] = cy - y model_effect(startloc, dust, 1, 255) startloc[0] = cx - x, startloc[1] = cy - y model_effect(startloc, dust, 1, 255) } else { if (x < y){ startloc[0] = cx + x, startloc[1] = cy + y model_effect(startloc, dust, 1, 255) startloc[0] = cx - x, startloc[1] = cy + y model_effect(startloc, dust, 1, 255) startloc[0] = cx + x, startloc[1] = cy - y model_effect(startloc, dust, 1, 255) startloc[0] = cx - x, startloc[1] = cy - y model_effect(startloc, dust, 1, 255) startloc[0] = cx + y, startloc[1] = cy + x model_effect(startloc, dust, 1, 255) startloc[0] = cx - y, startloc[1] = cy + x model_effect(startloc, dust, 1, 255) startloc[0] = cx + y, startloc[1] = cy - x model_effect(startloc, dust, 1, 255) startloc[0] = cx - y, startloc[1] = cy - x model_effect(startloc, dust, 1, 255) } } } } public FusionAskmenu(id,id2){ new szMenuBody[256] new keys new szUserName[32] get_user_name( id2, szUserName, 31 ) format( szMenuBody, 255, "Do you want to fuse with: ^n1. %s!^n2 No!^n3. Exit",szUserName) keys = (1<<0|1<<1|1<<2) show_menu( id, keys, szMenuBody, -1 ) return PLUGIN_HANDLED } public client_disconnect ( id ) { PlayerForm[id] = 0 PlayerExtra[id] = 0 PlayerTrans[id] = 0 PlayerOrigSpeed[id] = 0 kills[id] = 0 oldPlLevel[id] = 0 choise[id] = 0 blockSB[id] = 0 redsphere[id] = 0 sphere[id] = 0 turbo[id] = 0 oldhp[id] = 0 swooping[id] = 0 Special[id] = 0 attacking[id] = 0 ctime[id] = 0 canattack[id] = 0 specialattacker[id] = 0 usedspecial[id] = 0 } public FusionMenu( id ) { //console_print(id,"DEBUG") ShowPlayerMenu( id, g_nMenuPosition = 0 ) } public FuseConfirm1( id , key ) { switch( key ) { case 0: { client_print(id,print_chat,"Yes") log_amx("YES") } case 1: { client_print(id,print_chat,"No") log_amx("YES") } default: { client_print(id,print_chat,"DEBUG!") } } return PLUGIN_HANDLED } public FuseConfirm( id, key ) { new Name[32] new Name1[33] switch( key ) { case 0: { client_print(id,print_chat,"Yes") for(new a = 1; a <= get_playersnum(); a++) { if(InRadius(a,id) && fusionask[id] && FuseOne[a]){ //Check if the players are in the radius, and if they carry the fuseflag. Fusiontransform(id,a) //FINALY, FUSE TRANSFORM! } } return PLUGIN_HANDLED } case 1: { for(new a = 1; a <= get_playersnum(); a++) { if(InRadius(a,id) && fusionask[id] && FuseOne[a]){ get_user_name( id, Name, 31 ) get_user_name( a, Name1, 31 ) client_print(id,print_chat,"You choose not to fuse with %s.",Name1) client_print(a,print_chat,"%s did not choose to fuse with you.",Name) FuseOne[a] = 0 fusionask[id] = 0 entity_set_int( a, EV_INT_flags, entity_get_int( a, EV_INT_flags ) & ~FL_FROZEN ); entity_set_int( id, EV_INT_flags, entity_get_int( id, EV_INT_flags ) & ~FL_FROZEN ); } } } } return PLUGIN_HANDLED } public Fusiontransform(id,id2){ new Name[32] new Name1[32] get_user_name( id, Name, 31 ) get_user_name( id2, Name1, 31 ) log_amx("debug Fusiontransform") client_print ( id, print_chat, "Fusion: Player1: %s | Player2: %s",Name,Name1) client_print ( id2, print_chat, "Fusion: Player1: %s | Player2: %s",Name,Name1) fusionask[id] = 0 FuseOne[id2] = 0 } public MenuAction( id, key ) { switch( key ) { case 8: ShowPlayerMenu( id, ++g_nMenuPosition ) case 9: ShowPlayerMenu( id, --g_nMenuPosition ) default: { new nPlayerID = g_nMenuPlayers[g_nMenuPosition * MENU_PLAYERS + key] if (userinradius(nPlayerID,id)){ Engagefusion( id, nPlayerID ) }else{ client_print(id,print_chat,"The player has moved out of the needed range") } } } return PLUGIN_HANDLED } public userinradius(a,id){ new distanceBetween new origin1[3], origin[3] new dmgRadius = 100 get_user_origin(id, origin) if ( is_user_alive(a) && a != id) { get_user_origin(a, origin1) distanceBetween = get_distance(origin, origin1) if ( distanceBetween < dmgRadius ) { return 1 } } return 0 } public ShowPlayerMenu( id, pos ) { if( pos < 0 ) return new i, iPlayerID new szMenuBody[MENU_SIZE] new nCurrKey = 0 new szUserName[32] new nStart = pos * MENU_PLAYERS new nNum get_players( g_nMenuPlayers, nNum ) if( nStart >= nNum ) nStart = pos = g_nMenuPosition = 0 new nLen = format( szMenuBody, MENU_SIZE-1, "Fusion Menu:^n^n", pos+1, (nNum / MENU_PLAYERS + ((nNum % MENU_PLAYERS) ? 1 : 0 )) ) new nEnd = nStart + MENU_PLAYERS new nKeys = (1<<9) if( nEnd > nNum ) nEnd = nNum for( i = nStart; i < nEnd; i++) { iPlayerID = g_nMenuPlayers[i] get_user_name( iPlayerID, szUserName, 31 ) if(InRadius(iPlayerID,id)){ if(!is_user_alive(iPlayerID)) { nCurrKey++ nLen += format( szMenuBody[nLen], (MENU_SIZE-1-nLen), "\d%d. %s^n\w", nCurrKey, szUserName ) }else { nKeys |= (1< 32) //first argument is the killer, 0 if worldspawn return PLUGIN_CONTINUE kills[killer]++ //we count all the kills made if (victim != -1){ if (usedspecial[victim]){ usedspecial[victim] = 0 format(weapon,31,"SSJ4 Special"); for (new a = 1; a <= get_playersnum(); a++) { if (specialattacker[a]){ set_user_frags( a, get_user_frags( a ) + 1 ) killer = a make_deathmsg(killer,victim,headshot,weapon) usedspecial[victim] = 0 specialattacker[a] = 0 return PLUGIN_HANDLED; } } } } return PLUGIN_CONTINUE } public SpecialAttack(id){ new position[3] get_user_origin(id,position) new distanceBetween new origin1[3], origin[3] get_user_origin(id, origin) new dmgRadius for(new a = 1; a <= 150; a += 5) { message_begin( MSG_BROADCAST, SVC_TEMPENTITY) write_byte(TE_BEAMTORUS) write_coord(position[0]) write_coord(position[1]) write_coord(position[2] + a) write_coord(position[0] + 380 ) write_coord(position[1] + 380) write_coord(position[2] + 380) write_short(shield) write_byte(0) write_byte(0) write_byte(5) write_byte(30) write_byte(0) write_byte(255) write_byte(255) write_byte(255) write_byte(255) write_byte(1) message_end() } dmgRadius = 375 for (new a = 1; a <= get_playersnum(); a++) { if ( is_user_alive(a) && a != id) { get_user_origin(a, origin1) distanceBetween = get_distance(origin, origin1) if ( distanceBetween < dmgRadius ) { DoDamage( id, a, 70, "SSJ4 Special" ) } } } //LOWER HEALTH AND ADD PL! //radius_damage ( position, 200, 100 ) //set_user_godmode(id,1) } public DoDamage( id, Victim , Damage, Weapon[] ) { new victimHealth = get_user_health( Victim ) new victimDamage = ( victimHealth - Damage ) new team[2] team[0] = get_user_team(id); team[1] = get_user_team(Victim); if( containi( team[0], "Good" ) != -1 ) { team[0] = 1 //good }else{ team[0] = 2 //evil } if( containi( team[1], "Evil" ) != -1 ) { team[1] = 1 //good }else{ team[1] = 2 //evil } new PlLevel = floatround(float(get_pdata_int(id, 461)) + 525000.0) //add PL on damage set_pdata_int(id, 460, PlLevel) set_pdata_int(id, 461, PlLevel) set_pdata_int(id, 142, 120) if( victimHealth > Damage ) set_user_health( Victim, victimDamage ) else Kill( id, Victim, Weapon ) /* //this part doesn't work, it seems to block equal classes. if( !get_cvar_num( "mp_friendlyfire" ) ) { //if( get_user_team(id) != get_user_team( Victim ) ) if(team[0] == team[1]) { if( victimHealth > Damage ) set_user_health( Victim, victimDamage ) else Kill( id, Victim, Weapon ) } } else { if( victimHealth > Damage ) set_user_health( Victim, victimDamage ) else Kill( id, Victim, Weapon ) }*/ } public Kill( Killer, Victim, Weapon[] ) { usedspecial[Victim] = 1 specialattacker[Killer] = 1 user_kill (Victim, 1 ) AddScore(Killer) AddScore(Victim) } public explosion1 (id){ new startloc[3] get_user_origin(id,startloc) message_begin( MSG_ALL, get_user_msgid("Explosion"), {0,0,0} ,id); write_coord(startloc[0]) write_coord(startloc[1]) write_coord(startloc[2]) write_long(700) write_byte(5) message_end() } public Special1(id) { if (isBusy(id) || !PlayerExtra[id]) return PLUGIN_HANDLED if ((get_gametime() - g_last[id]) > DELAY) { SpecialActivate(id) g_last[id] = get_gametime() return PLUGIN_HANDLED } set_hudmessage(248, 20, 25, 0.05, 0.65, 2, 0.02, 3.0, 0.01, 0.1, 85) show_hudmessage(id, "Please wait 30 seconds before using this special.") return PLUGIN_HANDLED } public SpecialActivate(id){ if (Special[id] != 1){ set_hudmessage(248, 20, 25, 0.05, 0.65, 2, 0.02, 3.0, 0.01, 0.1, 85) show_hudmessage(id, "The special attack is now ON! Use the attack button to use it.") strip_user_weapons(id) Special[id] = 1 }else{ set_hudmessage(248, 20, 25, 0.05, 0.65, 2, 0.02, 3.0, 0.01, 0.1, 85) show_hudmessage(id, "The special attack is now OFF!") Special[id] = 0 } return PLUGIN_HANDLED } public progressBar(id) //0.34 = 11.38 sec { if (ctime[id] < 105){ message_begin(MSG_ONE, get_user_msgid("Charge"), {0,0,0}, id) write_byte(ctime[id]) message_end() set_user_rendering(id,kRenderFxGlowShell,255,0,0,kRenderNormal,ctime[id]) ctime[id] += 5 set_task(0.08,"progressBar",id) }else{ ctime[id] = 0 } if (ctime[id] > 100){ canattack[id] = 1 } } public removebar(id){ message_begin(MSG_ONE, get_user_msgid("Charge"), {0,0,0}, id) write_byte(0) message_end() } public swooptrail1(id){ message_begin( MSG_BROADCAST, SVC_TEMPENTITY) write_byte(22) //#define TE_BEAMFOLLOW 22 Create a line of decaying beam segments until entity stops moving write_short(id) write_short(swooptrail) write_byte(6) write_byte(2) write_byte(255) write_byte(0) write_byte(0) write_byte(80) message_end() } public spawnsphere(params[]){ new id = params[0] spheremodel(id); } public spawnredsphere(params[]){ new id = params[0] redspheremodel(id); } public Explomessage( msg_id, msg_dest, msg_entity ) { for( new i = 1; i < 33; i++) { if ( JubeiExplosion[i] !=0 && PlayerExtra[i]) { set_msg_arg_int( 5, ARG_BYTE, 5 ) JubeiExplosion[i] = 0 } } } public flare( id ) { for( new i = 1; i < 33; i++) { if ( JubeiExplosion[i] !=0 && PlayerExtra[i]) { set_msg_arg_int(2, ARG_SHORT, kametorp) set_msg_arg_int(3, ARG_SHORT, kametorp) if(get_msg_arg_int(4) > 4) set_msg_arg_int(4,ARG_SHORT,4) } } } public EmitSound(entity, channel, const sound[]) { if( entity > 32 || entity < 1 ) return FMRES_IGNORED; if( PlayerExtra[entity] !=0 ) { if( containi( sound, "kamehame.wav" ) != -1 ) { emit_sound( entity, channel, "gokussj4/jubeikamehameha.wav", 1.0, ATTN_NORM, 0, PITCH_NORM ); return FMRES_SUPERCEDE; } if( containi( sound, "ha.wav" ) != -1 ) { emit_sound( entity, channel, "gokussj4/jubeiha.wav", 1.0, ATTN_NORM, 0, PITCH_NORM ); JubeiSelect[entity] = 1 return FMRES_SUPERCEDE; } } return FMRES_IGNORED; } public toAscend(id){ new playerClass = WhichClass(id) if (PlayerExtra[id]){ //We can't Ascend, when we are ssj4... return PLUGIN_HANDLED } if (playerClass == 8){ toAscendVegeta(id) //Vegeta }else if(playerClass == 2){ toAscendGoku(id) //Goku } return PLUGIN_HANDLED } //------------ public AllowAscend(id){ if(get_cvar_num("ssj4_allow")==0) return 0; if(isBusy(id)) return 0; if(kills[id] <= get_cvar_num("ssj4_minimumkills") - 1) return 0; new modelIndex = entity_get_int(id, EV_INT_modelindex) if(PlayerForm[id] != modelIndex) // Make sure that the client is in it's basicform return 0; if(PlayerExtra[id] || PlayerTrans[id]) return 0; new currentKi = get_pdata_int(id, 460) oldPlLevel[id] = currentKi; if(currentKi <= get_cvar_num("ssj4_plneeded")) return 0; return 1;//if it passes all checks, return 1. }//------------ public Ascend(id){ new playerClass = WhichClass(id) new szMenuBody[256] new keys if(!playerClass && !PlayerExtra[id]) return PLUGIN_CONTINUE if (playerClass == 2 || playerClass == 8){ if (PlayerExtra[id])//if the player is already ssj4, then don't ascend or show the menu return PLUGIN_HANDLED if (AllowAscend(id) == 1){// Don't show this menu untill he's allowed to go ssj4 if (choise[id] == 1 && !PlayerExtra[id])// If the person chooses to transform to SSJ and is NOT ssj4(extra check) return PLUGIN_CONTINUE else{ format( szMenuBody, 255, "To wich class do you want to ascend?: ^n1. Super-Saiyan^n2 Super-Saiyan 4!^n3. Exit" ) keys = (1<<0|1<<1|1<<2) show_menu( id, keys, szMenuBody, -1 ) return PLUGIN_HANDLED } } } return PLUGIN_HANDLED } //------------ public resetchoise(id){ choise[id] = 0 } public MenuCommand( id , key ) { switch( key ) { case 0: { choise[id] = 1 client_cmd(id,"ascend") set_task(1.0,"resetchoise",id) } case 1: { toAscend(id) } case 2: return PLUGIN_HANDLED } return PLUGIN_HANDLED } public client_connect(id){ client_cmd(id,"bind [ ssj4help") client_cmd(id,"bind ] ssj4info") client_cmd(id,"bind \ .Special3") } public explosion (params[]){ new startloc[3] get_user_origin(params[0],startloc) message_begin( MSG_ALL, get_user_msgid("Explosion"), {0,0,0} ,params[0]); write_coord(startloc[0]) write_coord(startloc[1]) write_coord(startloc[2]) write_long(500) write_byte(5) message_end() } public SSJ4Help(id){ new sBaseURL[256] = "http://home.deds.nl/~dutchmeat/" new gRankURL[256] format(gRankURL, 255,"dutchssj4.txt", sBaseURL) show_motd(id, gRankURL, "SSJ4 Help") return PLUGIN_HANDLED } public SSJ4Info(id){ new MinPL = get_cvar_num( "ssj4_plneeded" ) new MinKills = get_cvar_num( "ssj4_minimumkills" ) console_print(id,"SSJ4 server information") if (get_cvar_num( "ssj4_allow" ) == 1){ console_print(id,"SSJ4 is now ON") }else{ console_print(id,"SSJ4 is now OFF") } console_print(id,"Minimum Kills: %d", MinKills) console_print(id,"Minimum PowerLevel: %d",MinPL) console_print(id,"Special Cooldown: 30 seconds") console_print(id,"This plugin is created by: %s",FLOATNM) return PLUGIN_HANDLED } public GameDesc() { new gamemode = get_cvar_num( "mp_gamemode" ) switch( gamemode ) { case 0: forward_return( FMV_STRING, "[ECX-SSJ4] >> FFA - Dutchmeat" ) case 1: forward_return( FMV_STRING, "[ECX-SSJ4] >> TDM - Dutchmeat" ) case 2: forward_return( FMV_STRING, "[ECX-SSJ4] >> CTDB - Dutchmeat" ) } return FMRES_SUPERCEDE } public Kills(msg_id, msg_dest, msg_entity){ //Count the kills for the cvar 'ssj4_minimumkills'. new killer = get_msg_arg_int(1) new victim = get_msg_arg_int(2) if(killer == 0 || killer == victim || killer > 32) //first argument is the killer, 0 if worldspawn return PLUGIN_HANDLED kills[killer]++ //we count all the kills made return PLUGIN_CONTINUE } public deadCheck(id) { new var = read_data(1) if(var == 0) { if(PlayerTrans[id]) { remove_task(1111 + id) PlayerTrans[id] = 0 message_begin( MSG_ALL, get_user_msgid("StopTransFX"), {0,0,0} ,id); write_byte(1); message_end( ); } if(PlayerExtra[id]) { //Goku PlayerExtra[id] = 0 new PlLevel = floatround(float(get_pdata_int(id, 461)) / 10) //new PlLevel = floatround(float(get_pdata_int(id, 461)) / 1.5) set_pdata_int(id, 460, PlLevel) set_pdata_int(id, 461, PlLevel) } } } public playerSpawn(id) { PlayerForm[id] = entity_get_int(id, EV_INT_modelindex) PlayerExtra[id] = 0 } public boost (id) { new Float:vel[3] new Float:vel1[3] new Float:vel2[3] new seq = entity_get_int(id, EV_INT_sequence) velocity_by_aim(id,2000,vel) //forward velocity_by_aim(id,-2000,vel1) //back velocity_by_aim(id,0,vel2) //up if(get_user_button(id) & IN_FORWARD && seq == 40){ // sequence: 40 set_user_velocity(id,vel) } if(get_user_button(id) & IN_BACK && seq == 41){ // sequence: 41 set_user_velocity(id,vel1) } if(get_user_button(id) & IN_JUMP && seq == 36){ // sequence: 36 vel2[2] += 1500 set_user_velocity(id,vel2) } } public server_frame() { new clip,ammo for(new a = 1; a <= get_playersnum(); a++) { //Hehe, yes i do think this can be done easier, but i don't know another way yet. //SPECIAL ATTACK! if (PlayerExtra[a]){ if(get_user_button(a) & IN_ATTACK && Special[a] == 1){ if (!attacking[a] && !isBusy(a)){ progressBar(a) attacking[a] = 1 emit_sound(a,CHAN_BODY, "goku/turboost.wav", 1.0, ATTN_NORM, 0, PITCH_NORM) } }else{ // Remove progress bar if(attacking[a] != 0){ set_user_rendering(a,kRenderFxGlowShell,0,0,0,kRenderNormal,25) removebar(a) remove_task(a) ctime[a] = 0 emit_sound(a,CHAN_BODY, "goku/turboost.wav", 1.0, ATTN_NORM, SND_STOP, PITCH_NORM) if(canattack[a] == 1 && !isBusy(a)){ SpecialAttack(a) emit_sound(a,CHAN_BODY, "goku/turboost_scream.wav", 1.0, ATTN_NORM, 0, PITCH_NORM) canattack[a] = 0 //give them back their weapons :) Special[a] = 0 //no more special new playerClass = WhichClass(a) if (playerClass == 2){ givessj4weapons(a,1) }else if (playerClass == 8){ givessj4weapons(a,0) } //end weapons } } attacking[a] = 0 } //END SPECIAL ATTACK if(get_pdata_int(a,317)){ boost(a) //INCREASE SWOOPSPEED if(!swooping[a]){ swooping[a] = 1 client_cmd(a,"m_yaw 0.015") //WHILE SWOOPING DECREASE YAW AND PITCH client_cmd(a,"m_pitch 0.015") swooptrail1(a) } }else{ if(swooping[a] != 0){ swooping[a] = 0 client_cmd(a,"m_yaw 0.022") //AFTER SWOOPING INCREASE YAW AND PITCH client_cmd(a,"m_pitch 0.022") message_begin( MSG_BROADCAST, SVC_TEMPENTITY) write_byte(99)// Kill all beams attached to entity write_short(a) message_end() } } } new weapon = get_user_weapon( a, clip, ammo ) if(weapon == 12 && blockSB[a] > 4){ client_cmd(a,"invnext") } if( PlayerExtra[a]){ if(floatround(entity_get_float(a, 36)) < 50) gijiDescend(a) } if(PlayerExtra[a]) { new playerClass = WhichClass(a) if(!PlayerTrans[a]){ new currentki = floatround( entity_get_float( a, EV_FL_fuser4 ) ); new ki = currentki + 1 if (currentki <= 1000){ entity_set_float( a, EV_FL_fuser4, float(ki) ); } } if (playerClass == 2){ entity_set_string(a, EV_SZ_model, "models/player/ssj4goku/ssj4goku.mdl") entity_set_model(a, "models/player/ssj4goku/ssj4goku.mdl") }else if(playerClass == 8){ entity_set_string(a, EV_SZ_model, "models/player/ssj4vegeta/ssj4vegeta.mdl") entity_set_model(a, "models/player/ssj4vegeta/ssj4vegeta.mdl") } if(weapon == 6 && PlayerExtra[a] == 1){ kamehamehacharge (a) } } } for(new entity = 1; entity < get_global_int(GL_maxEntities); entity++) { if ( !is_valid_ent( entity ) ) continue; new szModel[2][32] entity_get_string(entity, EV_SZ_classname, szModel[0], 31) entity_get_string(entity, EV_SZ_model, szModel[1], 31) if(entity < 33) { if( containi( szModel[0], "player" ) != -1 ) { if(PlayerTrans[entity]) { entity_set_int( entity, EV_INT_sequence, 27 ); entity_set_int( entity, EV_INT_gaitsequence, 0 ); } } } } } public toAscendVegeta(id) { new vegetafile[64] get_cvar_string("vegetatransfile",vegetafile,63) PlayerTrans[id] = 1 client_cmd(id, "cam_idealdist 150") set_pdata_int( id , 301, 1, -89 ); //protect!!! off: 301,0,-89 message_begin( MSG_ALL, get_user_msgid( "TransformFX" ), {0,0,0} ,id); write_byte(id); write_byte(25) write_byte(0) message_end( ); message_begin(MSG_ALL, get_user_msgid( "ScreenShake" ), {0,0,0}, id) write_short(255<< 14 ) //ammount write_short(10 << 14) //lasts this long write_short(255<< 14) //frequency message_end() set_pdata_int(id, 196, 1) PlayerOrigSpeed[id] = get_pdata_int(id, 462) set_pdata_int(id, 462, 0) new params[2] params[0] = id if(get_cvar_num("customtransformations") && file_exists(vegetafile)){ Elight(id) emit_sound(id,CHAN_BODY, "vegetassj4/ssj4trans.wav", 1.0, ATTN_NORM, 0, PITCH_NORM) //SESSION ONE set_task(1.0,"cloudseffect",1111+id,params,2) set_task(1.0,"strikelightning",1111+id,params,2) set_task(2.0,"strikelightning",1111+id,params,2) set_task(2.0,"eff2",1111+id,params,2) set_task(3.0,"strikelightning",1111+id,params,2) set_task(3.0,"eff2",1111+id,params,2) set_task(6.0,"cloudseffect",1111+id,params,2) set_task(6.0,"strikelightning",1111+id,params,2) set_task(6.0,"FX_Effect5",1111+id,params,2) //SESSION TWO set_task(6.0,"eff2",1111+id,params,2) set_task(8.0,"strikelightning",1111+id,params,2) set_task(7.0,"eff2",1111+id,params,2) set_task(8.0,"eff2",1111+id,params,2) set_task(9.0,"eff2",1111+id,params,2) set_task(10.0,"strikelightning",1111+id,params,2) set_task(10.0,"implo",1111+id,params,2) set_task(10.0,"eff2",1111+id,params,2) //SESSION THREE set_task(11.0,"cloudseffect",1111+id,params,2) set_task(11.0,"implo",1111+id,params,2) set_task(11.0,"eff2",1111+id,params,2) set_task(12.0,"strikelightning",1111+id,params,2) set_task(12.0,"eff2",1111+id,params,2) set_task(12.0,"implo",1111+id,params,2) set_task(13.0,"implo",1111+id,params,2) set_task(13.0,"implo",1111+id,params,2) set_task(13.0,"FX_Effect5",1111+id,params,2) set_task(13.0,"FX_Effect5",1111+id,params,2) set_task(13.2,"implo",1111+id,params,2) set_task(13.2,"FX_Effect4",1111+id,params,2) //SESSION FOUR set_task(14.0,"strikelightning",1111+id,params,2) set_task(15.0,"strikelightning",1111+id,params,2) set_task(15.0,"cloudseffect",1111+id,params,2) set_task(16.0,"strikelightning",1111+id,params,2) set_task(17.0,"strikelightning",1111+id,params,2) set_task(18.0,"eff1",1111+id,params,2) set_task(20.0,"eff1",1111+id,params,2) //SESSION FIVE, last effects set_task(20.0,"strikelightningonplayer",1111+id,params,2) set_task(20.0, "ssj4Ascend", 1111+id, params, 2) set_task(20.0,"eff2",1111+id,params,2) set_task(19.0,"FX_RemoveEffect4",1111+id,params,2) set_task(19.5, "explosion", 1111+id, params, 2) //final effect params[1] = 1 set_task(19.0, "vegetasound", 1111+id, params, 2) }else TransformationGenerator(id) entity_set_int( params[0], EV_INT_flags, entity_get_int( id, EV_INT_flags ) | FL_FROZEN ); return PLUGIN_HANDLED//PLUGIN_CONTINUE } public vegetasound(params[]){ new id = params[0] new num = params[1] if (num == 1){ emit_sound(id,CHAN_BODY, "vegeta/trans2_short_scream.wav", 1.0, ATTN_NORM, 0, PITCH_NORM) }else{ emit_sound(id,CHAN_BODY, "vegetassj4/ssj4sentence.wav", 1.0, ATTN_NORM, 0, PITCH_NORM) } } public toAscendGoku(id) { new gokufile[64] get_cvar_string("gokutransfile",gokufile,63) PlayerTrans[id] = 1 client_cmd(id, "cam_idealdist 150") set_pdata_int( id , 301, 1, -89 ); //protect!!! off: 301,0,-89 message_begin( MSG_ALL, get_user_msgid( "TransformFX" ), {0,0,0} ,id); write_byte(id); write_byte(10) write_byte(0) message_end( ); message_begin(MSG_ALL, get_user_msgid( "ScreenShake" ), {0,0,0}, id) write_short(255<< 14 ) //ammount write_short(10 << 14) //lasts this long write_short(255<< 14) //frequency message_end() set_pdata_int(id, 196, 1) PlayerOrigSpeed[id] = get_pdata_int(id, 462) set_pdata_int(id, 462, 0) new params[3] params[0] = id entity_set_int(id,EF_BRIGHTFIELD,1) if(get_cvar_num("customtransformations") && file_exists (gokufile)){ emit_sound(id,CHAN_BODY, "evolution/Goku/Goku.4.alternate.wav", 1.0, ATTN_NORM, 0, PITCH_NORM) //start the sound //SOUNDS set_task(1.0,"lightningsound2",1111+id,params,2) //lightningsound thunderroll set_task(2.0,"lightningsound2",1111+id,params,2) //lightningsound thunderroll set_task(4.0,"lightningsound2",1111+id,params,2) //lightningsound thunderroll set_task(6.0,"lightningsound2",1111+id,params,2) //lightningsound thunderroll set_task(8.0,"lightningsound2",1111+id,params,2) //lightningsound thunderroll set_task(12.0,"lightningsound2",1111+id,params,2) //lightningsound thunderroll set_task(16.0,"lightningsound2",1111+id,params,2) //lightningsound thunderroll set_task(20.0,"lightningsound2",1111+id,params,2) //lightningsound thunderroll set_task(22.0,"lightningsound2",1111+id,params,2) //lightningsound thunderroll set_task(24.0,"lightningsound2",1111+id,params,2) //lightningsound thunderroll set_task(28.0,"lightningsound2",1111+id,params,2) //lightningsound thunderroll set_task(1.0,"lightningsound1",1111+id,params,2) //lightningsound thunderclap set_task(4.0,"lightningsound1",1111+id,params,2) //lightningsound thunderclap set_task(6.0,"lightningsound1",1111+id,params,2) //lightningsound thunderclap set_task(8.0,"lightningsound1",1111+id,params,2) //lightningsound thunderclap set_task(12.0,"lightningsound1",1111+id,params,2) //lightningsound thunderclap set_task(12.5,"lightningsound1",1111+id,params,2) //lightningsound thunderclap set_task(14.0,"lightningsound1",1111+id,params,2) //lightningsound thunderclap set_task(16.0,"lightningsound1",1111+id,params,2) //lightningsound thunderclap set_task(16.5,"lightningsound1",1111+id,params,2) //lightningsound thunderclap set_task(18.0,"lightningsound1",1111+id,params,2) //lightningsound thunderclap set_task(20.0,"lightningsound1",1111+id,params,2) //lightningsound thunderclap set_task(25.0,"lightningsound1",1111+id,params,2) //lightningsound thunderclap //SESSION ONE - Start it all --------------------------------------------------------- set_task(1.0,"FX_Effect1",1111+id,params,2) //start the turbo model set_task(1.0,"strikelightning",1111+id,params,2) //Lightning set_task(2.0,"strikelightning",1111+id,params,2) set_task(2.0,"eff2",1111+id,params,2) //Round sprite around the player. set_task(4.0,"strikelightning",1111+id,params,2) set_task(4.0,"eff2",1111+id,params,2) set_task(6.0,"strikelightning",1111+id,params,2) set_task(6.0,"eff2",1111+id,params,2) set_task(6.0,"FX_Effect2",1111+id,params,2) //Start the Energyline set_task(8.0,"strikelightning",1111+id,params,2) set_task(10.0,"strikelightning",1111+id,params,2) //SESSION TWO --------------------------------------------------------- set_task(10.0,"implo",1111+id,params,2) //start the implosion session set_task(11.0,"implo",1111+id,params,2) set_task(12.0,"implo",1111+id,params,2) set_task(12.2,"implo",1111+id,params,2) //end the implosion session set_task(12.0,"strikelightning",1111+id,params,2) //strike the lightning again //SESSION THREE --------------------------------------------------------- //turbo removal set_task(12.7,"removeturbo",1111+id,params,2) //Remove the turbo model set_task(12.5,"strikelightningonplayer",1111+id,params,2) //strike lightning on player set_task(12.7,"spawnsphere",1111+id,params,1) //start the sphere model //SESSION FOUR --------------------------------------------------------- set_task(14.0,"strikelightning",1111+id,params,2) //start the lightning session set_task(16.0,"strikelightning",1111+id,params,2) set_task(16.5,"strikelightningonplayer",1111+id,params,2) set_task(16.5, "explosion", 1111+id, params, 2) //explosion set_task(16.9,"removesphere",1111+id,params,2) //remove white sphere set_task(16.9,"spawnredsphere",1111+id,params,2) set_task(18.0,"strikelightning",1111+id,params,2) set_task(20.0,"strikelightning",1111+id,params,2) //end it set_task(22.0,"eff1",1111+id,params,2) //(effect1) set_task(24.0,"tornado", 1111+id, params, 2) //start the 'tornado' session set_task(24.3,"tornado", 1111+id, params, 2) set_task(24.5,"tornado", 1111+id, params, 2) //end the tornado session set_task(25.0,"eff1",1111+id,params,2) //(effect1) set_task(25.0,"strikelightningonplayer",1111+id,params,2) //start the lightning session set_task(25.0,"strikelightningonplayer",1111+id,params,2) set_task(25.0,"strikelightningonplayer",1111+id,params,2) //end it //SESSION FIVE - Ending --------------------------------------------------------- set_task(25.0, "ssj4Ascend", 1111+id, params, 2) //End the transformation and give health,pl,etc set_task(25.0, "explosion", 1111+id, params, 2) //final effect //energy line removal set_task(25.0,"removemodel",1111+id,params,2) //remove the Energyline params[1] = 2 set_task(25.0,"removeredsphere",1111+id,params,2) //the whole transformation takes about 30 secs }else TransformationGenerator(id) entity_set_int( params[0], EV_INT_flags, entity_get_int( id, EV_INT_flags ) | FL_FROZEN ); //unfreeze the player. return PLUGIN_HANDLED } public FX_Effect2(params[]){ new id = params[0] for(new a = 1; a <= 2; a++) { energyline(id,a) } } public FX_Effect1(params[]){ new id = params[0] TurboModel(id) } public ssj4Ascend(params[]) { new var = params[0] new playerClass = WhichClass(var) message_begin( MSG_ALL, get_user_msgid("StopTransFX"), {0,0,0} ,var); write_byte(1); message_end( ); set_pdata_int(var, 196, 0) set_pdata_int(var, 462, 236) new PlLevel = floatround(float(get_pdata_int(var, 461)) * 10.0) set_pdata_int(var, 460, PlLevel) set_pdata_int(var, 461, PlLevel) set_pdata_int(var, 142, 120) message_begin( MSG_ONE, get_user_msgid( "MaxHealth" ), { 0, 0, 0 }, var ); write_byte(255); //120 message_end( ); set_user_health(var, get_user_health(var) + healtha ) /* message_begin( MSG_ONE, get_user_msgid("Health"), {0,0,0} ,var); write_byte(255); message_end( ); */ PlayerTrans[var] = 0 PlayerExtra[var] = 1 new bar = floatround(entity_get_float(var, 36)) bar = bar - 200 entity_set_float(var, 36, float(bar)) client_cmd(var, "cam_idealdist 40") new pspeed = floatround(float(get_pdata_int(var, 462)) * 2.5) set_pdata_int(var, 462, pspeed) set_pdata_int( var , 301, 0, -89 ); //protect!!! off: 301,0,-89 entity_set_int( var, EV_INT_flags, entity_get_int( var, EV_INT_flags ) & ~FL_FROZEN ); new param[2] if(playerClass == 2){ strip_user_weapons(var) givessj4weapons(var,1) emit_sound(var,CHAN_BODY, "gokussj4/ssj4sentence.wav", 1.0, ATTN_NORM, 0, PITCH_NORM) }else if(playerClass == 8){ param[0] = var param[1] = 2 set_task(1.8,"vegetasound",1111+var,params,2) strip_user_weapons(var) givessj4weapons(var,0) } } public givessj4weapons(id,num){ if (num){ give_item(id, "weapon_melee") give_item(id, "weapon_kiblast") give_item(id, "weapon_genericbeam") give_item(id, "weapon_kamehameha") give_item(id, "weapon_solarflare") give_item(id, "weapon_kametorpedo") //give_item(id, "weapon_spiritbomb") }else{ give_item(id, "weapon_melee") give_item(id, "weapon_renzoku") give_item(id, "weapon_genericbeam") give_item(id, "weapon_bigbang") give_item(id, "weapon_finalflash") give_item(id, "weapon_gallitgun") } } public gijiDescend(id) { new PlLevel,health PlLevel = floatround(float(get_pdata_int(id, 461)) / 10) set_pdata_int(id, 460, PlLevel) set_pdata_int(id, 461, PlLevel) set_pdata_int(id, 142, 110) //speed and something else set_pdata_int(id, 462, 216) if(health < 20) health = 20 //don't let the player die set_user_health(id, get_user_health(id) - healtha) message_begin( MSG_ONE, get_user_msgid( "MaxHealth" ), { 0, 0, 0 }, id ); write_byte(110); message_end( ); emit_sound(id,CHAN_BODY, "weapons/descend.wav", 1.0, ATTN_NORM, 0, PITCH_NORM) SetdefaultClass(id) //set the old model } public toDescend(id) { if(PlayerTrans[id]) return PLUGIN_HANDLED; if(PlayerExtra[id]) { gijiDescend(id) PlayerExtra[id] = 0 return PLUGIN_HANDLED } /* new param[3] param[0] = id param[1] = 1 FX_RemoveEffect1(param) param[1] = 2 //turbo first FX_RemoveEffect1(param) param[1] = 1 removesphere(param) param[2] = 2 removesphere(param) remove_task(1111 + id) PlayerTrans[id] = 0 set_pdata_int(id, 462, PlayerOrigSpeed[id]) set_pdata_int( id , 301, 0, -89 ); //protect!!! off: 301,0,-89 entity_set_int( id, EV_INT_flags, entity_get_int( id, EV_INT_flags ) & ~FL_FROZEN ); client_cmd(id, "stopsound") client_cmd(id, "cam_idealdist 40") message_begin( MSG_ALL, get_user_msgid("StopTransFX"), {0,0,0} ,id); write_byte(1); message_end( ); return PLUGIN_HANDLED } */ return PLUGIN_CONTINUE } public isBusy(id) { if(get_pdata_int(id, 459) == 0 || get_pdata_int(id, 462) == 0) //Speed.. if set to 0 your usually transforming. return 1 if(get_pdata_int(id, 199)) // Charging return 1 if(get_pdata_int(id, 200)) //Charging attack return 1 if(get_pdata_int(id, 230)) return 1 if(get_pdata_int(id, 300)) return 1 if(get_pdata_int(id, 298)) // In advanced melee return 1 if(get_pdata_int(id, 317)) // Swooping return 1 if(get_pdata_int(id, 464) == 0) //Shooting attack. return 1 if(entity_get_int(id, EV_INT_movetype) != 3) { if(entity_get_int(id, EV_INT_movetype) != 14) return 1 } if(floatround(entity_get_float(id, EV_FL_health)) < 6) //Hp less then 6 meaning ki is losing. return 1 if(floatround(entity_get_float(id, 36)) < 200) return 1 return 0 // we passed. } public PowerupMessage( msgid, dest, pEnt ) // To make ssj4 powering up red { new id = get_msg_arg_int(1) if(PlayerExtra[id]) { // Goku set_msg_arg_int( 2, ARG_BYTE, 255 ); set_msg_arg_int( 3, ARG_BYTE, 0 ); set_msg_arg_int( 4, ARG_BYTE, 0 ); } return PLUGIN_CONTINUE; } public resetblockSB(id){ blockSB[id] = 0 } public client_PostThink(id) // For making the turbo aura red { if(get_user_button(id) & IN_ATTACK && get_pdata_int(id, 199) ) // if the player is holding the firing button { blockSB[id] += 1 } set_task(2.0,"resetblockSB",id) if(PlayerTrans[id] || PlayerExtra[id]) { // Goku for( new entity = 1; entity < get_global_int(GL_maxEntities); entity++) { if(!is_valid_ent(entity)) continue; if(entity_get_edict(entity,EV_ENT_owner) == id) { new sz_ent[3][32] entity_get_string(entity, EV_SZ_model, sz_ent[2], 31) if( containi( sz_ent[2], "aura" ) != -1 ) { entity_set_int( entity, EV_INT_skin, 3 ); // sets the models 'skin' } } } } new one, two new anim = entity_get_int(id, EV_INT_sequence) if( anim == 116 || anim == 117 || get_user_weapon(id, one, two) == 32) { JubeiExplosion[id] = 1 } else if ( anim == 111 || anim == 100 ) { if ( JubeiSelect[id] !=0 ) { JubeiExplosion[id] = 1 } } else { JubeiSelect[id] = 0 } /* for( new entity = 1; entity < get_global_int(GL_maxEntities); entity++) { if(!is_valid_ent(entity)) continue; if(entity_get_edict(entity,EV_ENT_owner) == id) { new sz_ent[3][32] entity_get_string(entity, EV_SZ_model, sz_ent[2], 31) if( containi( sz_ent[2], "kame" ) != -1 ) { new done if(!done){ new Float: playerlocation[3] new float:vec1[3],iVec1[3] entity_get_vector(entity,EV_VEC_origin, vec1) FVecIVec(vec1,iVec1) message_begin( MSG_BROADCAST, SVC_TEMPENTITY, vec1); write_byte( 0 ); // TE_BEAMPOINTS write_coord(iVec1[0]) write_coord(iVec1[1]) write_coord(iVec1[2]) write_coord(iVec1[0] + 10) write_coord(iVec1[1]+ 10) write_coord(iVec1[2]+10) write_short( dust1 ); write_byte( 1 ); write_byte( 1 ); write_byte(2000); write_byte(100 ); write_byte( 0 ); write_byte(255) write_byte(255) write_byte(255) write_byte(100)//255 write_byte( 10 ); message_end(); done = 1 } } } } */ return PLUGIN_CONTINUE } public trail(id){ new clip,ammo new playerID = get_msg_arg_int( 1 ); new weapon = get_user_weapon( playerID, clip, ammo ) if(PlayerExtra[playerID]&& weapon == 6){ set_msg_arg_int( 5, ARG_SHORT, xkamestart ); // beam start set_msg_arg_int( 6, ARG_SHORT, xkamehead ); // beam head set_msg_arg_int( 7, ARG_SHORT, xkamecharge ); set_msg_arg_int( 8, ARG_SHORT, xkame ); // trail set_msg_arg_int( 9, ARG_BYTE, get_msg_arg_int(9) * 2 ) return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; } public kamehamehacharge (id) { if (PlayerExtra[id]){//double check new Float:vOrigin[3]; entity_get_vector( id, EV_VEC_origin, vOrigin ); new ent = find_ent_in_sphere( -1, vOrigin, 64.0 ); while( ent > 0 ) { new szModel[32]; entity_get_string( ent, EV_SZ_model, szModel, 31 ); if( containi( szModel, "sprites/kamecharge.spr" ) != -1 ) { entity_set_model( ent, "sprites/dutch/kamecharge.spr" ); } ent = find_ent_in_sphere( ent, vOrigin, 64.0 ); } } } public lightningsound1(params[]){ new id = params[0] emit_sound(id, CHAN_AUTO, "ambience/thunder_clap.wav", 1.0, ATTN_NORM, 0, PITCH_NORM) } public lightningsound2(params[]){ new id = params[0] emit_sound(id, CHAN_AUTO, "ambience/thunderroll.wav", 1.0, ATTN_NORM, 0, PITCH_NORM) } public strikelightning(params[]) { new id = params[0] if(is_user_alive(id)==0) { return PLUGIN_CONTINUE } else { new playerlocation[3] get_user_origin(id,playerlocation) for(new k=0;k<20;k++) { for (new i = 0; i<7; i++) // goes through lightning spawn 7 times { new randomlocation[3] // random location for lightning placement new higherlocation[3] // location higher up in the sky randomlocation[2] = playerlocation[2]-30 // sets the z value of the random location to the same as the players randomlocation[0] = playerlocation[0]+(random_num(-300,300)) // sets random location for lightning spawn randomlocation[1] = playerlocation[1]+(random_num(-300,300)) // similiar higherlocation[0] = randomlocation[0] higherlocation[1] = randomlocation[1] higherlocation[2] = randomlocation[2] + 1000 // sets height //laat het eerst wat bliksemen, daarna gaan we verder. beampoints(randomlocation, higherlocation, SpriteLightning, 1, 10, 10, 50, 100, 0, 0, 255, 100, 100) } return PLUGIN_CONTINUE } } return PLUGIN_CONTINUE } public strikelightningonplayer(params[]) { new id = params[0] if(is_user_alive(id)==0) { return PLUGIN_CONTINUE } else { new playerlocation[3] get_user_origin(id,playerlocation) for(new k=0;k<20;k++) { for (new i = 0; i<7; i++) // goes through lightning spawn 7 times { new randomlocation[3] // random location for lightning placement new higherlocation[3] // location higher up in the sky randomlocation[2] = playerlocation[2]-30 // sets the z value of the random location to the same as the players randomlocation[0] = playerlocation[0]+(random_num(-200,200)) // sets random location for lightning spawn randomlocation[1] = playerlocation[1]+(random_num(-200,200)) // similiar higherlocation[0] = randomlocation[0] higherlocation[1] = randomlocation[1] higherlocation[2] = randomlocation[2] + 300 // sets height //Dit zorgt ervoor dat wat bliksem op de player word gespawned beampoints(playerlocation, higherlocation, SpriteLightning, 1, 10, 10, 50, 100, 0, 0, 255, 100, 100) } return PLUGIN_CONTINUE } } return PLUGIN_CONTINUE } public beampoints(startloc[3], endloc[3], spritename, startframe, framerate, life, width, amplitude, r, g, b, brightness, speed) { message_begin( MSG_BROADCAST, SVC_TEMPENTITY) write_byte(0) // TE_BEAMPOINTS write_coord(startloc[0]) write_coord(startloc[1]) write_coord(startloc[2]) // start location write_coord(endloc[0]) write_coord(endloc[1]) write_coord(endloc[2]) // end location write_short(spritename) // spritename write_byte(startframe) // start frame write_byte(framerate) // framerate write_byte(life) // life write_byte(width) // line width write_byte(amplitude) // amplitude write_byte(255) write_byte(255) write_byte(255) // color write_byte(brightness) // brightness write_byte(speed) // speed message_end() } public eff1(params[]) //dutch: This effect creates a sprite around the player and fades it { new vec1[3] get_user_origin(params[0],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( SpriteLightning ) write_byte( 0 ) write_byte( 0 ) write_byte( 10 ) write_byte( 128 ) write_byte( 0 ) write_byte( 180 ) write_byte( 255 ) write_byte( 255 ) write_byte( 255 ) write_byte( 0 ) message_end() } public eff2(params[]){ new vec1[3] get_user_origin(params[0],vec1) // power up sprite - additive sprite, plays 1 cycl message_begin(MSG_BROADCAST,SVC_TEMPENTITY,vec1) write_byte(17) // TE_SPRITE write_coord(vec1[0]) // center position write_coord(vec1[1]) write_coord(vec1[2]) write_short(wave) // sprite index write_byte(7) // scale in 0.1's write_byte(255) // brightness message_end() } public tornado(params[]){ new id = params[0] new Float:fl_Origin[3] entity_get_vector(id, EV_VEC_origin, fl_Origin) // Do the cool grafics stuff // Random Z vector new Origin[3] FVecIVec(fl_Origin, Origin) //Origin[2] += random(1000) - 200 // Mostly above the player new randomNum = 10 //1 + random(19) for(new a = 1; a <= 10; a++) { WhiteFluffyCycloneWave(Origin, randomNum) } return PLUGIN_HANDLED } WhiteFluffyCycloneWave(vec[3], life) { message_begin(MSG_BROADCAST, SVC_TEMPENTITY, vec) write_byte(21) //TE_BEAMCYLINDER write_coord(vec[0]) write_coord(vec[1]) write_coord(vec[2] + 200) write_coord(vec[0]) write_coord(vec[1]) write_coord(vec[2] + 1000) //500 :S write_short(white) write_byte(0) // startframe write_byte(0) // framerate write_byte(life) // life write_byte(128) // width 128 write_byte(0) // noise write_byte(255) // r write_byte(255) // g write_byte(255) // b write_byte(200) // brightness write_byte(0) // scroll speed message_end() } public implo (params[]) { new id = params[0] for(new a = 1; a <= 5; a++) { new origin[3] get_user_origin(id,origin) message_begin( MSG_BROADCAST, SVC_TEMPENTITY ) write_byte( 14 ) write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2]) write_byte(500) write_byte(50) write_byte(7) message_end() } return PLUGIN_HANDLED } public TurboModel(id){ //I will need this model for the end of transformFX(1). new Float:origin[3] entity_get_vector(id,EV_VEC_origin,origin) origin[2] -= 5 turbo[id] = create_entity("env_model") entity_set_string(turbo[id],EV_SZ_classname,"turbosprite") entity_set_model(turbo[id],"models/ssj3aura.mdl") entity_set_origin(turbo[id],origin) entity_set_int(turbo[id], EV_INT_solid,SOLID_BBOX) entity_set_int(turbo[id],EV_INT_movetype,MOVETYPE_FLY) entity_set_edict(turbo[id],EV_ENT_owner,33) entity_set_float(turbo[id],EV_FL_framerate,1.0) //speed of the turbomodel's animation entity_set_float(turbo[id],EV_FL_scale,0.5) entity_set_int(turbo[id], EV_INT_sequence, 0 ); entity_set_int(turbo[id], EV_INT_skin, 3 ); set_rendering(turbo[id], kRenderFxNone, 0, 0, 0, kRenderTransAdd, 55 ) } public Machine(id){ //vegeta's machine ssj4 new Float:origin[3] entity_get_vector(id,EV_VEC_origin,origin) origin[0] -= 200 machine[id] = create_entity("env_model") entity_set_string(machine[id],EV_SZ_classname,"machine") entity_set_model(machine[id],"models/dutch/machine.mdl") entity_set_origin(machine[id],origin) entity_set_int(machine[id], EV_INT_solid,SOLID_BBOX) entity_set_int(machine[id],EV_INT_movetype,MOVETYPE_TOSS) // else we use FL_ONGROUND entity_set_edict(machine[id],EV_ENT_owner,id) entity_set_float(machine[id],EV_FL_framerate,1.0) //speed of the turbomodel's animation entity_set_float(machine[id],EV_FL_scale,0.5) entity_set_int(machine[id], EV_INT_sequence, 0 ); entity_set_int(machine[id], EV_INT_skin, 3 ); //set_rendering(machine[id], kRenderFxNone, 0, 0, 0, kRenderTransAdd, 55 ) } public energyline(id,num){ new Float:origin[3] entity_get_vector(id,EV_VEC_origin,origin) eline[id][num] = create_entity("env_model") entity_set_string(eline[id][num],EV_SZ_classname,"energy") entity_set_model(eline[id][num],"models/dutch/redenergyline.mdl") entity_set_origin(eline[id][num],origin) entity_set_int(eline[id][num], EV_INT_solid,SOLID_BBOX) entity_set_int(eline[id][num],EV_INT_movetype,MOVETYPE_FLY) entity_set_edict(eline[id][num],EV_ENT_owner,33) entity_set_float(eline[id][num],EV_FL_framerate,1.0) //speed of the turbomodel's animation entity_set_float(eline[id][num],EV_FL_scale,7.0) entity_set_int(eline[id][num], EV_INT_sequence, 0 ); set_rendering(eline[id][num], kRenderFxNone, 0, 0, 0, kRenderTransAdd, 120 ) } public removeturbo(params[]){ new id = params[0] remove_entity(turbo[id]) } public removemodel(params[]){ new id = params[0] for(new a = 1; a <= 2; a++) { if ( is_valid_ent ( eline[id][a] )) remove_entity(eline[id][a]) } } public removesphere(params[]){ new id = params[0] if ( is_valid_ent ( sphere[id] )) remove_entity(sphere[id]) } public removeredsphere(params[]){ new id = params[0] if ( is_valid_ent ( redsphere[id])) remove_entity(redsphere[id]) } public redspheremodel(id){ new Float: placepos[3] entity_get_vector(id,EV_VEC_origin,placepos) redsphere[id] = create_entity("env_model") new Float:tmaxs[3] = {5.0,5.0,5.0} new Float:tmins[3] = {-5.0,-5.0,-5.0} entity_set_origin(redsphere[id],placepos) entity_set_model(redsphere[id],"models/dutch/redmaura2.mdl") entity_set_int(redsphere[id],EV_INT_solid, 2) entity_set_size(redsphere[id],tmins,tmaxs) entity_set_float(redsphere[id],EV_FL_scale,5.0) entity_set_float(redsphere[id],EV_FL_framerate,1.0) set_rendering(redsphere[id], kRenderFxSolidSlow, 255, 0, 0, kRenderTransAdd, 1000 ) } public spheremodel(id){ new Float: placepos[3] entity_get_vector(id,EV_VEC_origin,placepos) sphere[id] = create_entity("env_model") new Float:tmaxs[3] = {5.0,5.0,5.0} new Float:tmins[3] = {-5.0,-5.0,-5.0} entity_set_origin(sphere[id],placepos) entity_set_model(sphere[id],"models/evolution/maura2.mdl") entity_set_int(sphere[id],EV_INT_solid, 2) entity_set_size(sphere[id],tmins,tmaxs) entity_set_float(sphere[id],EV_FL_scale,5.0) entity_set_float(sphere[id],EV_FL_framerate,1.0) set_rendering(sphere[id], kRenderFxSolidSlow, 255, 0, 0, kRenderTransAdd, 1000 ) } public clouds(id){ //I will need this model for the end of transformFX(1). new Float:origin[3] entity_get_vector(id,EV_VEC_origin,origin) turbo[id] = create_entity("env_model") entity_set_string(turbo[id],EV_SZ_classname,"energy") entity_set_model(turbo[id],"models/dutch/redclouds.mdl") entity_set_origin(turbo[id],origin) entity_set_int(turbo[id], EV_INT_solid,SOLID_NOT) entity_set_int(turbo[id],EV_INT_movetype,MOVETYPE_FLY) entity_set_edict(turbo[id],EV_ENT_owner,33) entity_set_float(turbo[id],EV_FL_framerate,1.0) //speed of the turbomodel's animation entity_set_float(turbo[id],EV_FL_scale,40.0) set_rendering(turbo[id], kRenderFxNone, 0, 0, 0, kRenderTransAdd, 20 ) entity_set_int(turbo[id], EV_INT_sequence, 0 ); entity_set_int(turbo[id], EV_INT_skin, 3 ); } // ************************************************************************************* // // *********************************** TEMP_ENTITIES *********************************** // // ************************************************************************************* // public DrawBeam( from[3], to[3], noise, width, life ){ message_begin( MSG_BROADCAST, SVC_TEMPENTITY, from); write_byte( 0 ); // TE_BEAMPOINTS write_coord(from[0]) write_coord(from[1]) write_coord(from[2]) write_coord(to[0]) write_coord(to[1]) write_coord(to[2]) write_short( dust1 ); write_byte( 1 ); write_byte( 1 ); write_byte( life ); write_byte( width ); write_byte( noise ); write_byte(255) write_byte(255) write_byte(255) write_byte(100)//255 write_byte( 10 ); message_end(); } public model_effect(startloc[3],spritename,scale,brightness){ message_begin ( MSG_BROADCAST, SVC_TEMPENTITY) write_byte(17) write_coord(startloc[0]) write_coord(startloc[1]) write_coord(startloc[2]) write_short(spritename) write_byte(scale) write_byte(brightness) message_end() } public beamcylinder(origin[3], m_iSpriteTexture, bRed, bGreen, bBlue){ message_begin( MSG_BROADCAST , SVC_TEMPENTITY, origin) write_byte( 20 ) // TE_BEAMCYLINDER write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2]) write_coord(origin[0]) write_coord(origin[1]) write_coord(origin[2] + 100) write_short(m_iSpriteTexture ) write_byte(0) // startframe write_byte(0) // framerate write_byte(24) // life write_byte(16) // width write_byte(50) // noise write_byte(bRed) write_byte(bGreen) write_byte(bBlue) write_byte(255) //brightness write_byte(0) // speed message_end() } public plugin_precache(){ //MODELS precache_model("models/dutch/redenergyline.mdl") //precache_model("models/dutch/redclouds.mdl") precache_model("models/ssj3aura.mdl") precache_model("models/dutch/redmaura2.mdl") //red sphere aura precache_model("models/evolution/maura2.mdl") //white sphere aura precache_model("models/player/ssj4goku/ssj4goku.mdl") //Precache ssj4 goku model precache_model("models/player/ssj4vegeta/ssj4vegeta.mdl") //Precache ssj4 goku model //precache_model("models/dutch/machine.mdl") //SPRITES /* precache_model("sprites/dutch/lightningbig.spr") precache_model("sprites/dutch/lightningbig2.spr") precache_model("sprites/dutch/lightningbig3.spr") precache_model("sprites/dutch/lightningsmall.spr") precache_model("sprites/dutch/lightningsmall2.spr") precache_model("sprites/dutch/lightningsmall3.spr") */ SpriteLightning = precache_model("sprites/dutch/redlgtning.spr") // Lightning sprite wave = precache_model("sprites/evm_swav1.spr") //evm_wave5.spr xkamestart = precache_model("sprites/dutch/10kameastart.spr") xkamehead = precache_model("sprites/dutch/10kamea.spr") xkamecharge = precache_model("sprites/dutch/kamecharge.spr") xkame = precache_model("sprites/dutch/10kametrail.spr") white = precache_model("sprites/xssmke1.spr") swooptrail = precache_model("sprites/evm_kaioken_trail.spr") precache_model("sprites/dutch/kamecharge.spr") shield = precache_model("sprites/shield.spr") dust = precache_model("sprites/dust.spr") precache_model("sprites/bluejet1.spr") dust1 = precache_model("sprites/dust2.spr") pusprite = precache_model("sprites/dutch/flare.spr") kametorp = precache_model("sprites/dutch/10kameb.spr") precache_model("sprites/flame4.spr") precache_model("sprites/evm_taura3.spr") //precache_model("sprites/dutch/redexplosion.spr") //flame = precache_model("sprites/evm_taura3.spr") //effect7sprite = precache_model("sprites/fingerlasercharge.spr") //SOUNDS precache_sound("vegeta/trans2_short_scream.wav") precache_sound("gokussj4/ssj4sentence.wav") precache_sound("gokussj4/jubeikamehameha.wav") precache_sound("gokussj4/jubeiha.wav") precache_sound("goku/turboost.wav") precache_sound("goku/turboost_scream.wav") precache_sound("evolution/Goku/Goku.4.alternate.wav") precache_sound("vegetassj4/ssj4trans.wav") precache_sound("vegetassj4/ssj4sentence.wav") precache_sound("weapons/descend.wav") precache_sound("ambience/thunder_clap.wav") precache_sound("ambience/thunderroll.wav") if(get_cvar_num("customtransformations")) loadcustomsounds() //precache all non functions strings } loadcustomsounds(){ new transfile[] = 0 get_cvar_string("gokutransfile",transfile,63) new line[80], len, Lines = 0,time[3] if(file_exists (transfile)){ while (read_file(transfile, Lines++, line, 79, len)) { if (line[0] == ';') continue // line is a comment parse(line, line, 80,time,3) if(!isalpha(line[0])) //skip empty lines continue if (get_func_id(line) == -1){ console_print(0,"DEBUG PRECACHESOUND '%s'",line) precache_sound(line) } } } Lines = 0 new soundname[32] get_cvar_string("vegetatransfile",transfile,63) if(file_exists (transfile)){ while (read_file(transfile, Lines++, line, 79, len)) { if (line[0] == ';') continue // line is a comment parse(line, line, 80) if(!isalpha(line[0])) //skip empty lines continue if (get_func_id(line) == -1){ format(soundname,31,"%s",line); console_print(0,"DEBUG PRECACHESOUND '%s'",soundname) precache_sound(soundname) } } } } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1043\\ f0\\ fs16 \n\\ par } */