Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pokemon/pokeskills.inc"
- enum POKESKILL
- {
- SKILL_ABSORB,
- SKILL_ACID,
- SKILL_ACIDARMOR,
- SKILL_AGILITY,
- SKILL_AMNESIA,
- SKILL_AURORABEAM,
- SKILL_BARRAGE,
- SKILL_BIDE,
- SKILL_BITE,
- SKILL_POWDEREDSNOW,
- SKILL_BODYSLAM,
- SKILL_BONECLUB,
- SKILL_BONEMERANG,
- SKILL_BUBBLEBEAM,
- SKILL_CONFUSERAY,
- SKILL_CONFUSION,
- SKILL_CONSTRICT,
- SKILL_CONVERSION,
- SKILL_COUNTER,
- SKILL_DEFENSECURL,
- SKILL_DIG,
- SKILL_DISABLE,
- SKILL_DIZZYPUNCH,
- SKILL_DOUBLEEDGE,
- SKILL_DOUBLEKICK,
- SKILL_DOUBLESLAP,
- SKILL_DOUBLETEAM,
- SKILL_DRAGONRAGE,
- SKILL_DREAMEATER,
- SKILL_DRILLPECK,
- SKILL_EARTHQUAKE,
- SKILL_EGGBOMB,
- SKILL_EMBER,
- SKILL_EXPLOSION,
- SKILL_FIREBLAST,
- SKILL_FIRESPIN,
- SKILL_FISSURE,
- SKILL_FLAMETHROWER,
- SKILL_FLASH,
- SKILL_FLY,
- SKILL_GLARE,
- SKILL_GROWTH,
- SKILL_GUILLOTINE,
- SKILL_GUST,
- SKILL_HARDER,
- SKILL_HAZE,
- SKILL_HORNATTACK,
- SKILL_HORNDRILL,
- SKILL_HYDROPUMP,
- SKILL_HYPERBEAM,
- SKILL_HYPNOSIS,
- SKILL_ICEBEAM,
- SKILL_KARATECHOP,
- SKILL_LEECHLIFE,
- SKILL_LEECHSEED,
- SKILL_LEER,
- SKILL_LIGHTSCREEN,
- SKILL_LOWKICK,
- SKILL_MEGADRAIN,
- SKILL_MEGAKICK,
- SKILL_MEGAPUNCH,
- SKILL_MIST,
- SKILL_NIGHTSHADE,
- SKILL_PAYDAY,
- SKILL_PECK,
- SKILL_PINMISSILE,
- SKILL_POISONGAS,
- SKILL_POISONPOWDER,
- SKILL_POISONSTING,
- SKILL_PSYBEAM,
- SKILL_PSYCHIC,
- SKILL_PSYWAVE,
- SKILL_QUICKATTACK,
- SKILL_RAGE,
- SKILL_RAZORLEAF,
- SKILL_RECOVER,
- SKILL_REFLECT,
- SKILL_REST,
- SKILL_ROAR,
- SKILL_ROCKSLIDE,
- SKILL_ROCKTRHOW,
- SKILL_SANDATTACK,
- SKILL_SCRATCH,
- SKILL_SCREECH,
- SKILL_SEISMICTOSS,
- SKILL_SELFDESTRUCT,
- SKILL_SING,
- SKILL_SKULLBASH,
- SKILL_SKYATTACK,
- SKILL_SLASH,
- SKILL_SLEEPPOWDER,
- SKILL_SMOG,
- SKILL_SMOKESCREEN,
- SKILL_SOLARBEAM,
- SKILL_SONICBOOM,
- SKILL_SPIKECANNON,
- SKILL_SPLASH,
- SKILL_SPORE,
- SKILL_STOMP,
- SKILL_STRENGTH,
- SKILL_STRINGSHOT,
- SKILL_STUNGSPORE,
- SKILL_SUBMISSION,
- SKILL_SUBSTITUTE,
- SKILL_SUPERSONIC,
- SKILL_SWIFT,
- SKILL_TACKLE,
- SKILL_TAILWHIP,
- SKILL_TAKE,
- SKILL_TELEPORT,
- SKILL_THRASH,
- SKILL_THUNDER,
- SKILL_THUNDERWAVE,
- SKILL_THUNDERBOLT,
- SKILL_THUNDERSHOCK,
- SKILL_TOXIC,
- SKILL_TRANSFORM,
- SKILL_TRIATTACK,
- SKILL_VICEGRIP,
- SKILL_VINEWHIP,
- SKILL_WATERFALL,
- SKILL_WRAP,
- SKILL_AEROBLAST,
- SKILL_ANCIENTPOWER,
- SKILL_AROMATHERAPY,
- SKILL_AVALANCHE,
- SKILL_BLAZEKICK,
- SKILL_BOUNCE,
- SKILL_CALMMIND,
- SKILL_CRUNCH,
- SKILL_ERUPTION,
- SKILL_EXTREMESPEED,
- SKILL_FAINTATTACK,
- SKILL_FIREPUNCH,
- SKILL_FLASHCANNON,
- SKILL_FORESIGHT,
- SKILL_FUTURESIGHT,
- SKILL_GIGADRAIN,
- SKILL_GUARDSWAP,
- SKILL_HEALBELL,
- SKILL_ASSIST,
- SKILL_HIDDENPOWER,
- SKILL_BLIZZARD,
- SKILL_INSOMNIA,
- SKILL_IRONDEFENSE,
- SKILL_LEAFSTORM,
- SKILL_LELIVATE,
- SKILL_LOVELYKISS,
- SKILL_LUSTERPURGE,
- SKILL_MAGMAARMOR,
- SKILL_MINIMIZE,
- SKILL_MIRRORCOAT,
- SKILL_OCTOZOOKA,
- SKILL_OVERHEAT,
- SKILL_POISONFANG,
- SKILL_PRESENT,
- SKILL_PROTECT,
- SKILL_PSYCHOBOOST,
- SKILL_RAINDANCE,
- SKILL_RAZORWIND,
- SKILL_REVERSAL,
- SKILL_SACREDFIRE,
- SKILL_SANDSTORM,
- SKILL_SCARYFACE,
- SKILL_SHADOWBALL,
- SKILL_SHEERCOLD,
- SKILL_SHOCKWAVE,
- SKILL_SILENT,
- SKILL_SPARK,
- SKILL_SPIDERWEB,
- SKILL_SOFTBOILED,
- SKILL_STEELWING,
- SKILL_STONEEDGE,
- SKILL_SUNNYDAY,
- SKILL_SYNTHESIS,
- SKILL_TELEKNESIS,
- SKILL_THIEF,
- SKILL_THUNDERPUNCH,
- SKILL_TRIPLEKICK,
- SKILL_WATERPULSE,
- SKILL_ZAPCANNON,
- SKILL_BLOCK,
- SKILL_BUGBITE,
- SKILL_DRAGONRUSH,
- SKILL_ELECTRABALL,
- SKILL_ENDEAVOR,
- SKILL_FOCUSENERGY,
- SKILL_HEALORDER,
- SKILL_ICEBALL,
- SKILL_MAGICALLEAF,
- SKILL_MIMIC,
- SKILL_NIGHTSLASH,
- SKILL_SUCKERPUNCH,
- SKILL_SWAGGER,
- SKILL_SWEETKISS,
- SKILL_THUNDERFANG,
- SKILL_WATERSPORT,
- SKILL_WHIRLWIND,
- SKILL_WINGATTACK,
- SKILL_MEDITATE,
- SKILL_EPICBOMB,
- SKILL_WEATHERBEAM,
- SKILL_ICYWIND,
- SKILL_HELPINGHAND,
- SKILL_SPITFIRE,
- SKILL_ICEPUNCH,
- SKILL_FLAMEWHEEL,
- SKILL_DARKPULSE,
- SKILL_MEMENTO,
- SKILL_VANISHER,
- SKILL_SHADOWSENSOR,
- SKILL_ELECTRICTHREADS,
- SKILL_HEALINGWAVE,
- SKILL_SHELLYCOAT,
- SKILL_OVERCOAT,
- SKILL_ORACLE,
- SKILL_POISONPOINT,
- SKILL_BLACKGODFLAMES,
- SKILL_LIMBER,
- SKILL_EVILROOT,
- SKILL_RAPIDRUN,
- SKILL_SERPENTEYES,
- SKILL_FIREMADNESS,
- SKILL_FIREPUNCHES,
- SKILL_HIDDENWEAPON,
- SKILL_HIDDENHOWL,
- SKILL_RUNAWAY,
- SKILL_FEROCIOUSHUNTER,
- SKILL_TRACKER,
- SKILL_PROTECTANT,
- SKILL_SAVIOR,
- SKILL_ASSASSIN,
- SKILL_ANGRYPECKER,
- SKILL_CALMSCENE,
- SKILL_MASSIVEEXPLOSION,
- SKILL_SPEEDYBOLT,
- SKILL_STEELER,
- SKILL_CRYSTALLIZE,
- SKILL_SANDFORCE,
- SKILL_SILENTSCREAMING,
- SKILL_FRAGRANCE,
- SKILL_IRONFIST,
- SKILL_STATUE,
- SKILL_CONCRETEMISSILE,
- SKILL_HELPER,
- SKILL_EARTHSHAKER,
- SKILL_POISONTOUCH,
- SKILL_INVISIBLETHREADS,
- SKILL_LEADSLICER,
- SKILL_DARKVENOM,
- SKILL_QUICKFEAT,
- SKILL_DIVERSION,
- SKILL_INFILTRATOR,
- SKILL_HEALINGLEAF,
- SKILL_RECKLESSNESS,
- SKILL_BLOCKER,
- SKILL_NIGHTVISION,
- SKILL_CLOSESIGHT,
- SKILL_HEAVYSLEEP,
- SKILL_ZENMODE,
- SKILL_SCREAMINGSTORM,
- SKILL_HIDDENROCK,
- SKILL_SHEDSKIN,
- SKILL_HOODLUM,
- SKILL_MIRRORTOUCH,
- SKILL_BODYEATER,
- SKILL_SOLIDROCK,
- SKILL_TRIBEAM,
- SKILL_TRASHGAS,
- SKILL_TOXICSPRAY,
- SKILL_EXTRAAMMO,
- SKILL_REVERSEDAMGE,
- SKILL_AMPLIFIER,
- SKILL_DARKMOON,
- SKILL_MAGICGUARD,
- SKILL_WATERPUMPER,
- SKILL_HYDRATION,
- SKILL_ICEBODY,
- SKILL_ICEWINDS,
- SKILL_SNOWSTORM,
- SKILL_SERENEGRACE,
- SKILL_IMITATION,
- SKILL_HOSTAGETAKER,
- SKILL_CURSEDBODY,
- SKILL_ELECTROWEB,
- SKILL_THORNYBARRIER,
- SKILL_PROJUMPER,
- SKILL_CLEARBODY,
- SKILL_DISKTHROWER,
- SKILL_DISKEXPLOSIVE,
- SKILL_UNKNOWNWORLD,
- SKILL_BRAINATTACKER,
- SKILL_FLAMELIGHTER,
- SKILL_SOULTAKER,
- SKILL_ADAMANTDRAGON,
- SKILL_ICECHILL,
- SKILL_ICECHAINS,
- SKILL_SHELLARMOR,
- SKILL_STEALTH,
- SKILL_EARTHLYLIGHTINING,
- SKILL_INNERFOCUS,
- SKILL_WHIPSLASH,
- SKILL_DRAGONLIGHT,
- SKILL_REGENERATION,
- SKILL_BLADEDHANDS,
- SKILL_PRESSURE,
- SKILL_HEADCHARGE,
- SKILL_HUSTLE,
- SKILL_ARMORRESPAWN,
- SKILL_WINDDRAGONROAR,
- SKILL_WHITESMOKE,
- SKILL_TRIPLETEAM,
- SKILL_EVILINTENT,
- SKILL_BLAZINGTOUCH,
- SKILL_DEADLYHORN,
- SKILL_SEAOFFLAMES,
- SKILL_MINDCONTROL,
- SKILL_DEADLYDREAM,
- SKILL_WATERSPRAYER,
- SKILL_GEYSERNEST,
- SKILL_SHININGLIGHT,
- SKILL_EMOTIONALPAIN,
- SKILL_FLIGHT,
- SKILL_ROCKYSKY,
- SKILL_HIGHDEFENSE,
- SKILL_METALBURST,
- SKILL_DECIEVING,
- SKILL_FALLENLIFE,
- SKILL_NIGHTDAZE,
- SKILL_PHANTONDAZE,
- SKILL_WATERGOD,
- SKILL_RELICSONG,
- SKILL_TECHNODRIVE,
- SKILL_DEVINEJUDGMENT,
- SKILL_DEVINEICE,
- SKILL_BLACKDEATH,
- SKILL_SHADOWSTALKER,
- SKILL_LIGHTNINGFURY,
- SKILL_VOLCANOGEYSER,
- SKILL_FLYINGJUDGMENT,
- SKILL_ACIDRAIN,
- SKILL_ANCIENT,
- SKILL_FIREEXPLOSION,
- SKILL_CALMINGWAVES,
- }
- ///////////////////////////////////////
- // When someone presses +pokeskill //
- ///////////////////////////////////////
- public pokeskill_down(id)
- {
- g_StopSkill[id] = false;
- if( !PMon() ){
- poke_printlang(id,"POKEMOD_DISABLED")
- return PLUGIN_HANDLED
- }
- else if( PM_disabled == PM_XP ){
- poke_printlang(id,"POKEMOD_SKILLSDISABLED")
- return PLUGIN_HANDLED
- }
- else if( !ValidPoke( PlayersPoke[id][0] ) ){
- StartMenu(id)
- return PLUGIN_HANDLED
- }
- if( g_isItemed[id] ){
- SetActionMenu( id, AC_GO );
- return PLUGIN_HANDLED;
- }
- if( !Pokemod_Alive(id) ){
- new parm[2];
- parm[0] = id;
- parm[1] = 0;
- set_task(0.1, "PokeMenu", 0, parm, 2);
- return PLUGIN_HANDLED;
- }
- new skill_num, command[32];
- read_argv(0,command,31);
- replace(command, 31, "+pokeskill", EMPTY);
- skill_num = str_to_num(command);
- new poke_skills[MAX_SKILLS], skill_count, i;
- for( i = 0; i < MAX_SKILLS; i++ )
- poke_skills[i] = -1;
- new pid = Pokemon[id], tempskill, tempcheck, bool:skill_found;
- for( i = -1; i<MAX_ACTIVE_POKES; i++ ){
- if( i != -1 ){
- pid = PlayersPoke[id][i];
- //if weve already added the skill in, we don't need to add it again
- if( i == PlayersActive[id] )
- continue;
- }
- while( pid && skill_count < MAX_SKILLS ){
- if( !PokeDisabled(pid) && (tempskill = PokeSkill[pid]) != -1 ){
- if( (i==-1 || PokeInfo[pid] & PI_GLOBAL) && SkillInfo[tempskill] & SI_BIND ){
- skill_found = false;
- for( tempcheck=0; tempcheck < skill_count; tempcheck++ )
- if( poke_skills[tempcheck] == tempskill )
- skill_found = true;
- if( !skill_found ){
- poke_skills[skill_count] = tempskill;
- skill_count++;
- }
- }
- }
- pid = AnyEvolveTo(pid);
- }
- }
- if( skill_count > 1 && !skill_num ){
- if( !ValidSkill( ActiveSkill(id) ) ){
- SkillMenu(id);
- return PLUGIN_HANDLED;
- }
- else
- tempskill = ActiveSkill(id);
- }
- else if( skill_num )
- SetActiveSkill(id, (tempskill = poke_skills[skill_num-1]) );
- else
- SetActiveSkill(id, (tempskill = poke_skills[0]) );
- //couldnt find any skill to use, lets just use their first skill
- if( !ValidSkill(tempskill) && !PokeDisabled( Pokemon[id] ) )
- SetActiveSkill(id, (tempskill = PokeSkill[Pokemon[id]]) );
- //stop, they dont have a valid skill
- if( !ValidSkill(tempskill) ){
- poke_printlang(id,"POKEMOD_NOSKILL" );
- return PLUGIN_HANDLED;
- }
- //stop, they dont have a bind skill
- if( !(SkillInfo[tempskill] & SI_BIND) ){
- set_hudmessage(0, 255, 0, 0.6, 0.8, 0, 6.0, 1.1, 0.0, 0.0, -1)
- show_hudmessage(id, "%s cannot be manually activated.", SkillToName(tempskill))
- return PLUGIN_HANDLED;
- }
- //stop, we arent allowing the skill to be used
- if( DisAllowSkill( id, tempskill, true ) )
- return PLUGIN_HANDLED;
- //check spam time. stop if they are spamming
- new Float:current_time = get_gametime();
- if(current_time-g_lastSkill[id] < SKILL_SPAM){
- set_hudmessage(0, 255, 0, 0.6, 0.8, 0, 6.0, 1.1, 0.0, 0.0, -1)
- show_hudmessage(id, "Stop trying to spam PokeMod skills.")
- return PLUGIN_HANDLED;
- }
- g_lastSkill[id] = current_time;
- //send into skill handler
- bind_skill_handler(id+POKESKILL_TASK);
- debugMessage(id,6,"Player", "keyed down with %s", SkillToName( ActiveSkill(id) ) );
- return PLUGIN_HANDLED;
- }
- ////////////////////////////////////////
- // When someone releases +pokeskill //
- ////////////////////////////////////////
- public pokeskill_up(id)
- {
- debugMessage(id,6,"Player", "keyed up with %s", SkillToName( ActiveSkill(id) ) );
- skills_handler(id, SI_RELEASE);
- if( ValidSkill( ActiveSkill(id) ) ){
- if( Action[id] == AC_SKILL )
- SkillMenu(id);
- }
- g_StopSkill[id] = true;
- #if SKILL_UNSPAM == 1
- g_lastSkill[id] = 0.0;
- #endif
- return PLUGIN_HANDLED;
- }
- public bind_skill_handler(id)
- {
- id -= POKESKILL_TASK;
- if( ValidPlayer( id ) ){
- if( !Pokemod_Alive(id) || DisAllowSkill( id, ActiveSkill(id), true ) || g_StopSkill[id] ){
- g_StopSkill[id] = false;
- }
- else if( ValidSkill( ActiveSkill(id) ) ){
- CallSkill(id, ActiveSkill(id), SI_BIND);
- set_task(0.1,"bind_skill_handler", POKESKILL_TASK+id)
- }
- }
- }
- skills_handler(id, call_prop)
- {
- if( PlayerEventForward > -1 )
- {
- new functionReturn
- ExecuteForward(PlayerEventForward, functionReturn, id, call_prop)
- if( functionReturn==PLUGIN_HANDLED )
- return;
- }
- new skill, subpoke, bool:auto_globals=false;
- if( call_prop & SI_RESET || call_prop & SI_ROUNDRESET || call_prop & SI_CONNECT || call_prop & SI_DISCONNECT )
- auto_globals = true;
- if( !PokeDisabled( Pokemon[id] ) ){
- skill = PokeSkill[Pokemon[id]];
- if( !DisAllowSkill(id, skill) && SkillInfo[ skill ] & call_prop )
- CallSkill(id, skill, call_prop)
- }
- //if their active poke is evolved, deal with the skills it had
- subpoke = AnyEvolveTo(Pokemon[id])
- while(subpoke && subpoke!=Pokemon[id]){
- if( !PokeDisabled( subpoke ) ){
- skill = PokeSkill[subpoke];
- if( !DisAllowSkill(id, skill) && SkillInfo[skill] & call_prop )
- CallSkill(id, skill, call_prop)
- }
- subpoke = AnyEvolveTo(subpoke)
- }
- //now on to the global pokes
- new m, pid_global;
- for(m=0; m<MAX_ACTIVE_POKES; m++){
- pid_global = PlayersPoke[id][m]
- if( Pokemon[id] == pid_global )
- continue;
- if( (auto_globals || PokeInfo[pid_global] & PI_GLOBAL) && !PokeDisabled(pid_global) ){
- skill = PokeSkill[pid_global];
- if( !DisAllowSkill(id, skill) && SkillInfo[skill] & call_prop )
- CallSkill(id, skill, call_prop)
- }
- //sub globals now
- subpoke = AnyEvolveTo(pid_global)
- while(subpoke && subpoke!=pid_global){
- if( (auto_globals || PokeInfo[subpoke] & PI_GLOBAL) && !PokeDisabled(subpoke) ){
- skill = PokeSkill[subpoke];
- if( !DisAllowSkill(id, skill) && SkillInfo[skill] & call_prop )
- CallSkill(id, skill, call_prop)
- }
- subpoke = AnyEvolveTo(subpoke)
- }
- }
- }
- bool:PokeDisabled( pokemon )
- {
- if( PokeInfo[pokemon]&PI_DISABLE || SafariLevel(pokemon)==-1000 )
- return true;
- return false;
- }
- bool:DisAllowSkill(id, skill, bool:bind=false)
- {
- if( !ValidSkill( skill ) || !Pokemod_Connected(id) )
- return true;
- if( PM_disabled == PM_XP ){
- if(bind) poke_printlang(id,"POKEMOD_SKILLSDISABLED");
- return true;
- }
- else if( SkillInfo[skill] & SI_DISABLE ){
- if(bind) poke_printlang(id,"POKEMOD_SKILLDIS");
- return true;
- }
- else if( SkillInfo[skill] & SI_CALL )
- return false;
- else if( !(SkillInfo[skill] & SI_IGNORE) && BindTime(id) ){
- if(bind) sound_deny(id);
- return true;
- }
- else if( g_Status[id][STATUS_ASLEEP] ){
- if(bind) poke_printlang(id,"POKEMOD_SKILLASLEEP");
- return true;
- }
- else if( !(SkillInfo[skill] & SI_DEAD) && !Pokemod_Alive(id) ){
- if(bind) poke_printlang(id,"POKEMOD_SKILLDEAD");
- return true;
- }
- else if( SkillInfo[skill] & SI_ADMIN && !is_user_admin(id) ){
- if(bind) poke_printlang(id,"POKEMOD_SKILLADMIN");
- return true;
- }
- else if( FreezeTime ){
- if(bind) poke_printlang(id,"POKEMOD_SKILLFREEZE");
- return true;
- }
- #if MOD==CS
- else if( cs_get_user_vip(id) ){
- if(bind) poke_printlang(id,"POKEMOD_SKILLVIP");
- return true;
- }
- #endif
- #if MOD==NS
- else if( ns_get_class(id) == CLASS_COMMANDER ){
- if(bind) poke_printlang(id,"POKEMOD_SKILLCOM");
- return true;
- }
- #endif
- return false;
- }
- stock RemoveDelayCallSkill(id, skill)
- remove_task( SKILLCALL_TASK + (skill * MAX_PLAYERS) + id );
- stock DelayedCallSkill(Float:time, id, skill, prop)
- {
- new parm[ 3 ];
- parm[ 0 ] = id;
- parm[ 1 ] = _:skill;
- parm[ 2 ] = prop;
- set_task(time, "task_CallSkill", SKILLCALL_TASK + (skill* MAX_PLAYERS) + id, parm, 3);
- }
- public task_CallSkill( parm[] )
- CallSkill( parm[0], parm[1], parm[2] );
- CallSkill(id, POKESKILL:skill, prop)
- {
- if( ValidPlayer(id) && ValidSkill(skill) ){
- new SKILL:iSkillReturn;
- switch( skill )
- {
- case SKILL_ABSORB: iSkillReturn = Absorb( id, skill, prop );
- case SKILL_ACID: iSkillReturn = Acid ( id, skill, prop );
- case SKILL_ACIDARMOR: iSkillReturn = Acid_Armor( id, skill, prop );
- case SKILL_AGILITY: iSkillReturn = Agility( id, skill, prop );
- case SKILL_AMNESIA: iSkillReturn = Amnesia( id, skill, prop );
- case SKILL_AURORABEAM: iSkillReturn = Aurora_Beam( id, skill, prop );
- case SKILL_BARRAGE: iSkillReturn = Barrage( id, skill, prop );
- case SKILL_BIDE: iSkillReturn = Bide( id, skill, prop );
- case SKILL_BITE: iSkillReturn = Bite( id, skill, prop );
- case SKILL_POWDEREDSNOW: iSkillReturn = Powdered_Snow( id, skill, prop );
- case SKILL_BODYSLAM: iSkillReturn = Body_Slam( id, skill, prop );
- case SKILL_BONECLUB: iSkillReturn = Bone_Club( id, skill, prop );
- case SKILL_BONEMERANG: iSkillReturn = Bonemerang( id, skill, prop );
- case SKILL_BUBBLEBEAM: iSkillReturn = Bubble_Beam( id, skill, prop );
- case SKILL_CONFUSERAY: iSkillReturn = Confuse_Ray( id, skill, prop );
- case SKILL_CONFUSION: iSkillReturn = Confusion( id, skill, prop );
- case SKILL_CONSTRICT: iSkillReturn = Constrict( id, skill, prop );
- case SKILL_CONVERSION: iSkillReturn = Conversion( id, skill, prop );
- case SKILL_COUNTER: iSkillReturn = Counter( id, skill, prop );
- case SKILL_DEFENSECURL: iSkillReturn = Defense_Curl( id, skill, prop );
- case SKILL_DIG: iSkillReturn = Dig( id, skill, prop );
- case SKILL_DISABLE: iSkillReturn = Disable( id, skill, prop );
- case SKILL_DIZZYPUNCH: iSkillReturn = Dizzy_Punch( id, skill, prop );
- case SKILL_DOUBLEEDGE: iSkillReturn = Double_Edge( id, skill, prop );
- case SKILL_DOUBLEKICK: iSkillReturn = Double_Kick( id, skill, prop );
- case SKILL_DOUBLESLAP: iSkillReturn = Double_Slap( id, skill, prop );
- case SKILL_DOUBLETEAM: iSkillReturn = Double_Team( id, skill, prop );
- case SKILL_DRAGONRAGE: iSkillReturn = Dragon_Rage( id, skill, prop );
- case SKILL_DREAMEATER: iSkillReturn = Dream_Eater( id, skill, prop );
- case SKILL_DRILLPECK: iSkillReturn = Drill_Peck( id, skill, prop );
- case SKILL_EARTHQUAKE: iSkillReturn = Earthquake( id, skill, prop );
- case SKILL_EGGBOMB: iSkillReturn = Egg_Bomb( id, skill, prop );
- case SKILL_EMBER: iSkillReturn = Ember( id, skill, prop );
- case SKILL_EXPLOSION: iSkillReturn = Explosion( id, skill, prop );
- case SKILL_FIREBLAST: iSkillReturn = Fire_Blast( id, skill, prop );
- case SKILL_FIRESPIN: iSkillReturn = Fire_Spin( id, skill, prop );
- case SKILL_FISSURE: iSkillReturn = Fissure( id, skill, prop );
- case SKILL_FLAMETHROWER: iSkillReturn = Flamethrower( id, skill, prop );
- case SKILL_FLASH: iSkillReturn = Flash( id, skill, prop );
- case SKILL_FLY: iSkillReturn = Fly( id, skill, prop );
- case SKILL_GLARE: iSkillReturn = Glare( id, skill, prop );
- case SKILL_GROWTH: iSkillReturn = Growth( id, skill, prop );
- case SKILL_GUILLOTINE: iSkillReturn = Guillotine( id, skill, prop );
- case SKILL_GUST: iSkillReturn = Gust( id, skill, prop );
- case SKILL_HARDER: iSkillReturn = Harden( id, skill, prop );
- case SKILL_HAZE: iSkillReturn = Haze( id, skill, prop );
- case SKILL_HORNATTACK: iSkillReturn = Horn_Attack( id, skill, prop );
- case SKILL_HORNDRILL: iSkillReturn = Horn_Drill( id, skill, prop );
- case SKILL_HYDROPUMP: iSkillReturn = Hydro_Pump( id, skill, prop );
- case SKILL_HYPERBEAM: iSkillReturn = Hyper_Beam( id, skill, prop );
- case SKILL_HYPNOSIS: iSkillReturn = Hypnosis( id, skill, prop );
- case SKILL_ICEBEAM: iSkillReturn = Ice_Beam( id, skill, prop );
- case SKILL_KARATECHOP: iSkillReturn = Karate_Chop( id, skill, prop );
- case SKILL_LEECHLIFE: iSkillReturn = Leech_Life( id, skill, prop );
- case SKILL_LEECHSEED: iSkillReturn = Leech_Seed( id, skill, prop );
- case SKILL_LEER: iSkillReturn = Leer( id, skill, prop );
- case SKILL_LIGHTSCREEN: iSkillReturn = Light_Screen( id, skill, prop );
- case SKILL_LOWKICK: iSkillReturn = Low_Kick( id, skill, prop );
- case SKILL_MEGADRAIN: iSkillReturn = Low_Kick( id, skill, prop );
- case SKILL_MEGAKICK: iSkillReturn = Mega_Kick( id, skill, prop );
- case SKILL_MEGAPUNCH: iSkillReturn = Mega_Punch( id, skill, prop );
- case SKILL_MIST: iSkillReturn = Mist( id, skill, prop );
- case SKILL_NIGHTSHADE: iSkillReturn = Night_Shade( id, skill, prop );
- case SKILL_PAYDAY: iSkillReturn = Pay_Day( id, skill, prop );
- case SKILL_PECK: iSkillReturn = Peck( id, skill, prop );
- case SKILL_PINMISSILE: iSkillReturn = Pin_Missile( id, skill, prop );
- case SKILL_POISONGAS: iSkillReturn = Poison_Gas( id, skill, prop );
- case SKILL_POISONPOWDER: iSkillReturn = Poison_Powder( id, skill, prop );
- case SKILL_POISONSTING: iSkillReturn = Poison_Sting( id, skill, prop );
- case SKILL_PSYBEAM: iSkillReturn = Psybeam( id, skill, prop );
- case SKILL_PSYCHIC: iSkillReturn = Psychic( id, skill, prop );
- case SKILL_PSYWAVE: iSkillReturn = Psywave( id, skill, prop );
- case SKILL_QUICKATTACK: iSkillReturn = Quick_Attack( id, skill, prop );
- case SKILL_RAGE: iSkillReturn = Rage( id, skill, prop );
- case SKILL_RAZORLEAF: iSkillReturn = Razor_Leaf( id, skill, prop );
- case SKILL_RECOVER: iSkillReturn = Recover( id, skill, prop );
- case SKILL_REFLECT: iSkillReturn = Reflect( id, skill, prop );
- case SKILL_REST: iSkillReturn = Rest( id, skill, prop );
- case SKILL_ROAR: iSkillReturn = Roar( id, skill, prop );
- case SKILL_ROCKSLIDE: iSkillReturn = Rock_Slide( id, skill, prop );
- case SKILL_ROCKTRHOW: iSkillReturn = Rock_Throw( id, skill, prop );
- case SKILL_SANDATTACK: iSkillReturn = Sand_Attack( id, skill, prop );
- case SKILL_SCRATCH: iSkillReturn = Scratch( id, skill, prop );
- case SKILL_SCREECH: iSkillReturn = Screech( id, skill, prop );
- case SKILL_SEISMICTOSS: iSkillReturn = Seismic_Toss( id, skill, prop );
- case SKILL_SELFDESTRUCT: iSkillReturn = Self_Destruct( id, skill, prop );
- case SKILL_SING: iSkillReturn = Sing( id, skill, prop );
- case SKILL_SKULLBASH: iSkillReturn = Skullbash( id, skill, prop );
- case SKILL_SKYATTACK: iSkillReturn = Sky_Attack( id, skill, prop );
- case SKILL_SLASH: iSkillReturn = Slash( id, skill, prop );
- case SKILL_SLEEPPOWDER: iSkillReturn = Sleep_Powder( id, skill, prop );
- case SKILL_SMOG: iSkillReturn = Smog( id, skill, prop );
- case SKILL_SMOKESCREEN: iSkillReturn = Smokescreen( id, skill, prop );
- case SKILL_SOLARBEAM: iSkillReturn = Solar_Beam( id, skill, prop );
- case SKILL_SONICBOOM: iSkillReturn = Sonic_Boom( id, skill, prop );
- case SKILL_SPIKECANNON: iSkillReturn = Spike_Cannon( id, skill, prop );
- case SKILL_SPLASH: iSkillReturn = Splash( id, skill, prop );
- case SKILL_SPORE: iSkillReturn = Spore( id, skill, prop );
- case SKILL_STOMP: iSkillReturn = Stomp( id, skill, prop );
- case SKILL_STRENGTH: iSkillReturn = Strength( id, skill, prop );
- case SKILL_STRINGSHOT: iSkillReturn = String_Shot( id, skill, prop );
- case SKILL_STUNGSPORE: iSkillReturn = Stun_Spore( id, skill, prop );
- case SKILL_SUBMISSION: iSkillReturn = Submission( id, skill, prop );
- case SKILL_SUBSTITUTE: iSkillReturn = Substitute( id, skill, prop );
- case SKILL_SUPERSONIC: iSkillReturn = Supersonic( id, skill, prop );
- case SKILL_SWIFT: iSkillReturn = Swift( id, skill, prop );
- case SKILL_TACKLE: iSkillReturn = Tackle( id, skill, prop );
- case SKILL_TAILWHIP: iSkillReturn = Tail_Whip( id, skill, prop );
- case SKILL_TAKE: iSkillReturn = Take_Down( id, skill, prop );
- case SKILL_TELEPORT: iSkillReturn = Teleport( id, skill, prop );
- case SKILL_THRASH: iSkillReturn = Thrash( id, skill, prop );
- case SKILL_THUNDER: iSkillReturn = Thunder( id, skill, prop );
- case SKILL_THUNDERWAVE: iSkillReturn = Thunder_Wave( id, skill, prop );
- case SKILL_THUNDERBOLT: iSkillReturn = Thunderbolt( id, skill, prop );
- case SKILL_THUNDERSHOCK: iSkillReturn = Thundershock( id, skill, prop );
- case SKILL_TOXIC: iSkillReturn = Toxic( id, skill, prop );
- case SKILL_TRANSFORM: iSkillReturn = Transform( id, skill, prop );
- case SKILL_TRIATTACK: iSkillReturn = Tri_Attack( id, skill, prop );
- case SKILL_VICEGRIP: iSkillReturn = Vice_Grip( id, skill, prop );
- case SKILL_VINEWHIP: iSkillReturn = Vine_Whip( id, skill, prop );
- case SKILL_WATERFALL: iSkillReturn = Waterfall( id, skill, prop );
- case SKILL_WRAP: iSkillReturn = Wrap( id, skill, prop );
- case SKILL_AEROBLAST: iSkillReturn = Aeroblast( id, skill, prop );
- case SKILL_ANCIENTPOWER: iSkillReturn = Ancient_Power( id, skill, prop );
- case SKILL_AROMATHERAPY: iSkillReturn = Aromatherapy( id, skill, prop );
- case SKILL_AVALANCHE: iSkillReturn = Avalanche( id, skill, prop );
- case SKILL_BLAZEKICK: iSkillReturn = Blaze_Kick( id, skill, prop );
- case SKILL_BOUNCE: iSkillReturn = Bounce( id, skill, prop );
- case SKILL_CALMMIND: iSkillReturn = Calm_Mind( id, skill, prop );
- case SKILL_CRUNCH: iSkillReturn = Crunch( id, skill, prop );
- case SKILL_ERUPTION: iSkillReturn = Eruption( id, skill, prop );
- case SKILL_EXTREMESPEED: iSkillReturn = Extreme_Speed( id, skill, prop );
- case SKILL_FAINTATTACK: iSkillReturn = Faint_Attack( id, skill, prop );
- case SKILL_FIREPUNCH: iSkillReturn = Fire_Punch( id, skill, prop );
- case SKILL_FLASHCANNON: iSkillReturn = Flash_Cannon( id, skill, prop );
- case SKILL_FORESIGHT: iSkillReturn = Foresight( id, skill, prop );
- case SKILL_FUTURESIGHT: iSkillReturn = Future_Sight( id, skill, prop );
- case SKILL_GIGADRAIN: iSkillReturn = Giga_Drain( id, skill, prop );
- case SKILL_GUARDSWAP: iSkillReturn = Guard_Swap( id, skill, prop );
- case SKILL_HEALBELL: iSkillReturn = Heal_Bell( id, skill, prop );
- case SKILL_ASSIST: iSkillReturn = Assist( id, skill, prop );
- case SKILL_HIDDENPOWER: iSkillReturn = Hidden_Power( id, skill, prop );
- case SKILL_BLIZZARD: iSkillReturn = Blizzard( id, skill, prop );
- case SKILL_INSOMNIA: iSkillReturn = Insomnia( id, skill, prop );
- case SKILL_IRONDEFENSE: iSkillReturn = Iron_Defense( id, skill, prop );
- case SKILL_LEAFSTORM: iSkillReturn = Leaf_Storm( id, skill, prop );
- case SKILL_LELIVATE: iSkillReturn = Levitate( id, skill, prop );
- case SKILL_LOVELYKISS: iSkillReturn = Lovely_Kiss( id, skill, prop );
- case SKILL_LUSTERPURGE: iSkillReturn = Luster_Purge( id, skill, prop );
- case SKILL_MAGMAARMOR: iSkillReturn = Magma_Armor( id, skill, prop );
- case SKILL_MINIMIZE: iSkillReturn = Minimize( id, skill, prop );
- case SKILL_MIRRORCOAT: iSkillReturn = Mirror_Coat( id, skill, prop );
- case SKILL_OCTOZOOKA: iSkillReturn = Octozooka( id, skill, prop );
- case SKILL_OVERHEAT: iSkillReturn = Overheat( id, skill, prop );
- case SKILL_POISONFANG: iSkillReturn = Poison_Fang( id, skill, prop );
- case SKILL_PRESENT: iSkillReturn = Present( id, skill, prop );
- case SKILL_PROTECT: iSkillReturn = Protect( id, skill, prop );
- case SKILL_PSYCHOBOOST: iSkillReturn = Psycho_Boost( id, skill, prop );
- case SKILL_RAINDANCE: iSkillReturn = Rain_Dance( id, skill, prop );
- case SKILL_RAZORWIND: iSkillReturn = Razor_Wind( id, skill, prop );
- case SKILL_REVERSAL: iSkillReturn = Reversal( id, skill, prop );
- case SKILL_SACREDFIRE: iSkillReturn = Sacred_Fire( id, skill, prop );
- case SKILL_SANDSTORM: iSkillReturn = Sandstorm( id, skill, prop );
- case SKILL_SCARYFACE: iSkillReturn = Scary_Face( id, skill, prop );
- case SKILL_SHADOWBALL: iSkillReturn = Shadow_Ball( id, skill, prop );
- case SKILL_SHEERCOLD: iSkillReturn = Sheer_Cold( id, skill, prop );
- case SKILL_SHOCKWAVE: iSkillReturn = Shock_Wave( id, skill, prop );
- case SKILL_SILENT: iSkillReturn = Silent( id, skill, prop );
- case SKILL_SPARK: iSkillReturn = Spark( id, skill, prop );
- case SKILL_SPIDERWEB: iSkillReturn = Spider_Web( id, skill, prop );
- case SKILL_SOFTBOILED: iSkillReturn = Softboiled( id, skill, prop );
- case SKILL_STEELWING: iSkillReturn = Steel_Wing( id, skill, prop );
- case SKILL_STONEEDGE: iSkillReturn = Stone_Edge( id, skill, prop );
- case SKILL_SUNNYDAY: iSkillReturn = Sunny_Day( id, skill, prop );
- case SKILL_SYNTHESIS: iSkillReturn = Synthesis( id, skill, prop );
- case SKILL_TELEKNESIS: iSkillReturn = Telekenesis( id, skill, prop );
- case SKILL_THIEF: iSkillReturn = Thief( id, skill, prop );
- case SKILL_THUNDERPUNCH: iSkillReturn = Thunder_Punch( id, skill, prop );
- case SKILL_TRIPLEKICK: iSkillReturn = Triple_Kick( id, skill, prop );
- case SKILL_WATERPULSE: iSkillReturn = Water_Pulse( id, skill, prop );
- case SKILL_ZAPCANNON: iSkillReturn = Zap_Cannon( id, skill, prop );
- case SKILL_BLOCK: iSkillReturn = Block( id, skill, prop );
- case SKILL_BUGBITE: iSkillReturn = Bug_Bite( id, skill, prop );
- case SKILL_DRAGONRUSH: iSkillReturn = Dragon_Rush( id, skill, prop );
- case SKILL_ELECTRABALL: iSkillReturn = Electra_Ball( id, skill, prop );
- case SKILL_ENDEAVOR: iSkillReturn = Endeavor( id, skill, prop );
- case SKILL_FOCUSENERGY: iSkillReturn = Focus_Energy( id, skill, prop );
- case SKILL_HEALORDER: iSkillReturn = Heal_Order( id, skill, prop );
- case SKILL_ICEBALL: iSkillReturn = Ice_Ball( id, skill, prop );
- case SKILL_MAGICALLEAF: iSkillReturn = Magical_Leaf( id, skill, prop );
- case SKILL_MIMIC: iSkillReturn = Mimic( id, skill, prop );
- case SKILL_NIGHTSLASH: iSkillReturn = Night_Slash( id, skill, prop );
- case SKILL_SUCKERPUNCH: iSkillReturn = Sucker_Punch( id, skill, prop );
- case SKILL_SWAGGER: iSkillReturn = Swagger( id, skill, prop );
- case SKILL_SWEETKISS: iSkillReturn = Sweet_Kiss( id, skill, prop );
- case SKILL_THUNDERFANG: iSkillReturn = Thunder_Fang( id, skill, prop );
- case SKILL_WATERSPORT: iSkillReturn = Water_Sport( id, skill, prop );
- case SKILL_WHIRLWIND: iSkillReturn = Whirl_Pool( id, skill, prop );
- case SKILL_WINGATTACK: iSkillReturn = Wing_Attack( id, skill, prop );
- case SKILL_MEDITATE: iSkillReturn = Meditate( id, skill, prop );
- case SKILL_EPICBOMB: iSkillReturn = Epic_Bomb( id, skill, prop );
- case SKILL_WEATHERBEAM: iSkillReturn = Weather_Beam( id, skill, prop );
- case SKILL_ICYWIND: iSkillReturn = Icy_Wind( id, skill, prop );
- case SKILL_HELPINGHAND: iSkillReturn = Helping_Hand( id, skill, prop );
- case SKILL_SPITFIRE: iSkillReturn = Spit_Fire( id, skill, prop );
- case SKILL_ICEPUNCH: iSkillReturn = Ice_Punch( id, skill, prop );
- case SKILL_FLAMEWHEEL: iSkillReturn = Flame_Wheel( id, skill, prop );
- case SKILL_DARKPULSE: iSkillReturn = Dark_Pulse( id, skill, prop );
- case SKILL_MEMENTO: iSkillReturn = Memento( id, skill, prop );
- case SKILL_VANISHER: iSkillReturn = Vanisher( id, skill, prop );
- case SKILL_SHADOWSENSOR: iSkillReturn = Shadow_Sensor( id, skill, prop );
- case SKILL_ELECTRICTHREADS: iSkillReturn = Electric_Threads( id, skill, prop );
- case SKILL_HEALINGWAVE: iSkillReturn = Healing_Wave( id, skill, prop );
- case SKILL_SHELLYCOAT: iSkillReturn = Shelly_Coat( id, skill, prop );
- case SKILL_OVERCOAT: iSkillReturn = Overcoat( id, skill, prop );
- case SKILL_ORACLE: iSkillReturn = Oracle( id, skill, prop );
- case SKILL_POISONPOINT: iSkillReturn = Poison_Point( id, skill, prop );
- case SKILL_BLACKGODFLAMES: iSkillReturn = Black_God_Flames( id, skill, prop );
- case SKILL_LIMBER: iSkillReturn = Limber( id, skill, prop );
- case SKILL_EVILROOT: iSkillReturn = Evil_Root( id, skill, prop );
- case SKILL_RAPIDRUN: iSkillReturn = Rapid_Run( id, skill, prop );
- case SKILL_SERPENTEYES: iSkillReturn = Serpent_Eyes( id, skill, prop );
- case SKILL_FIREMADNESS: iSkillReturn = Fire_Madness( id, skill, prop );
- case SKILL_FIREPUNCHES: iSkillReturn = Fire_Punches( id, skill, prop );
- case SKILL_HIDDENWEAPON: iSkillReturn = Hidden_Weapon( id, skill, prop );
- case SKILL_HIDDENHOWL: iSkillReturn = Hidden_Howl( id, skill, prop );
- case SKILL_RUNAWAY: iSkillReturn = Runaway( id, skill, prop );
- case SKILL_FEROCIOUSHUNTER: iSkillReturn = Ferocious_Hunter( id, skill, prop );
- case SKILL_TRACKER: iSkillReturn = Tracker( id, skill, prop );
- case SKILL_PROTECTANT: iSkillReturn = Protectant( id, skill, prop );
- case SKILL_SAVIOR: iSkillReturn = Savior( id, skill, prop );
- case SKILL_ASSASSIN: iSkillReturn = Assassin( id, skill, prop );
- case SKILL_ANGRYPECKER: iSkillReturn = Angry_Pecker( id, skill, prop );
- case SKILL_CALMSCENE: iSkillReturn = Calm_Scene( id, skill, prop );
- case SKILL_MASSIVEEXPLOSION: iSkillReturn = Massive_Explosion( id, skill, prop );
- case SKILL_SPEEDYBOLT: iSkillReturn = Speedy_Bolts( id, skill, prop );
- case SKILL_STEELER: iSkillReturn = Steeler( id, skill, prop );
- case SKILL_CRYSTALLIZE: iSkillReturn = Crystallize( id, skill, prop );
- case SKILL_SANDFORCE: iSkillReturn = Sand_Force( id, skill, prop );
- case SKILL_SILENTSCREAMING: iSkillReturn = Silent_Screaming( id, skill, prop );
- case SKILL_FRAGRANCE: iSkillReturn = Fragrance( id, skill, prop );
- case SKILL_IRONFIST: iSkillReturn = Iron_Fist( id, skill, prop );
- case SKILL_STATUE: iSkillReturn = Statue( id, skill, prop );
- case SKILL_CONCRETEMISSILE: iSkillReturn = Concrete_Missile( id, skill, prop );
- case SKILL_HELPER: iSkillReturn = Helper( id, skill, prop );
- case SKILL_EARTHSHAKER: iSkillReturn = Earth_Shaker( id, skill, prop );
- case SKILL_POISONTOUCH: iSkillReturn = Poison_Touch( id, skill, prop );
- case SKILL_INVISIBLETHREADS: iSkillReturn = Invisible_Threads( id, skill, prop );
- case SKILL_LEADSLICER: iSkillReturn = Leaf_Slicer( id, skill, prop );
- case SKILL_DARKVENOM: iSkillReturn = Dark_Venom( id, skill, prop );
- case SKILL_QUICKFEAT: iSkillReturn = Quick_Feat( id, skill, prop );
- case SKILL_DIVERSION: iSkillReturn = Diversion( id, skill, prop );
- case SKILL_INFILTRATOR: iSkillReturn = Infiltrator( id, skill, prop );
- case SKILL_HEALINGLEAF: iSkillReturn = Healing_Leaf( id, skill, prop );
- case SKILL_RECKLESSNESS: iSkillReturn = Recklessness( id, skill, prop );
- case SKILL_BLOCKER: iSkillReturn = Blocker( id, skill, prop );
- case SKILL_NIGHTVISION: iSkillReturn = Night_Vision( id, skill, prop );
- case SKILL_CLOSESIGHT: iSkillReturn = Close_Sight( id, skill, prop );
- case SKILL_HEAVYSLEEP: iSkillReturn = Heavy_Sleep( id, skill, prop );
- case SKILL_ZENMODE: iSkillReturn = Zen_Mode( id, skill, prop );
- case SKILL_SCREAMINGSTORM: iSkillReturn = Screaming_Storm( id, skill, prop );
- case SKILL_HIDDENROCK: iSkillReturn = Hidden_Rock( id, skill, prop );
- case SKILL_SHEDSKIN: iSkillReturn = Shed_Skin( id, skill, prop );
- case SKILL_HOODLUM: iSkillReturn = Hoodlum( id, skill, prop );
- case SKILL_MIRRORTOUCH: iSkillReturn = Mirror_Touch( id, skill, prop );
- case SKILL_BODYEATER: iSkillReturn = Body_Eater( id, skill, prop );
- case SKILL_SOLIDROCK: iSkillReturn = Solid_Rock( id, skill, prop );
- case SKILL_TRIBEAM: iSkillReturn = Tri_Beam( id, skill, prop );
- case SKILL_TRASHGAS: iSkillReturn = Trash_Gas( id, skill, prop );
- case SKILL_TOXICSPRAY: iSkillReturn = Toxic_Spray( id, skill, prop );
- case SKILL_EXTRAAMMO: iSkillReturn = Extra_Ammo( id, skill, prop );
- case SKILL_REVERSEDAMGE: iSkillReturn = Reverse_Damge( id, skill, prop );
- case SKILL_AMPLIFIER: iSkillReturn = Amplifier( id, skill, prop );
- case SKILL_DARKMOON: iSkillReturn = Dark_Moon( id, skill, prop );
- case SKILL_MAGICGUARD: iSkillReturn = Magic_Guard( id, skill, prop );
- case SKILL_WATERPUMPER: iSkillReturn = Water_Pumper( id, skill, prop );
- case SKILL_HYDRATION: iSkillReturn = Hydration( id, skill, prop );
- case SKILL_ICEBODY: iSkillReturn = Ice_Body ( id, skill, prop );
- case SKILL_ICEWINDS: iSkillReturn = Icy_Winds( id, skill, prop );
- case SKILL_SNOWSTORM: iSkillReturn = Snow_Storm( id, skill, prop );
- case SKILL_SERENEGRACE: iSkillReturn = Serene_Grace( id, skill, prop );
- case SKILL_IMITATION: iSkillReturn = Imitation( id, skill, prop );
- case SKILL_HOSTAGETAKER: iSkillReturn = Hostage_Taker( id, skill, prop );
- case SKILL_CURSEDBODY: iSkillReturn = Cursed_Body ( id, skill, prop );
- case SKILL_ELECTROWEB: iSkillReturn = Electroweb( id, skill, prop );
- case SKILL_THORNYBARRIER: iSkillReturn = Thorny_Barrier( id, skill, prop );
- case SKILL_PROJUMPER: iSkillReturn = Pro_Jumper( id, skill, prop );
- case SKILL_CLEARBODY: iSkillReturn = Clear_Body( id, skill, prop );
- case SKILL_DISKTHROWER: iSkillReturn = Disk_Thrower( id, skill, prop );
- case SKILL_DISKEXPLOSIVE: iSkillReturn = Disk_Explosive( id, skill, prop );
- case SKILL_UNKNOWNWORLD: iSkillReturn = Unknown_World( id, skill, prop );
- case SKILL_BRAINATTACKER: iSkillReturn = Brain_Attacker( id, skill, prop );
- case SKILL_FLAMELIGHTER: iSkillReturn = Flame_Lighter( id, skill, prop );
- case SKILL_SOULTAKER: iSkillReturn = Soul_Taker( id, skill, prop );
- case SKILL_ADAMANTDRAGON: iSkillReturn = Adamant_Dragon( id, skill, prop );
- case SKILL_ICECHILL: iSkillReturn = Ice_Chill( id, skill, prop );
- case SKILL_ICECHAINS: iSkillReturn = Ice_Chains( id, skill, prop );
- case SKILL_SHELLARMOR: iSkillReturn = Shell_Armor( id, skill, prop );
- case SKILL_STEALTH: iSkillReturn = Stealth( id, skill, prop );
- case SKILL_EARTHLYLIGHTINING: iSkillReturn = Earthly_Lighting( id, skill, prop );
- case SKILL_INNERFOCUS: iSkillReturn = Inner_Focus( id, skill, prop );
- case SKILL_WHIPSLASH: iSkillReturn = Whip_Slash( id, skill, prop );
- case SKILL_DRAGONLIGHT: iSkillReturn = Dragon_Light( id, skill, prop );
- case SKILL_REGENERATION: iSkillReturn = Regeneration( id, skill, prop );
- case SKILL_BLADEDHANDS: iSkillReturn = Bladed_Hands( id, skill, prop );
- case SKILL_PRESSURE: iSkillReturn = Pressure( id, skill, prop );
- case SKILL_HEADCHARGE: iSkillReturn = Head_Charge( id, skill, prop );
- case SKILL_HUSTLE: iSkillReturn = Hustle( id, skill, prop );
- case SKILL_ARMORRESPAWN: iSkillReturn = Armor_Respawn( id, skill, prop );
- case SKILL_WINDDRAGONROAR: iSkillReturn = Wind_Dragon_Roar( id, skill, prop );
- case SKILL_WHITESMOKE: iSkillReturn = White_Smoke( id, skill, prop );
- case SKILL_TRIPLETEAM: iSkillReturn = Triple_Team( id, skill, prop );
- case SKILL_EVILINTENT: iSkillReturn = Evil_Intent( id, skill, prop );
- case SKILL_BLAZINGTOUCH: iSkillReturn = Blazing_Touch( id, skill, prop );
- case SKILL_DEADLYHORN: iSkillReturn = Deadly_Horn( id, skill, prop );
- case SKILL_SEAOFFLAMES: iSkillReturn = Sea_Of_Flames( id, skill, prop );
- case SKILL_MINDCONTROL: iSkillReturn = Mind_Control( id, skill, prop );
- case SKILL_DEADLYDREAM: iSkillReturn = Deadly_Dream( id, skill, prop );
- case SKILL_WATERSPRAYER: iSkillReturn = Water_Sprayer( id, skill, prop );
- case SKILL_GEYSERNEST: iSkillReturn = Geyser_Nest( id, skill, prop );
- case SKILL_SHININGLIGHT: iSkillReturn = Shining_Light( id, skill, prop );
- case SKILL_EMOTIONALPAIN: iSkillReturn = Emotional_Pain( id, skill, prop );
- case SKILL_FLIGHT: iSkillReturn = Flight( id, skill, prop );
- case SKILL_ROCKYSKY: iSkillReturn = Rocky_Sky( id, skill, prop );
- case SKILL_HIGHDEFENSE: iSkillReturn = High_Defense( id, skill, prop );
- case SKILL_METALBURST: iSkillReturn = Metal_Burst( id, skill, prop );
- case SKILL_DECIEVING: iSkillReturn = Decieving( id, skill, prop );
- case SKILL_FALLENLIFE: iSkillReturn = Fallen_life( id, skill, prop );
- case SKILL_NIGHTDAZE: iSkillReturn = Night_Daze( id, skill, prop );
- case SKILL_PHANTONDAZE: iSkillReturn = Phanton_Daze( id, skill, prop );
- case SKILL_WATERGOD: iSkillReturn = Water_God( id, skill, prop );
- case SKILL_RELICSONG: iSkillReturn = Relic_Song( id, skill, prop );
- case SKILL_TECHNODRIVE: iSkillReturn = Techno_Drive( id, skill, prop );
- case SKILL_DEVINEJUDGMENT: iSkillReturn = Divine_Judgement( id, skill, prop );
- case SKILL_DEVINEICE: iSkillReturn = Divine_Ice( id, skill, prop );
- case SKILL_BLACKDEATH: iSkillReturn = Black_Death( id, skill, prop );
- case SKILL_SHADOWSTALKER: iSkillReturn = Shadow_Stalker( id, skill, prop );
- case SKILL_LIGHTNINGFURY: iSkillReturn = Lightning_Fury( id, skill, prop );
- case SKILL_VOLCANOGEYSER: iSkillReturn = Volcano_Geyser( id, skill, prop );
- case SKILL_FLYINGJUDGMENT: iSkillReturn = Flying_Judgement( id, skill, prop );
- case SKILL_ACIDRAIN: iSkillReturn = Acid_Rain( id, skill, prop );
- case SKILL_ANCIENT: iSkillReturn = Ancient( id, skill, prop );
- case SKILL_FIREEXPLOSION: iSkillReturn = Fire_Explosion( id, skill, prop );
- case SKILL_CALMINGWAVES: iSkillReturn = Calming_Waves( id, skill, prop );
- }
- switch ( iSkillReturn )
- {
- case SKILL_USED:
- {
- if( prop & SI_BIND )
- bind_used( id, skill );
- else{
- #if ONE_SKILL_USE == 0
- parm[0] = id;
- parm[1] = _:skill;
- set_task(0.0, "delayed_bind_used", 0, parm, 2);
- #else
- bind_used( id, skill );
- #endif
- }
- return true;
- }
- }
- }
- return false;
- }
- /////////////////////////
- // Resets all skills //
- /////////////////////////
- ResetSkills(id, bool:Round_Skills)
- {
- debugMessage(id,4,"Player", "reset skills");
- //things to be reset only after death/round end
- if(Round_Skills){
- skills_handler(id, SI_ROUNDRESET);
- }
- skills_handler(id, SI_RESET);
- CheckRepUsed(id);
- SetActiveSkill(id);
- PlayerStat[id][STAT_ATTACK] = PlayerStat[id][STAT_DEFENSE] = PlayerStat[id][STAT_SPECIAL] = PlayersLevel(id);
- PlayerStat[id][STAT_SPEED] = 0;
- fm_set_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
- if(pev_valid(PlayerEnt[id])){
- new szClass[32];
- pev(PlayerEnt[id], pev_classname, szClass, 31);
- if(equali(szClass, "psy_beam"))
- psybeam_touch(PlayerEnt[id], 0);
- }
- PlayerEnt[id] = 0;
- g_Charge[id] = 0;
- screenflash(id);
- SetSpeed(id);
- }
- ActiveSkill(id)
- return g_isSkilled[id];
- SetActiveSkill(id, skill=-1)
- {
- g_isSkilled[id] = skill;
- debugMessage(id,6,"Player", "set active skill to %s(%d)",SkillToName(skill),skill);
- }
- /////////////////////////////
- // Organized bind delays //
- /////////////////////////////
- public delayed_bind_used( parm[] )
- bind_used( parm[0], parm[1] );
- bind_used(id, skill=-1, Float:over_ride=0.0)
- {
- new Float:gametime = get_gametime();
- new Float:newtime;
- if( !BindUsed[id] || BindUsed[id]==WAIT_TIME ) newtime = gametime;
- else newtime = BindUsed[id];
- if( over_ride != 0.0 )
- newtime += over_ride;
- else if( skill != -1 ){
- new Float:tasktime, Float:oldtime;
- tasktime = oldtime = SkillDelay[skill];
- tasktime -= (PlayersLevel(id)*DELAY_LEVEL_REDUCE);
- if(tasktime < oldtime/3)
- tasktime = oldtime/3;
- newtime += tasktime;
- }
- if( newtime > gametime ){
- BindUsed[id] = newtime;
- g_StopSkill[id] = true;
- }
- }
- /////////////////////////////////////////////////
- // If we want to set it to exactly something //
- /////////////////////////////////////////////////
- set_bind(id, Float:time=0.0)
- BindUsed[id] = time;
- ///////////////////////////////////////////////////////////////////
- // If I need to stop them after they've used it a couple times //
- ///////////////////////////////////////////////////////////////////
- end_rep_use(id, skill, Float:max)
- {
- SetActiveSkill(id, skill);
- if( ++g_Charge[id] >= max*10 ){
- g_Charge[id] = 0;
- if( Action[id] != AC_SKILL )
- SetActiveSkill(id);
- return true;
- }
- return false;
- }
- CheckRepUsed(id)
- {
- if( g_Charge[id] && ValidSkill( ActiveSkill(id) ) ){
- bind_used(id, ActiveSkill(id));
- g_Charge[id] = 0;
- SetActiveSkill(id);
- return true;
- }
- return false;
- }
- public create_sprite_spray(parm[])
- {
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
- write_byte(120)
- write_coord(parm[0]) //origin
- write_coord(parm[1])
- write_coord(parm[2])
- write_coord(parm[3]) //velocity
- write_coord(parm[4])
- write_coord(parm[5])
- write_short(parm[6]) //sprite
- write_byte(8) //count
- write_byte(10) //speed
- write_byte(100) //noise
- write_byte(5) //rendermode
- message_end()
- }
- public spray_check(parm[])
- {
- new id = parm[0]
- new flame = parm[1] //this is 0 for smoke, 1 for fire
- new skill = parm[2] //this is 0 for smoke, 1 for fire
- //direct damage first
- new ent, body
- get_user_aiming(id, ent, body, 600)
- if(Pokemod_Alive(ent))
- {
- if(flame==1)
- ApplyStatus( id, ent, STATUS_BURN, 0.0 )
- else if(flame==2)
- screenflash(ent,139,59,19,200)
- else
- screenflash(ent,255,255,255,255)
- }
- //now indirect damage
- new Players[32], iNum, target
- poke_get_players(Players, iNum, PLAYER_ALIVE|PLAYER_MORTAL)
- new Float:fOrigin[3], Float:fOrigin2[3]
- new temp[3], Float:fAim[3]
- new Float:fDistance = 600.0
- new iDistance
- for(new i = 0; i < iNum; i++)
- {
- target = Players[i]
- if( target == id )
- continue
- pev(id, pev_origin, fOrigin)
- pev(target, pev_origin, fOrigin2)
- get_user_origin(id, temp, 3)
- IVecFVec(temp, fAim)
- if(get_distance_f(fOrigin, fOrigin2) > fDistance)
- continue
- iDistance = get_distance_to_line(fOrigin, fOrigin2, fAim)
- if( iDistance > 40 || iDistance < 0 || !fm_is_ent_visible(id, target) )
- continue
- if(flame==1){
- skilldamage(target, id, 1, skill)
- if(Chance(id))
- ApplyStatus( id, target, STATUS_BURN, 0.0 )
- }
- else if(flame==2)
- screenflash(target,139,59,19,200)
- else
- screenflash(target,255,255,255,255)
- }
- }
- BlowUp(id)
- {
- get_user_origin(id,origin[id])
- poke_sound(id,CHAN_STATIC, SND_SUCK)
- message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
- write_byte(TE_IMPLOSION)
- write_coord(origin[id][0])
- write_coord(origin[id][1])
- write_coord(origin[id][2])
- write_byte(100)
- write_byte(20)
- write_byte(5)
- message_end()
- // random explosions
- message_begin( MSG_PVS, SVC_TEMPENTITY, origin[id] )
- write_byte(TE_EXPLOSION) // This just makes a dynamic light now
- write_coord( origin[id][0] + random_num( -100, 100 ))
- write_coord( origin[id][1] + random_num( -100, 100 ))
- write_coord( origin[id][2] + random_num( -50, 50 ))
- write_short( SPRITE_INDEX[SPR_EEXPLO] )
- write_byte( random_num(0,20) + 20 ) // scale * 10
- write_byte( 12 ) // framerate
- write_byte(0)
- message_end()
- // lots of smoke
- message_begin( MSG_PVS, SVC_TEMPENTITY, origin[id] )
- write_byte(TE_SMOKE)
- write_coord( origin[id][0] + random_num( -100, 100 ))
- write_coord( origin[id][1] + random_num( -100, 100 ))
- write_coord( origin[id][2] + random_num( -50, 50 ))
- write_short( SPRITE_INDEX[SPR_STEAM1] )
- write_byte( 60 ) // scale * 10
- write_byte( 10 ) // framerate
- message_end()
- // blast circles
- message_begin( MSG_PAS, SVC_TEMPENTITY, origin[id] )
- write_byte(TE_BEAMCYLINDER)
- write_coord( origin[id][0])
- write_coord( origin[id][1])
- write_coord( origin[id][2] - 16)
- write_coord( origin[id][0])
- write_coord( origin[id][1])
- write_coord( origin[id][2] - 16 + EXPLOSION_RADIUS)
- write_short( SPRITE_INDEX[SPR_SHOCKWAVE] )
- write_byte( 0 ) // startframe
- write_byte( 0 ) // framerate
- write_byte( 6 ) // life
- write_byte( 16 ) // width
- write_byte( 0 ) // noise
- write_byte( 188 )
- write_byte( 220 )
- write_byte( 255 )
- write_byte( 255 ) //brightness
- write_byte( 0 ) // speed
- message_end()
- }
- public make_powder(parm[])
- {
- new id = parm[0];
- if(!PMon() || !Pokemod_Alive(id))
- return
- new Float:fl_Origin[3], ptime = POWDER_TIME
- pev(id, pev_origin, fl_Origin)
- new newEnt = fm_create_entity("info_target")
- set_pev(newEnt, pev_classname, "pokemod_ent")
- fm_entity_set_model(newEnt, MODELS[MDL_POWDER])
- // Change height of entity origin to hands
- fl_Origin[2] += 6
- // Set entity postion
- fm_entity_set_origin(newEnt, fl_Origin)
- // Set properties of the entity
- set_pev( newEnt, pev_rendermode, 5)
- set_pev( newEnt, pev_renderamt, 255.0)
- set_pev( newEnt, pev_owner, id)
- set_pev( newEnt, pev_animtime, 1.0);
- set_pev( newEnt, pev_framerate, 1.0);
- set_pev( newEnt, pev_sequence, 0);
- new parm2[3];
- parm2[0] = newEnt;
- parm2[1] = parm[1];
- parm2[2] = parm[2];
- check_powder(parm2)
- set_task(0.5,"check_powder",0, parm2, 3 , "a", 2*ptime-1)
- set_task(ptime*1.0,"poke_remove_entity",newEnt+REMOVE_TASK)
- }
- public check_powder(parm[])
- {
- new spowder = parm[0];
- new check_poison = parm[1];
- new check_sleep = parm[2];
- if(!pev_valid(spowder))
- return
- new id = pev(spowder, pev_owner)
- new Float:poison_time = get_ppcvar_float(pm_poisontime)
- new Float:sleep_time = get_ppcvar_float(pm_sleeptime)
- new range = POWDER_RANGE
- AddLvl(id, range)
- new aid, players[MAX_PLAYERS], pnum
- poke_get_players(players,pnum,PLAYER_ALIVE|PLAYER_MORTAL|PLAYER_NOTEAM,Pokemod_Team(id))
- for(new i = 0; i<pnum; i++)
- {
- aid = players[i]
- if( fm_entity_range(spowder,aid) < range ) {
- if( check_poison && !g_Status[aid][STATUS_POISON] ){
- ApplyStatus( id, aid, STATUS_POISON, poison_time )
- }
- if( check_sleep && !g_Status[aid][STATUS_ASLEEP] ){
- ApplyStatus( id, aid, STATUS_ASLEEP, sleep_time )
- }
- }
- }
- }
- public check_spore(parm[])
- {
- new ent = parm[0];
- parm[2]--;
- if( pev_valid(ent) ){
- new Float:health;
- pev(ent, pev_health, health);
- if( health-POKE_HP_OFFSET < 0 ){
- new Float:origfl[3], orig[3];
- pev( ent, pev_origin, origfl );
- FVecIVec(origfl, orig);
- new parmlol[7];
- parmlol[0] = orig[0];
- parmlol[1] = orig[1];
- parmlol[2] = orig[2]+100;
- parmlol[3] = 0;
- parmlol[4] = 0;
- parmlol[5] = 50;
- parmlol[6] = SPRITE_INDEX[SPR_STEAM1];
- create_sprite_spray( parmlol );
- set_task(1.0,"poke_remove_entity",ent+REMOVE_TASK);
- set_task(0.1, "check_spore", 0, parm, 4);
- return;
- }
- if( !parm[2] ){
- fm_remove_entity(ent);
- return;
- }
- }
- else
- return;
- new id = pev(ent, pev_owner);
- new range = SPORE_RANGE;
- AddLvl(id, range);
- new aid, players[MAX_PLAYERS], pnum
- poke_get_players(players,pnum,PLAYER_ALIVE|PLAYER_MORTAL|PLAYER_NOTEAM,Pokemod_Team(id))
- for(new i = 0; i<pnum; i++)
- {
- aid = players[i]
- if( fm_entity_range(ent,aid) < range ) {
- if( parm[3] ){
- if( !g_Status[aid][STATUS_POISON] )
- ApplyStatus( id, aid, STATUS_POISON, 5.0 )
- }
- else
- set_pev( aid, pev_velocity, Float:{0.0,0.0,0.0} );
- }
- }
- new Float:origfl[3], orig[3];
- pev( ent, pev_origin, origfl );
- FVecIVec(origfl, orig);
- if( (parm[2] % 10) == 0 ){
- message_begin( MSG_PAS, SVC_TEMPENTITY, orig )
- write_byte(TE_BEAMCYLINDER)
- write_coord( orig[0])
- write_coord( orig[1])
- write_coord( orig[2] + 20 )
- write_coord( orig[0])
- write_coord( orig[1])
- write_coord( orig[2] + 20 + range)
- write_short( SPRITE_INDEX[SPR_GAS] )
- write_byte( 0 ) // startframe
- write_byte( 0 ) // framerate
- write_byte( 10 ) // life
- write_byte( 16 ) // width
- write_byte( 0 ) // noise
- write_byte( 88 )
- write_byte( 20 )
- write_byte( parm[3] ? 255 : 50 )
- write_byte( 255 ) //brightness
- write_byte( 0 ) // speed
- message_end()
- }
- if( (parm[2] % 5) == 0 ){
- new parmlol[7];
- parmlol[0] = orig[0];
- parmlol[1] = orig[1];
- parmlol[2] = orig[2]+100;
- parmlol[3] = 0;
- parmlol[4] = 0;
- parmlol[5] = -20;
- parmlol[6] = parm[3] ? SPRITE_INDEX[SPR_BIGSPIT] : SPRITE_INDEX[SPR_MUZZLEFLASH1];
- create_sprite_spray( parmlol );
- }
- set_task(0.1, "check_spore", 0, parm, 4);
- }
- public delayed_grenade(parm[])
- give_grenade(parm[0],parm[1],bool:parm[2]);
- give_grenade(id, how_many=1, bool:add_with=false)
- {
- if( !Pokemod_Alive(id) )
- return;
- new old_amount, new_amount
- #if MOD==CS
- give_item(id, "weapon_hegrenade")
- old_amount = cs_get_user_bpammo(id, CSW_HEGRENADE)
- new_amount = add_with ? (old_amount+how_many) : ( max(how_many,old_amount) )
- cs_set_user_bpammo(id, CSW_HEGRENADE, new_amount)
- #endif
- #if MOD==DOD
- new wpnid
- if(Pokemod_Team(id)==2){
- give_item(id, "weapon_stickgrenade")
- wpnid = DODW_STICKGRENADE
- }
- else{
- give_item(id, "weapon_handgrenade")
- wpnid = DODW_HANDGRENADE
- }
- old_amount = dod_get_user_ammo(id,wpnid)
- new_amount = add_with ? (old_amount+how_many) : ( max(how_many,old_amount) )
- dod_set_user_ammo(id, wpnid, new_amount)
- #endif
- #if MOD==NS
- if(Pokemod_Team(id)==1){
- new wpn[32], bpammo
- get_user_weapon(id, old_amount, bpammo)
- get_weaponname(WEAPON_GRENADE,wpn,31)
- ns_give_item(id, "weapon_grenade")
- new_amount = add_with ? (old_amount+how_many) : ( max(how_many,old_amount) )
- new iWPNidx = -1
- while ((iWPNidx = fm_find_ent_by_class(iWPNidx, wpn)) != 0) {
- if (id == pev(iWPNidx, pev_owner)) {
- ns_set_weap_clip(iWPNidx, new_amount)
- }
- }
- }
- #endif
- }
- Gas(id, bool:smog=false, bool:poison=false)
- {
- if( !Pokemod_Alive(id) || ( !smog && !poison ) )
- return;
- get_user_origin(id, origin[id])
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY) //message begin
- write_byte(TE_SPRITE)
- write_coord(origin[id][0]) // start position
- write_coord(origin[id][1])
- write_coord(origin[id][2])
- write_short(SPRITE_INDEX[SPR_GAS]) // sprite index
- write_byte(10) // scale in 0.1's
- write_byte(100) // brightness
- message_end()
- new aid, playersa[MAX_PLAYERS], pnuma
- poke_get_players(playersa,pnuma,PLAYER_ALIVE|PLAYER_MORTAL|PLAYER_NOTEAM,Pokemod_Team(id))
- new Float:poison_time = get_ppcvar_float(pm_poisontime)
- new distance
- new maxdist = 300
- AddLvl(id, maxdist)
- for(new ick = 0; ick<pnuma; ick++)
- {
- aid = playersa[ick]
- get_user_origin(aid, origin[aid])
- distance = get_distance(origin[aid], origin[id])
- if(distance <= maxdist){
- if(smog){
- poke_print(aid,print_center,LANG,aid,"POKEMOD_SMOG")
- screenflash(aid, 139, 59, 19, 222, 1.0)
- }
- if(poison && !g_Status[aid][STATUS_POISON]){
- ApplyStatus( id, aid, STATUS_POISON, poison_time )
- }
- }
- }
- }
- make_snow(id)
- {
- get_user_origin(id,origin[id]);
- //lets put one on each side of them
- new sides[4][2];
- sides[0][0] = sides[0][1] = sides[2][0] = sides[3][1] = 100;
- sides[1][0] = sides[1][1] = sides[2][1] = sides[3][0] = -100;
- for(new i=0; i<4; i++){
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY) //message begin
- write_byte( TE_SPRITE ) // additive sprite, plays 1 cycle
- write_coord(origin[id][0] + sides[i][0] + random_num(-10,10))
- write_coord(origin[id][1] + sides[i][1] + random_num(-10,10))
- write_coord(origin[id][2])
- write_short( SPRITE_INDEX[SPR_SNOW] )
- write_byte( 14 ) // byte (scale in 0.1's)
- write_byte( 255 ) // byte (brightness)
- message_end()
- }
- return PLUGIN_HANDLED
- }
- PokeSkillTarget(id, &damage=-1, &weapon=-1)
- {
- new victim;
- // If they were damaged
- if( PlayerDamageInfo[id][PD_DAMAGE] ){
- damage = PlayerDamageInfo[id][PD_DAMAGE];
- weapon = PlayerDamageInfo[id][PD_WEAPON];
- return PlayerDamageInfo[id][PD_ATTACKER];
- }
- // If they damaged someone else
- for( victim=0; victim<MAX_PLAYERS; victim++ )
- if( PlayerDamageInfo[victim][PD_ATTACKER] == id ){
- damage = PlayerDamageInfo[victim][PD_DAMAGE];
- weapon = PlayerDamageInfo[victim][PD_WEAPON];
- return victim;
- }
- // If they touched someone
- if( PlayerDamageInfo[id][PD_ATTACKER] ){
- damage = weapon = 0;
- return PlayerDamageInfo[id][PD_ATTACKER];
- }
- // Get who they are looking at
- get_user_aiming(id, victim, weapon);
- if( Pokemod_Alive(victim) ){
- weapon = get_user_weapon(id);
- damage = 0;
- return victim;
- }
- return 0;
- }
- SkillLevel(id, skill)
- {
- if( is_user_connected(id) && ValidSkill(skill) ){
- static pid, i;
- pid = Pokemon[id];
- for( i = -1; i<MAX_ACTIVE_POKES; i++ ){
- if( i != -1 ){
- //if weve already added the skill in, we don't need to add it again
- if( i == PlayersActive[id] )
- continue;
- else
- pid = PlayersPoke[id][i];
- }
- while( ValidPoke(pid) ){
- if( !PokeDisabled(pid) && PokeSkill[pid] == skill ){
- if( i==-1 || PokeInfo[pid] & PI_GLOBAL ){
- return PlayersLevel(id, i);
- }
- }
- pid = AnyEvolveTo(pid);
- }
- }
- }
- return 0;
- }
- make_inferno(id)
- {
- get_user_origin(id,origin[id]);
- //lets put one on each side of them
- new sides[4][2];
- sides[0][0] = sides[0][1] = sides[2][0] = sides[3][1] = 100;
- sides[1][0] = sides[1][1] = sides[2][1] = sides[3][0] = -100;
- for(new i=0; i<4; i++){
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY) //message begin
- write_byte( TE_SPRITE ) // additive sprite, plays 1 cycle
- write_coord(origin[id][0] + sides[i][0] + random_num(-10,10))
- write_coord(origin[id][1] + sides[i][1] + random_num(-10,10))
- write_coord(origin[id][2])
- write_short( SPRITE_INDEX[SPR_SACRED])
- write_byte( 14 ) // byte (scale in 0.1's)
- write_byte( 255 ) // byte (brightness)
- message_end()
- }
- return PLUGIN_HANDLED
- }
- make_inferno_b(id)
- {
- get_user_origin(id,origin[id]);
- //lets put one on each side of them
- new sides[4][2];
- sides[0][0] = sides[0][1] = sides[2][0] = sides[3][1] = 100;
- sides[1][0] = sides[1][1] = sides[2][1] = sides[3][0] = -100;
- for(new i=0; i<4; i++){
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY) //message begin
- write_byte( TE_SPRITE ) // additive sprite, plays 1 cycle
- write_coord(origin[id][0] + sides[i][0] + random_num(-10,10))
- write_coord(origin[id][1] + sides[i][1] + random_num(-10,10))
- write_coord(origin[id][2])
- write_short( SPRITE_INDEX[SPR_BFLAME])
- write_byte( 14 ) // byte (scale in 0.1's)
- write_byte( 255 ) // byte (brightness)
- message_end()
- }
- return PLUGIN_HANDLED
- }
- make_snow_o(vorigin[3])
- {
- //lets put one on each side of them
- new sides[4][2];
- sides[0][0] = sides[0][1] = sides[2][0] = sides[3][1] = 100;
- sides[1][0] = sides[1][1] = sides[2][1] = sides[3][0] = -100;
- for(new i=0; i<4; i++){
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY) //message begin
- write_byte( TE_SPRITE ) // additive sprite, plays 1 cycle
- write_coord(vorigin[0] + sides[i][0] + random_num(-10,10))
- write_coord(vorigin[1] + sides[i][1] + random_num(-10,10))
- write_coord(vorigin[2])
- write_short( SPRITE_INDEX[SPR_SNOW] )
- write_byte( 14 ) // byte (scale in 0.1's)
- write_byte( 255 ) // byte (brightness)
- message_end()
- }
- return PLUGIN_HANDLED
- }
- Kenesis(id, bool:smog=false, bool:poison=false)
- {
- if( !Pokemod_Alive(id) || ( !smog && !poison ) )
- return;
- get_user_origin(id, origin[id])
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY) //message begin
- write_byte(TE_SPRITE)
- write_coord(origin[id][0]) // start position
- write_coord(origin[id][1])
- write_coord(origin[id][2])
- write_short(SPRITE_INDEX[SPR_SHOCKWAVE]) // sprite index
- write_byte(10) // scale in 0.1's
- write_byte(20) // brightness
- message_end()
- new aid, playersa[MAX_PLAYERS], pnuma
- poke_get_players(playersa,pnuma,PLAYER_ALIVE|PLAYER_MORTAL|PLAYER_NOTEAM,Pokemod_Team(id))
- new Float:poison_time = get_ppcvar_float(pm_poisontime)
- new distance
- new maxdist = 500
- AddLvl(id, maxdist)
- for(new ick = 0; ick<pnuma; ick++)
- {
- aid = playersa[ick]
- get_user_origin(aid, origin[aid])
- distance = get_distance(origin[aid], origin[id])
- if(distance <= maxdist){
- if(smog){
- poke_print(aid,print_center,LANG,aid,"POKEMOD_SMOG")
- }
- if(poison && !g_Status[aid][STATUS_SLOW]){
- ApplyStatus( id, aid, STATUS_SLOW, poison_time )
- }
- }
- }
- }
- Flamewheel(id, bool:smog=false, bool:poison=false)
- {
- if( !Pokemod_Alive(id) || ( !smog && !poison ) )
- return;
- get_user_origin(id, origin[id])
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY) //message begin
- write_byte(TE_SPRITE)
- write_coord(origin[id][0]) // start position
- write_coord(origin[id][1])
- write_coord(origin[id][2])
- write_short(SPRITE_INDEX[SPR_FIRE]) // sprite index
- write_byte(10) // scale in 0.1's
- write_byte(10) // brightness
- message_end()
- new aid, playersa[MAX_PLAYERS], pnuma
- poke_get_players(playersa,pnuma,PLAYER_ALIVE|PLAYER_MORTAL|PLAYER_NOTEAM,Pokemod_Team(id))
- new Float:poison_time = get_ppcvar_float(pm_poisontime)
- new distance
- new maxdist = 100
- AddLvl(id, maxdist)
- for(new var = 0; var<pnuma; var++)
- {
- aid = playersa[var]
- get_user_origin(aid, origin[aid])
- distance = get_distance(origin[aid], origin[id])
- if(distance <= maxdist){
- if(smog){
- poke_print(aid,print_center,LANG,aid,"POKEMOD_SMOG")
- }
- if(poison && !g_Status[aid][STATUS_BURN]){
- ApplyStatus( id, aid, STATUS_BURN, poison_time )
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement